Fix #10574 - environment pointer sometimes changes before exec, causing error in child process.#10575
Conversation
|
Thanks for your pull request, @schveiguy! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.
|
|
How do we get the bot to be happy with the bug reference? @burner |
Well, the bot was changed at some point so that you had to mention bugzilla specifically at the front of the commit message - e.g. "fix Bugzilla Issue 10574". Maybe "fix Github Issue 10574" would work? Though of course it's always possible that that part was forgotten and hasn't been implemented yet. |
|
Huh, there is some issue with public unittest failures? |
Nick reported the same problem in slack yesterday. I have no clue how we could have gotten in such a state though given that the test suite should have caught it. |
|
AFAICT, these extra tests are only run for some CI jobs (Circle and Buildkite) here in Phobos. I suspect the problem was introduced in the compiler in dlang/dmd#15343 which changed the lambda mangles (where CI apparently didn't run these public Phobos unittests). I've seen similar undefined-lambda-symbols for a Symmetry codebase with LDC v1.40.0-beta5, which includes that mangling change. Edit: Trying to include these tests for DMD CI: dlang/dmd#17107 |
|
CI should be fixed now; please rebase or dummy-amend to retrigger CI. |
…causing segfault in child process.
This is a nasty problem. This sort of works around the issue by assuming the environment is as expected in the child process.
If you want to merge parent + custom environment, there is still a risk of segfault here, as another thread can easily change the environment pointer and cause the pointer being iterated to be invalidated.
But that is a separate problem that has no good solution. See discussions on the Julia lang github: JuliaLang/julia#34726