intermittent panic in 1.6.0-3 due to race in WriteStatus
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
golang-google-grpc (Ubuntu) |
Fix Committed
|
Medium
|
Unassigned | ||
Bionic |
Fix Released
|
Medium
|
Unassigned | ||
Cosmic |
Fix Released
|
Medium
|
Unassigned | ||
Disco |
Fix Released
|
Medium
|
Unassigned |
Bug Description
[Impact]
The version of golang-google-grpc packaged in bionic and cosmic (1.6.0-3) crashes intermittently due to a race condition. Upstream bug report and pull requests:
https:/
https:/
https:/
This can cause all packages Built-Using: golang-
The attached debdiff contains two upstream fixes squashed together:
https:/
https:/
These fix the race by synchronizing the entire function.
[Test Case]
The patch includes patches to test cases to exercise the race condition. One test case would fail sometimes without the fix; the second test case would always fail without the fix.
If the package builds successfully with the patch, then the test cases have passed.
[Regression Potential]
Regressions are unlikely due to the size and scope of the patch. The fix has been applied upstream since 30 Nov 2017 and is still in use in the latest release:
https:/
A possible source of regressions would be the squashing of the two commits into one. Luckily they were also applied upstream immediately one after the other so it should work without problems.
Another source would be if these patches depended on some other changes made since 1.6.0-3. However testing has not revealed this to be the case.
Issues might also arise from my inexperience in updating Ubuntu packages and submitting patches for Stable Release Updates.
[Other Info]
As golang-google-grpc is a Go library it is linked into other packages statically. This means that simply updating this package is not enough and dependents need to be rebuilt to benefit from these fixes.
If this patch is accepted then I plan to open another SRU request to set the fixed version as a minimal build dependency for etcd to have it also rebuilt and resolve https:/
Release: Ubuntu 18.04.2 LTS
Package: golang-google-grpc 1.6.0-3
description: | updated |
tags: | added: patch patch-accepted-upstream |
Changed in etcd (Ubuntu): | |
importance: | Undecided → Medium |
Changed in golang-google-grpc (Ubuntu): | |
importance: | Undecided → Medium |
no longer affects: | etcd (Ubuntu) |
I have uploaded the debdiff to Bionic, Cosmic, and Disco.
Thank you for your contribution to Ubuntu, Tiit!