Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upWorkaround for #24984 - Solve crashes when panicking / Hang Monitoring by using cargo's patch mechanism to work around a bug in libbacktrace #25248
Conversation
highfive
commented
Dec 11, 2019
|
Thanks for the pull request, and welcome! The Servo team is excited to review your changes, and you should hear from @ferjm (or someone else) soon. |
|
@bors-servo r+ |
|
|
47d0d8a
to
93305fc
|
@bors-servo r+ |
|
|
Workaround for #24984 - Solve crashes when panicking / Hang Monitoring by using cargo's patch mechanism to work around a bug in libbacktrace Temporarly patch backtrace-rs --- libbacktrace contains an error leading to invalid pointers when trying to backtrace a stacktrace. These invalid pointers led to a crash, whenever a panic or Hang Monitoring happened (which is where the stack is captured). Since fixing the issue properly at gcc will require some time, I've created a small and patched version of backtrace-rs, which will be used as patch here. - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #24984 - [X] These changes do not require tests because they fix a native crash which is a) really obvious and b) shouldn't be a regular case.
|
|
|
Both macos builds failed while building backtrace-sys:
|
|
This happened, because I based my patch on master, but it seems there already were some rust specific fixes in branch https://github.com/MeFisto94/libbacktrace/commits/rust-snapshot-2018-05-22 |
|
@bors-servo retry |
|
@MeFisto94: |
|
There will need to be updated Cargo.lock changes in this PR. |
|
@bors-servo retry |
Workaround for #24984 - Solve crashes when panicking / Hang Monitoring by using cargo's patch mechanism to work around a bug in libbacktrace Temporarly patch backtrace-rs --- libbacktrace contains an error leading to invalid pointers when trying to backtrace a stacktrace. These invalid pointers led to a crash, whenever a panic or Hang Monitoring happened (which is where the stack is captured). Since fixing the issue properly at gcc will require some time, I've created a small and patched version of backtrace-rs, which will be used as patch here. - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #24984 - [X] These changes do not require tests because they fix a native crash which is a) really obvious and b) shouldn't be a regular case.
|
|
|
@bors-servo retry |
Workaround for #24984 - Solve crashes when panicking / Hang Monitoring by using cargo's patch mechanism to work around a bug in libbacktrace Temporarly patch backtrace-rs --- libbacktrace contains an error leading to invalid pointers when trying to backtrace a stacktrace. These invalid pointers led to a crash, whenever a panic or Hang Monitoring happened (which is where the stack is captured). Since fixing the issue properly at gcc will require some time, I've created a small and patched version of backtrace-rs, which will be used as patch here. - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #24984 - [X] These changes do not require tests because they fix a native crash which is a) really obvious and b) shouldn't be a regular case.
|
|
|
@bors-servo retry |
Workaround for #24984 - Solve crashes when panicking / Hang Monitoring by using cargo's patch mechanism to work around a bug in libbacktrace Temporarly patch backtrace-rs --- libbacktrace contains an error leading to invalid pointers when trying to backtrace a stacktrace. These invalid pointers led to a crash, whenever a panic or Hang Monitoring happened (which is where the stack is captured). Since fixing the issue properly at gcc will require some time, I've created a small and patched version of backtrace-rs, which will be used as patch here. - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #24984 - [X] These changes do not require tests because they fix a native crash which is a) really obvious and b) shouldn't be a regular case.
|
|
|
What’s the path to going back to upstream backtrace-rs? Is there a PR or an issue open with them? |
|
Yep, just look at the tracking issue #24984 The problem mainly is: This crash (invalid strings) is only a symptom of symbols loading, which fails early (basically due to a wrong assumption and servos sheer size of over 2GiB (thus it cannot be read with one syscall). So there is more involved to solve things properly |
MeFisto94 commentedDec 11, 2019
•
edited by jdm
Temporarly patch backtrace-rs
libbacktrace contains an error leading to invalid pointers when trying to backtrace a stacktrace.
These invalid pointers led to a crash, whenever a panic or Hang Monitoring happened (which is where the stack is captured).
Since fixing the issue properly at gcc will require some time, I've created a small and patched version of backtrace-rs, which will be used as patch here.
./mach build -ddoes not report any errors./mach test-tidydoes not report any errors