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

"invalid parent" error from WebRender #22901

Closed
jdm opened this issue Feb 15, 2019 · 6 comments
Closed

"invalid parent" error from WebRender #22901

jdm opened this issue Feb 15, 2019 · 6 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented Feb 15, 2019

@jdm jdm added the A-webrender label Feb 15, 2019
@jdm
Copy link
Member Author

@jdm jdm commented Feb 15, 2019

invalid parent! (thread WRRenderBackend#0, at src/libcore/option.rs:1038)
stack backtrace:
   0:        0x10c9e6c44 - __ZN9backtrace9backtrace5trace17h320546541c7efeefE
                        at /Users/jdm/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/backtrace/mod.rs:42
   1:        0x10c9dfd5c - __ZN9backtrace7capture9Backtrace14new_unresolved17h72073996e3307fc0E
                        at /Users/jdm/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/capture.rs:88
   2:        0x10c9dfcbe - __ZN9backtrace7capture9Backtrace3new17h41d42ce51f4fadceE
                        at /Users/jdm/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/capture.rs:63
   3:        0x1064099d4 - __ZN5servo4main28_$u7b$$u7b$closure$u7d$$u7d$17h6eca3eedf795d6a6E
                        at ports/servo/non_android_main.rs:111
   4:        0x10dac9066 - __ZN3std9panicking20rust_panic_with_hook17h6757b4c2d49d799fE
                        at src/libstd/panicking.rs:482
   5:        0x10dac8abc - __ZN3std9panicking18continue_panic_fmt17h22488bffa8417eddE
                        at src/libstd/panicking.rs:385
   6:        0x10dac89a8 - _rust_begin_unwind
                        at src/libstd/panicking.rs:312
   7:        0x10dae6691 - __ZN4core9panicking9panic_fmt17h627173a4992c207bE
                        at src/libcore/panicking.rs:85
   8:        0x10dae66fd - __ZN4core6option13expect_failed17hf2543f8fdcb41c29E
                        at src/libcore/option.rs:1038
   9:        0x10b84d4bd - __ZN38_$LT$core..option..Option$LT$T$GT$$GT$6expect17hf87a8fad86f7e157E
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libcore/option.rs:312
  10:        0x10bbacd22 - __ZN9webrender16clip_scroll_tree14ClipScrollTree22get_relative_transform17h11effadc24315ebeE
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/clip_scroll_tree.rs:143
  11:        0x10bc36cbe - __ZN9webrender7picture16PicturePrimitive10pre_update17h4c30eb0bec5ddbc5E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/picture.rs:2063
  12:        0x10bc44766 - __ZN9webrender10prim_store14PrimitiveStore14update_picture17h64eb1c0c3d3a8cf8E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1670
  13:        0x10bc448c2 - __ZN9webrender10prim_store14PrimitiveStore14update_picture17h64eb1c0c3d3a8cf8E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1675
  14:        0x10bc448c2 - __ZN9webrender10prim_store14PrimitiveStore14update_picture17h64eb1c0c3d3a8cf8E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1675
  15:        0x10bc448c2 - __ZN9webrender10prim_store14PrimitiveStore14update_picture17h64eb1c0c3d3a8cf8E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1675
  16:        0x10bc448c2 - __ZN9webrender10prim_store14PrimitiveStore14update_picture17h64eb1c0c3d3a8cf8E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1675
  17:        0x10bb17aca - __ZN9webrender13frame_builder12FrameBuilder40build_layer_screen_rects_and_cull_layers17heb9ba8bdfb0dc69bE
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/frame_builder.rs:272
  18:        0x10bb18720 - __ZN9webrender13frame_builder12FrameBuilder5build17hc3edd2c5f22668aeE
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/frame_builder.rs:410
  19:        0x10bbb475e - __ZN9webrender14render_backend8Document11build_frame17h7598ddf1b074be55E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/render_backend.rs:509
  20:        0x10bbbbc33 - __ZN9webrender14render_backend13RenderBackend15update_document17hdd233c2428db3280E
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/render_backend.rs:1400
  21:        0x10bbb6eaa - __ZN9webrender14render_backend13RenderBackend3run17h150f26455ba0c9eaE
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/render_backend.rs:886
  22:        0x10b89b9fb - __ZN9webrender8renderer8Renderer3new28_$u7b$$u7b$closure$u7d$$u7d$17hbe1e943fef00d0fdE
                        at /Users/jdm/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/renderer.rs:1956
  23:        0x10bae1932 - __ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h93f39502da7ff673E
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libstd/sys_common/backtrace.rs:135
  24:        0x10becce92 - __ZN3std6thread7Builder15spawn_unchecked28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h01d92854372dabfdE
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libstd/thread/mod.rs:469
  25:        0x10b827b92 - __ZN101_$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$9call_once17h5911fde96b54f7a3E
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libstd/panic.rs:309
  26:        0x10bb5f042 - __ZN3std9panicking3try7do_call17h5ddfe8b38561e915E
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libstd/panicking.rs:297
  27:        0x10dad20ce - ___rust_maybe_catch_panic
                        at src/libpanic_unwind/lib.rs:92
  28:        0x10bb5e1d4 - __ZN3std9panicking3try17h412dc0287e43cda3E
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libstd/panicking.rs:276
  29:        0x10b85b222 - __ZN3std5panic12catch_unwind17hbc9b3bbc611af326E
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libstd/panic.rs:388
  30:        0x10becccab - __ZN3std6thread7Builder15spawn_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17ha55c98331dca7dfdE
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/libstd/thread/mod.rs:468
  31:        0x10bf228a3 - __ZN50_$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$8call_box17hb62f7d86f171e78cE
                        at /rustc/da6ab956e1002517803ecd38b904504a1223274b/src/liballoc/boxed.rs:734
  32:        0x10dad164b - __ZN3std3sys4unix6thread6Thread3new12thread_start17h4ca47ae87e55ab1eE
                        at src/libstd/sys_common/thread.rs:14
  33:     0x7fffe4b1793a - __pthread_body
  34:     0x7fffe4b17886 - __pthread_start
@mateon1
Copy link
Contributor

@mateon1 mateon1 commented Mar 26, 2019

Here's a testcase for this found via fuzzing (not by reducing that page, sadly).

<li style="list-style-position: inside; list-style-image: url(#); mix-blend-mode: hue; perspective: 1px"></li>
<ul style="transform: scale3d(1, 1, -1)"></ul>

I don't even know what's happening here, removing any single thing makes the bug disappear.

VMware, Inc.
llvmpipe (LLVM 7.0, 256 bits)
3.3 (Core Profile) Mesa 18.3.4
invalid parent! (thread WRRenderBackend#0, at src/libcore/option.rs:1038)
stack backtrace:
   0:     0x55555d084ed6 - backtrace::backtrace::libunwind::trace::h8af3b710f1a5e12e
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/backtrace/libunwind.rs:53
                         - backtrace::backtrace::trace::h2a1223234ae0346f
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/backtrace/mod.rs:42
   1:     0x55555d07f4e3 - backtrace::capture::Backtrace::new_unresolved::h2dd57ce7b77a7435
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/capture.rs:88
   2:     0x55555d07f43d - backtrace::capture::Backtrace::new::h8c6b161078e28d12
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/capture.rs:63
   3:     0x555556037351 - servo::main::{{closure}}::h5fe9a894213f10e8
                        at ports/servo/non_android_main.rs:110
   4:     0x55555f172a48 - rust_panic_with_hook
                        at src/libstd/panicking.rs:482
   5:     0x55555f1724e1 - continue_panic_fmt
                        at src/libstd/panicking.rs:385
   6:     0x55555f1723c5 - rust_begin_unwind
   7:     0x55555f191cac - panic_fmt
                        at src/libcore/panicking.rs:85
   8:     0x55555f191d16 - expect_failed
                        at src/libcore/option.rs:1038
   9:     0x55555bf70d08 - <core::option::Option<T>>::expect::h2077cf2f1761623b
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libcore/option.rs:312
  10:     0x55555bf07fbe - webrender::clip_scroll_tree::ClipScrollTree::get_relative_transform::h1ca9fa94c06d5ec4
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/clip_scroll_tree.rs:143
  11:     0x55555bfcfad8 - <webrender::prim_store::CoordinateSpaceMapping<F, T>>::new::h58eaa1735cfe8b9a
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:173
  12:     0x55555bfd11ff - <webrender::prim_store::SpaceMapper<F, T>>::set_target_spatial_node::hafd133fc48b0837e
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:227
  13:     0x55555c2305d7 - webrender::picture::PicturePrimitive::post_update::hfe5de6c621314b6c
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/picture.rs:2216
  14:     0x55555bfd5af0 - webrender::prim_store::PrimitiveStore::update_picture::h6d7496bcebd87ada
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1685
  15:     0x55555bfd5a76 - webrender::prim_store::PrimitiveStore::update_picture::h6d7496bcebd87ada
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1675
  16:     0x55555bfd5a76 - webrender::prim_store::PrimitiveStore::update_picture::h6d7496bcebd87ada
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/prim_store/mod.rs:1675
  17:     0x55555bf0dbb2 - webrender::frame_builder::FrameBuilder::build_layer_screen_rects_and_cull_layers::h073e8eb504780a6b
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/frame_builder.rs:272
  18:     0x55555bf0ea1b - webrender::frame_builder::FrameBuilder::build::hfde7ca6a8979deb4
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/frame_builder.rs:410
  19:     0x55555bf14afb - webrender::render_backend::Document::build_frame::h22890e0858018227
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/render_backend.rs:509
  20:     0x55555bf1d2f7 - webrender::render_backend::RenderBackend::update_document::hc2bab5247d0fc41e
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/render_backend.rs:1400
  21:     0x55555bf1765a - webrender::render_backend::RenderBackend::run::h8aebd3ecfa49681d
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/render_backend.rs:886
  22:     0x55555bb881b2 - webrender::renderer::Renderer::new::{{closure}}::hbb780a8e14c0e71a
                        at /home/mateon/.cargo/git/checkouts/webrender-c3596abe1cf4f320/2ff8da0/webrender/src/renderer.rs:1956
  23:     0x55555be3f1b2 - std::sys_common::backtrace::__rust_begin_short_backtrace::h64155958861bdc21
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libstd/sys_common/backtrace.rs:136
  24:     0x55555c1a9665 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h2edbc6c0b6e3b92a
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libstd/thread/mod.rs:469
  25:     0x55555bb33315 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1202b28be54b21bf
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libstd/panic.rs:309
  26:     0x55555beb6db9 - std::panicking::try::do_call::hd50943108b4bf68e
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libstd/panicking.rs:297
  27:     0x55555f17d5f9 - __rust_maybe_catch_panic
                        at src/libpanic_unwind/lib.rs:87
  28:     0x55555beb67bf - std::panicking::try::hee6dd1d99122d758
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libstd/panicking.rs:276
  29:     0x55555bb396c5 - std::panic::catch_unwind::h444e73b71ae527d7
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libstd/panic.rs:388
  30:     0x55555c1a905f - std::thread::Builder::spawn_unchecked::{{closure}}::haba5c0e107442376
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/libstd/thread/mod.rs:468
  31:     0x55555c202fa7 - <F as alloc::boxed::FnBox<A>>::call_box::hf2aee73a3c94a587
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/liballoc/boxed.rs:749
  32:     0x55555f17c93d - call_once<(),()>
                        at /rustc/0ea22717a1e01fa535534b85a5347a7e49fc79de/src/liballoc/boxed.rs:759
                         - start_thread
                        at src/libstd/sys_common/thread.rs:14
                         - thread_start
                        at src/libstd/sys/unix/thread.rs:80
  33:     0x7ffff6f71fa2 - start_thread
  34:     0x7ffff6e8682e - clone
  35:                0x0 - <unknown>
[2019-03-26T16:39:31Z ERROR servo] invalid parent!

(This is followed by a hang, rather than Servo closing, which meant a lot of time wasted while reducing.)

@mateon1
Copy link
Contributor

@mateon1 mateon1 commented Mar 26, 2019

This crash also reproduces on http://diana-adrianne.com/purecss-francine/

Here's an example reduced from that page:

<style>
body .paper .container .head .face .eyebrow:before{content:"";display:block;transform:rotate(35deg);}
body .paper .container .head .face .eyebrow.left{filter:blur(2px);transform:scaleX(-1) rotate(-9deg);}
body .paper .container .head .face .mouth:after{transform:rotate(7deg);content:"";display:block;}
</style>
    <div class="paper">
        <div class="container">
                <div class="head">
                    <div class="face">
                        <div class="eyebrow left">
                        </div>
                        <div class="mouth">
@dralley
Copy link
Contributor

@dralley dralley commented Mar 25, 2020

I wasn't able to reproduce this on http://acko.net/ or with any of the reduced test cases.

However, http://diana-adrianne.com/purecss-francine/ still triggers this. Strange.

@cbrewster
Copy link
Member

@cbrewster cbrewster commented Mar 31, 2020

This is caused by the same thing as #23438, servo wasn't popping reference frames in the WR display list. This will be fixed when #26063 lands.

@dralley
Copy link
Contributor

@dralley dralley commented Mar 31, 2020

Happy coincidence!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

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