-
Notifications
You must be signed in to change notification settings - Fork 406
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
gctest fail on ppc64le with SOFT_VDB #376
Comments
Probably caused by SOFT_VDB |
Hello @sharkcz |
Latest build: https://app.travis-ci.com/github/ivmai/bdwgc/jobs/570835934 |
Latest builds:
Source: master (faa3baf) |
Build: https://app.travis-ci.com/github/ivmai/bdwgc/jobs/576835649 |
Build: https://app.travis-ci.com/github/ivmai/bdwgc/jobs/586400606 Seems to be same issue.
|
I got this error when building bowhm-gc in nix on ppc64le:
|
Backtrace on v8.2.2:
|
It is weird that, if I enable ASan or valgrind, the error goes:
|
I finally captured a asan error:
|
After some repetitions, it only fails in the following places (line numbers are off-by one due to removing fork tests to make it easier to reproduce):
|
This means that the collector collected some live object. |
ASan error is just a consequence (of reusing live object). |
Adding |
Tip for me: |
Tip for me: |
Upstream has not yet fixed the bug: ivmai/bdwgc#376 ivmai/bdwgc#479 However there is a recommended workaround: ivmai/bdwgc#479 (comment) This adds `CFLAGS_EXTRA=-DNO_SOFT_VDB` to the `makeFlags`, which prevents direct accesses to `/proc` being used for tracking dirtied pages (which must be rescanned): https://github.com/ivmai/bdwgc/blob/54522af853de28f45195044dadfd795c4e5942aa/include/private/gcconfig.h#L741 The collector will fall back to using mprotect() to trigger page faults on writes to clean pages and maintain its own dirty bits, which is slightly less efficient but (in this case) more reliable. Unreliable page-dirtiness bits can lead to use-after-free() corruption; this is not a situation where disabling the tests is a good idea.
Build: https://app.travis-ci.com/github/ivmai/bdwgc/jobs/605030680 |
Upstream has not yet fixed the bug: ivmai/bdwgc#376 ivmai/bdwgc#479 However there is a recommended workaround: ivmai/bdwgc#479 (comment) This adds `CFLAGS_EXTRA=-DNO_SOFT_VDB` to the `makeFlags`, which prevents direct accesses to `/proc` being used for tracking dirtied pages (which must be rescanned): https://github.com/ivmai/bdwgc/blob/54522af853de28f45195044dadfd795c4e5942aa/include/private/gcconfig.h#L741 The collector will fall back to using mprotect() to trigger page faults on writes to clean pages and maintain its own dirty bits, which is slightly less efficient but (in this case) more reliable. Unreliable page-dirtiness bits can lead to use-after-free() corruption; this is not a situation where disabling the tests is a good idea.
Probably related fail of gctest. |
Source: master (d934e7d)
|
Should be fixed by 6601eec |
Build: https://app.travis-ci.com/github/ivmai/bdwgc/jobs/540924812
Source master (commit 2e7c81e)
Host: Ubuntu/ppc64le
Compiler: gcc
Config: configure default
Occurrence: < 1/60th
gctest output:
Switched to incremental mode
Reading dirty bits from /proc
Lost a node at level 4 - collector is broken
Test failed
The text was updated successfully, but these errors were encountered: