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
panicking when loading agar.io #10952
Comments
lldb shows me that there are 2051 threads currently active when I lose the ability to spawn more. The vast majority that I see are LayoutWorker and PaintWorker, which I find really interesting. |
This happens because an iframe sets location.hash to an empty string, which causes us to reload the page and create a new pipeline to do so. This repeats endlessly. |
We're missing step 6 of https://html.spec.whatwg.org/multipage/browsers.html#navigate which would cause us to abort the navigation in this case. |
Rather, the implementation in |
This is also visible at https://login.comcast.net/login. The same facebook iframe as agar.io is responsible for an endless chain of page loads. |
Special-case setting location.hash to the empty string This avoids endless redirect loops on facebook and makes us compliant with whatwg/html#1318. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #10952 - [X] There are tests for these changes OR <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11934) <!-- Reviewable:end -->
[ludo@Oulanl servo]$ ./mach run --release http://www.agar.io
ERROR:js::rust: Error at http://agar.io/js/a.js?a&ad_box_:0:0: document.write is not a function
ERROR:js::rust: Error at http://staticxx.facebook.com/connect/xd_arbiter.php?version=42#cb=f381742319487ba&domain=agar.io&origin=http%3A%2F%2Fagar.io%2Ff7bb7fb0cb1716&relation=parent&error=unknown_user:47:1880: window.name is undefined
ERROR:js::rust: Error at http://agar.io/js/master.js:2:23299: o is undefined
ERROR:js::rust: Error at https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.fr.0JX4waWGXC4.O/m=client/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCOmGNu6CSHv8uZNgXAzhVDn7pAJ9Q/cb=gapi.loaded_0:10:32: c is undefined
thread 'ImageCacheThread' panicked at 'called
' panicked at 'calledResult::unwrap()
on anErr
value: Error { repr: Os { code: 9, message: "Bad file descriptor" } }', ../src/libcore/result.rs:785stack backtrace:
1: 0x561b5f080690 -
2: 0x561b5f087cab -
3: 0x561b5f087913 -
thread '
Result::unwrap()
on anErr
value: Error { repr: Os { code: 9, message: "Bad file descriptor" } }', ../src/libcore/result.rs:7854: 0x561b5e6b66a6 -
5: 0x561b5f06dd33 -
6: 0x561b5f06f778 -
7: 0x561b5f07f8e1 -
8: 0x561b5f0bf62f -
9: 0x561b5d91f105 -
thread 'PaintWorker' panicked at 'called
Result::unwrap()
on anErr
value: Error { repr: Os { code: 9, message: "Bad file descriptor" } }', ../src/libcore/result.rs:78510: 0x561b5dbb8392 -
11: 0x561b5dbe26aa -
12: 0x561b5f07f86b -
13: 0x561b5f07f7fd -
14: 0x561b5dbe2afdthread 'PaintWorker' panicked at 'called
Result::unwrap()
on anErr
value: Error { repr: Os { code: 9, message: "Bad file descriptor" } }', ../src/libcore/result.rs:785thread 'PaintWorker' panicked at 'assertion failed: thread::panicking() || result == 0', /home/ludo/servo/.cargo/git/checkouts/ipc-channel-3840821e54ea11a6/master/platform/linux/mod.rs:95
thread 'PaintWorker' panicked at 'assertion failed: thread::panicking() || result == 0', /home/ludo/servo/.cargo/git/checkouts/ipc-channel-3840821e54ea11a6/master/platform/linux/mod.rs:95
thread 'PaintWorker' panicked at 'assertion failed: thread::panicking() || result == 0', /home/ludo/servo/.cargo/git/checkouts/ipc-channel-3840821e54ea11a6/master/platform/linux/mod.rs:95
The text was updated successfully, but these errors were encountered: