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 upgithub user page triggers crash in debug build #26443
Comments
|
I can reproduce this on lots of sites, including https://wiki.mozilla.org/Main_Page (I need to mouse over some links in the left menu) and https://github.com/servo/servo/wiki/Reviewer. |
|
Full backtrace:
|
|
@nox Does that backtrace mean anything to you? It doesn't look like a stack that's endlessly recursing on itself to me, but maybe the rayon integration isn't removing tasks or is endlessly pushing the same task or something? |
|
I really don't think so. Maybe that's just a very deep tree and we have bigger issues? Note that this inline text code was mostly copypasted from layout 2013 anyway. |
|
I have verified that the same overflow does not occur in a release build. We're going to need to figure out some way of dealing with the explosion of stack frames in debug builds :/ |
|
Unfortunately, simply optimizing rayon and rayon-core during debug builds does not make the problem disappear. diff --git a/Cargo.toml b/Cargo.toml
index 4dbe63e439..7664e6b9ab 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -15,6 +15,11 @@ opt-level = 3
# debug = true
# lto = false
+[profile.dev.package.rayon]
+opt-level = 2
+[profile.dev.package.rayon-core]
+opt-level = 2
+
[patch.crates-io]
# If you need to temporarily test Servo with a local fork of some upstream
# crate, add that here. Use the form: |
|
The crash goes away when the following diff is applied: +[profile.dev.package.rayon]
+opt-level = 2
+[profile.dev.package.rayon-core]
+opt-level = 2
+[profile.dev.package.style]
+opt-level = 2
+[profile.dev.package.layout_2020]
+opt-level = 2
+[profile.dev.package.layout_thread_2020]
+opt-level = 2 |
When I load https://github.com/jdm/ with layout-2020 enabled, I get a crash. The top few frames are:
which makes me suspect we run out of stack space, since the backtrace has 458 stack frames.