New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/cgo/internal/testsanitizers: TestTSAN failures with SIGSEGV #62125
Comments
Found new dashboard test flakes for:
2023-08-17 23:32 linux-amd64-race go@60dd8311 cmd/cgo/internal/testsanitizers.TestTSAN (log)
|
This isn't very actionable at the moment. We'll wait for more failures. |
It seems odd to be building TestTSAN with the -race option. Those tests link in the gcc thread sanitizer library and the -race option links in the LLVM thread sanitizer code from the race syso file. Should they be expected to work together? |
That is a good point. This will link together two different copies of the TSAN code. The TSAN code has the same sources, so it will often work, but if there are version discrepancies anything could happen. |
Change https://go.dev/cl/524896 mentions this issue: |
@laboger, what leads you to believe that the binaries built by the test are linking in both sanitizers? As far as I can tell, the Or maybe these settings are leaking in through an |
I was involved in adding the support for the -race option on ppc64le, so I know the -race option causes the .syso files from runtime/race to be linked into the binaries. Those syso files are built from LLVM's thread sanitizer code. In the last year or so I had to debug some of the TestTSAN tests on ppc64le because we were seeing flaky results and discovered that those tests were using cgo to link in the sanitizer libraries that come with gcc. For example, cmd/cgo/internal/testsanitizers/testdata/tsan.go and all the other tsan tests in this directory contain something like this:
These flags cause the gcc sanitizer library code to be linked in. |
I agree that that is correct. However, I don't see how the Those binaries are built by calling |
In the case above where you show the failures, it is running on the linux-amd64-race builder? Doesn't that mean it is running everything with the -race option? Maybe I misunderstood what that means. |
The However, |
Issue created automatically to collect these failures.
Example (log):
— watchflakes
The text was updated successfully, but these errors were encountered: