-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
misc/cgo: intermittent failures in misc/cgo/testsanitizers on ppc64le builders #54645
Labels
arch-ppc64x
Builders
x/build issues (builders, bots, dashboards)
FrozenDueToAge
NeedsFix
The path to resolution is known, but the work has not been done.
Milestone
Comments
Change https://go.dev/cl/425355 mentions this issue: |
This change should fix the problem in terms of running it only on systems where it makes sense. However there is also the question of whether the ppc64le builders should be updated to a distro with a newer gcc. |
gopherbot
pushed a commit
that referenced
this issue
Aug 25, 2022
… ppc64le Some tests in misc/cgo/testsanitizers had been disabled on ppc64le until recently, due to an intermittent error in the tsan tests, with the goal of trying to understand the failure. After further investigation, I found that the code for tsan within gcc does not work consistently when ASLR is enabled on ppc64le. A fix for that problem was integrated in gcc 9. This adds a check to testsanitizers to determine the gcc compiler version on ppc64le and skip the test if the version is too old. A similar check is needed for asan too. Updates #54645 Change-Id: I70717d1aa9e967cf1e871566e72b3862b91fea3f Reviewed-on: https://go-review.googlesource.com/c/go/+/425355 TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> Reviewed-by: Archana Ravindar <[email protected]> Reviewed-by: Cherry Mui <[email protected]> Run-TryBot: Lynn Boger <[email protected]>
rajbarik
pushed a commit
to rajbarik/go
that referenced
this issue
Sep 1, 2022
… ppc64le Some tests in misc/cgo/testsanitizers had been disabled on ppc64le until recently, due to an intermittent error in the tsan tests, with the goal of trying to understand the failure. After further investigation, I found that the code for tsan within gcc does not work consistently when ASLR is enabled on ppc64le. A fix for that problem was integrated in gcc 9. This adds a check to testsanitizers to determine the gcc compiler version on ppc64le and skip the test if the version is too old. A similar check is needed for asan too. Updates golang#54645 Change-Id: I70717d1aa9e967cf1e871566e72b3862b91fea3f Reviewed-on: https://go-review.googlesource.com/c/go/+/425355 TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> Reviewed-by: Archana Ravindar <[email protected]> Reviewed-by: Cherry Mui <[email protected]> Run-TryBot: Lynn Boger <[email protected]>
Repository owner
moved this from Active
to Done
in Test Flakes
Sep 21, 2022
Found new matching dashboard test flakes for:
2022-08-19 20:04 linux-ppc64le-power9osu go@2cc6983a misc/cgo/testsanitizers.TestShared (log)
2022-08-19 20:04 linux-ppc64le-power9osu go@2cc6983a misc/cgo/testsanitizers.TestTSAN (log)
2022-08-20 00:18 linux-ppc64le-buildlet go@28afa5b1 misc/cgo/testsanitizers.TestShared (log)
2022-08-20 00:18 linux-ppc64le-buildlet go@28afa5b1 misc/cgo/testsanitizers.TestTSAN (log)
2022-08-24 12:12 linux-ppc64le-buildlet go@b5a9459c misc/cgo/testsanitizers.TestShared (log)
2022-08-24 12:12 linux-ppc64le-buildlet go@b5a9459c misc/cgo/testsanitizers.TestTSAN (log)
|
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
arch-ppc64x
Builders
x/build issues (builders, bots, dashboards)
FrozenDueToAge
NeedsFix
The path to resolution is known, but the work has not been done.
The environment is ppc64le with investigation on various distros (thus various gcc versions). The builders have Debian buster which uses gcc 8.3.
Previously the testsanitizers tests were disabled on ppc64le due to the same random failures mentioned in #45040.
The test was re-enabled in https://go-review.googlesource.com/c/go/+/424534 with the thought that some signal fixes and other changes since then that might have fixed the problem. However the intermittent failures continue. Those intermittent failures are not easily reproducible on other machines and seem to be dependent on the gcc version and distro since some distros don't provide libtsan.a which the test requires.
Now that we have access to the builder machine and I have gomote access I can investigate further to understand why this is failing. One interesting note is that the randomize_va_space is 2 on the builders, indicating high ASLR randomization.
After some investigation, I found that the failure in this test is related to this issue that happened with the race detector: #35547. In that issue, it was noted that there can be failures on ppc64le with the thread sanitizer when ASLR is enabled. The race option uses code from LLVM to use the thread sanitizer, and that code disables ASLR when on ppc64e. Originally the seccomp permissions for the Docker container didn't allow the use of the syscall to disable ASLR. That problem has since been fixed.
The builders have gcc 8.3. Code was added in gcc-9 to do the same check as LLVM does, if running on ppc64le with TSAN then disable ASLR. That means the test should work if gcc is >=9 but could get random errors for <= gcc 8.
I'm going to add a check to this test when on ppc64le to verify the gcc version is >= 9, otherwise skip it and see if that will avoid the intermittent error.
The text was updated successfully, but these errors were encountered: