Open gibmat opened 1 year ago
@gibmat yeah... https://github.com/golang/go/issues/36606 is the upstream bug in the go compiler for this case.
fwiw - this library is primarily in use at Uber, where all our servers are 64bit. i don't know if we're ever going to have users on non-64bit platforms, this is why we don't have any CI/validation. i'm not sure what other issues you're going to run into by going down this road.
if you don't mind, may I ask what project/platform you're using this library for?
I'm helping with the packaging of this library for Debian (https://tracker.debian.org/pkg/golang-github-uber-go-tally), as it's a dependency of other libraries that I want to package. Debian supports a handful of 32bit architectures, and I saw this issue when the tests failed on those systems.
The
reporter
struct defined inm3/reporter.go
includes fields with atomic types that are not properly aligned on 32bit systems. This causesTestIntegrationProcessFlushOnExit
to eventually timeout, since the test "recovers" from the panic:Rearranging the order so those fields come first to guarantee proper alignment fixes the issue: