Skip to content
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

Youtube crashes (index out of bounds: the len is 0 but the index is 0) #26592

Closed
jdm opened this issue May 21, 2020 · 4 comments
Closed

Youtube crashes (index out of bounds: the len is 0 but the index is 0) #26592

jdm opened this issue May 21, 2020 · 4 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented May 21, 2020

A bunch of content on the homepage loads in the 5/20 nightly, then there's a pause before some more content appears immediately followed by a crash.

@jdm jdm added the I-crash label May 21, 2020
@jdm jdm added this to To do in High priority web compat May 21, 2020
@jdm
Copy link
Member Author

@jdm jdm commented May 21, 2020

Lots of output like this while loading:

[2020-05-21T03:20:58Z ERROR script::dom::bindings::error] Error at https://www.youtube.com/s/desktop/3d592bbd/htdocs-ytimg-desktop-kevlar-production/jsbin/desktop_polymer_inlined_html_polymer_flags_legacy_browsers_v2.vflset/desktop_polymer_inlined_html_polymer_flags_legacy_browsers_v2.js:8385:480 d.style is undefined
[2020-05-21T03:20:59Z ERROR script::dom::bindings::error] Error at https://www.youtube.com/s/desktop/3d592bbd/htdocs-ytimg-desktop-kevlar-production/jsbin/desktop_polymer_inlined_html_polymer_flags_legacy_browsers_v2.vflset/desktop_polymer_inlined_html_polymer_flags_legacy_browsers_v2.js:8935:267 this.$ is undefined
[2020-05-21T03:21:00Z ERROR script::dom::bindings::error] Error at https://www.youtube.com/s/desktop/3d592bbd/htdocs-ytimg-desktop-kevlar-production/jsbin/desktop_polymer_inlined_html_polymer_flags_legacy_browsers_v2.vflset/desktop_polymer_inlined_html_polymer_flags_legacy_browsers_v2.js:8385:480 d.style is undefined
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
[2020-05-21T03:21:04Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: unknown (can't convert to string)
@jdm
Copy link
Member Author

@jdm jdm commented May 21, 2020

Output from the nightly build is different, curiously enough:

[2020-05-21T03:49:51Z ERROR script::dom::bindings::error] Error at :0:0 uncaught exception: cP@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:3056:169
    g.h.setVolume@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:6325:59
    aP@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:3054:201
    TP@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:3120:35
    IR@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:3293:120
    g.LR.prototype.create@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:6593:113
    g.h.sd@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:6017:436
    Oka@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:2808:25
    zS@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:3360:485
    BS@https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js:3364:143
    sj/a.J@https://www.youtube.com/yts/jsbin/www-en_US-vfl4CPyIC/base.js:529:498
    Ia/<@https://www.youtube.com/yts/jsbin/spf-vflKdaZ7t/spf.js:18:477
    q@https://www.youtube.com/yts/jsbin/spf-vflKdaZ7t/spf.js:13:249
    Ia@https://www.youtube.com/yts/jsbin/spf-vflKdaZ7t/spf.js:18:441
    Va@https://www.youtube.com/yts/jsbin/spf-vflKdaZ7t/spf.js:21:335
    l/<@https://www.youtube.com/yts/jsbin/spf-vflKdaZ7t/spf.js:12:134

index out of bounds: the len is 0 but the index is 0 (thread WRRenderBackend#0, at /Users/worker/.cargo/git/checkouts/webrender-c3596abe1cf4f320/01082a9/webrender/src/segment.rs:550)
   0: __ZN60_$LT$servo..backtrace..Print$u20$as$u20$core..fmt..Debug$GT$3fmt17hd44b96bdbc0d24e2E
   1: __ZN4core3fmt5write17h9545e2012c2d2eb4E
   2: __ZN3std2io5Write9write_fmt17h47a505a7805216c3E
   3: __ZN5servo9backtrace5print17hf01bdd61f81acb8bE
   4: __ZN5servo4main28_$u7b$$u7b$closure$u7d$$u7d$17h50992866811705e4E
   5: __ZN3std9panicking20rust_panic_with_hook17he4213098bbe43565E
   6: _rust_begin_unwind
   7: __ZN4core9panicking9panic_fmt17h012074aaeca1e9c0E
   8: __ZN4core9panicking18panic_bounds_check17hf6aed678960a150aE
   9: __ZN9webrender7segment14SegmentBuilder5build17he9f2cba0d5c426aeE
  10: __ZN9webrender10prim_store14PrimitiveStore23prepare_prim_for_render17h9adc45ed7d9ecb9cE
  11: __ZN9webrender10prim_store14PrimitiveStore18prepare_primitives17hefe7170d44718ce7E
  12: __ZN9webrender13frame_builder12FrameBuilder5build17h1dcaf7fe3629e7ffE
  13: __ZN9webrender14render_backend8Document11build_frame17hf4a83b53e05fbe13E
  14: __ZN9webrender14render_backend13RenderBackend15update_document17he1c51624f26c670eE
  15: __ZN9webrender14render_backend13RenderBackend19process_transaction17h33e444010a06973dE
  16: __ZN9webrender14render_backend13RenderBackend3run17h267656565f74055eE
  17: __ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h3d5d64438f0652c0E
  18: __ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h8ef8f1ba0fc878e0E
  19: __ZN83_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$9call_once17hecdbb9c30d98a58bE
  20: __ZN3std3sys4unix6thread6Thread3new12thread_start17hf9d1de0ef4f27972E
  21: __pthread_start

However, it's the same panic as #26590.

@jdm jdm added A-webrender I-panic and removed I-crash labels May 21, 2020
@jdm jdm changed the title Youtube crashes Youtube crashes (index out of bounds: the len is 0 but the index is 0) May 21, 2020
@atouchet
Copy link
Contributor

@atouchet atouchet commented May 21, 2020

I just tried loading YouTube and I noticed for some reason it will sometimes load the modern version of the site and other times it will load the legacy version. Not sure why that's happening.

@jdm
Copy link
Member Author

@jdm jdm commented Jun 1, 2020

This is fixed by the branch in #26590.

@jdm jdm self-assigned this Jun 1, 2020
bors-servo added a commit that referenced this issue Jun 2, 2020
Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 2, 2020
Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 2, 2020
Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 2, 2020
Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 2, 2020
[WIP] Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 3, 2020
[WIP] Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 4, 2020
[WIP] Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 4, 2020
[WIP] Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 5, 2020
[WIP] Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Jun 9, 2020
Don't create empty stacking contexts in display lists

A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #26592 and fix #26590
- [x] There are tests for these changes
@bors-servo bors-servo closed this in cb4e3cb Jun 9, 2020
High priority web compat automation moved this from To do to Done Jun 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Linked pull requests

Successfully merging a pull request may close this issue.

2 participants
You can’t perform that action at this time.