-
Notifications
You must be signed in to change notification settings - Fork 577
a1325b902d breaks build on OpenBSD #18536
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
Comments
Now, as if life weren't interesting enough ... When I reconfigured and rebuilt miniperl at the problematic commit above a second time, in each of unthreaded and threaded builds, (a) I got no problematic output in
|
This morning, I moved to a different git checkout directory on the same OpenBSD-6.6 VM. I did
I then called
I sensed that trouble lay ahead. I decided to run just one file.
The program ran to completion but experienced test failures in each of the 3 unit tests which are run with I next ran
The other 5 test failures were:
... and displayed I then cleaned that directory, re-configured for the same threaded build, and again called
Note that in my first run of the day, the last individual command within
But here 3 more commands completed:
So now I had expectations of better test results.
Grrrr! That early segfault again.
The 5 files that failed during my first run of At this point I ran So why is it that And why is it that And why is it that when configuring and building a second time within the same checkout, 5 test files now PASS? |
See also discussion on list starting here. |
My sparc64 smoker seems to sometimes dislike sorting too, but a plain |
Related: #18540 |
It fails in mktables at
which is exactly #18540. The random nature is due to how OpenBSD allocator works. |
Thanks. Although I'm running these tests on OpenBSD, I don't know what the allocator is or how it works. Can you elaborate? And can you suggest a remedy? Thank you very much. |
OpenBSD does not give application a continuos vm chunk, unlike Linux, it splits it up. It leaves large gaps with guard pages all around the place. And since allocations can be non-deterministic (and OpenBSD really really likes randomness, everywhere), sometimes cxstack happens to be on the border of the guard page (and segfaults), but sometimes not. |
On 2/7/21 1:27 PM, Sergey Aleynikov wrote:
OpenBSD does not give application a continuos vm chunk, unlike Linux, it
splits it up. It leaves large gaps with guard pages all around the
place. And since allocations can be non-deterministic (and OpenBSD
really really likes randomness, everywhere), sometimes cxstack happens
to be on the border of the guard page (and segfaults), but sometimes not.
More details can be found here
<https://www.openbsd.org/papers/tdose_memalloc/presentation.html#(28)>
and here
<https://bsdb0y.github.io/blog/deep-dive-into-the-OpenBSD-malloc-and-friends-internals-part-1.html>.
Hmm. Well, given the centrality of perl to OpenBSD, this is a
significant problem.
jimk
|
Why do you think it's a problem, Jim? It does mean certain types of bug will be more difficult to reproduce consistently, but on the other hand it's more likely to show up that you do have a bug. Also - and presumably the point of it - the randomization can make it harder for an attacker to exploit security holes. In our case, we know we have a bug, now we just need to fix it. |
I believe that recent commits may have resolved these problems. I am going to self-assign this ticket, monitor smoke-test reports, then recommend next steps, if any. |
Smoke-test reports look good. Closing ticket. |
After a recent commit we have begun to experience build and test failures on OpenBSD.
See, for example, either of these smoke-test reports:
https://perl5.test-smoke.org/report/5001906 (@cguevara)
v5.33.6-42-g6dc0bc8817
openbsd 6.8 using clang version OpenBSD Clang 10.0.1
https://perl5.test-smoke.org/report/5001921 (@jkeenan)
v5.33.6-44-g874732f8cc
openbsd 6.6 using cc version 4.2.1 Compatible OpenBSD Clang 8.0.1
Some individual smoke-runs are getting through
make
successfully, but then encountering test failures. Some are not even making it all the way throughmake
. Here are excerpts from thesmokecurrent.log
for 5001921:I decided to explore the build failures first. On my OpenBSD-6.6 VM, I then built
blead
at HEAD:So the problems are showing up even before we attempt to test minitest. But proceeding:
The test failures above are similar to what I got in the smoke-test runs.
I got the same failures in
make minitest_prep
on unthreaded builds.I then manually bisected and attempted threaded builds.
make minitest_prep
completed without any evidence of shortcoming.make minitest
PASSed.Next:
make minitest
then failed in the files reported above.Calling in the bomb squad: @leonerd, @khwilliamson, @afresh1
Thank you very much.
Jim Keenan
The text was updated successfully, but these errors were encountered: