Render thread panics before uploading to the texture cache when layers.advanced.text-layers is enabled.

RESOLVED FIXED

Status

()

Core
Graphics: WebRender
RESOLVED FIXED
9 months ago
9 months ago

People

(Reporter: nical, Assigned: nical)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: gfx-noted)

(Assignee)

Description

9 months ago
I consistently get this crash when enabling layers.advanced.text-layers in the graphics branch


> #0  0x00007f3ea7f6d81d in nanosleep () at /lib64/libc.so.6
> ...
> #13 0x00007f3e9a49ee94 in std::panicking::begin_panic<&str> (msg="assertion failed: (data.len() as u32) >= len", file_line=0x7f3e9e0ce2d8 <webrender::device::Device::update_texture::_FILE_LINE::h9b8b3760bb6eeddb>) at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:517
> #14 0x00007f3e9a5659d5 in webrender::device::Device::update_texture (self=0x7f3e72e5c010, texture_id=TextureId = {...}, x0=969, y0=2, width=3, height=9, stride=core::option::Option::None, data=&[u8](len: 36) = {...}) at gfx/webrender/src/device.rs:1741
> #15 0x00007f3e9a796891 in webrender::renderer::Renderer::update_texture_cache (self=0x7f3e72e5c000) at gfx/webrender/src/renderer.rs:1432
> #16 0x00007f3e9a795ade in webrender::renderer::{{impl}}::render::{{closure}} () at gfx/webrender/src/renderer.rs:1283
> #17 0x00007f3e9a76cd12 in webrender::profiler::TimeProfileCounter::profile<webrender::device::FrameId,closure> (self=0x7f3e82afe0d0, callback=closure = {...})
>     at gfx/webrender/src/profiler.rs:154
> #18 0x00007f3e9a7955de in webrender::renderer::Renderer::render (self=0x7f3e72e5c000, framebuffer_size=TypedSize2D<u32, webrender_traits::units::DevicePixel> = {...})
>     at gfx/webrender/src/renderer.rs:1272
> #19 0x00007f3e9a327834 in webrender_bindings::bindings::wr_renderer_render (renderer=0x7f3e72e5c000, width=1280, height=1040) at gfx/webrender_bindings/src/bindings.rs:769
> #20 0x00007f3e951e8649 in mozilla::wr::RendererOGL::Render() (this=0x7f3e76e04e50) at gfx/webrender_bindings/RendererOGL.cpp:126
> #21 0x00007f3e951e786c in mozilla::wr::RenderThread::UpdateAndRender(WrWindowId) (this=0x7f3e85dcc740, aWindowId=...) at gfx/webrender_bindings/RenderThread.cpp:186
> #22 0x00007f3e951e74f9 in mozilla::wr::RenderThread::NewFrameReady(WrWindowId) (this=0x7f3e85dcc740, aWindowId=...) at gfx/webrender_bindings/RenderThread.cpp:125
> #23 0x00007f3e951f2841 in mozilla::detail::RunnableMethodArguments<WrWindowId>::applyImpl<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(WrWindowId), StoreCopyPassByConstLRef<WrWindowId>, 0ul>(mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(WrWindowId), mozilla::Tuple<StoreCopyPassByConstLRef<WrWindowId> >&, mozilla::IndexSequence<0ul>) (o=0x7f3e85dcc740, m=
>     (void (mozilla::wr::RenderThread::*)(mozilla::wr::RenderThread * const, WrWindowId)) 0x7f3e951e7450 <mozilla::wr::RenderThread::NewFrameReady(WrWindowId)>, args=...)
>     at nsThreadUtils.h:874
> #24 0x00007f3e951f25c2 in mozilla::detail::RunnableMethodArguments<WrWindowId>::apply<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(WrWindowId)>(mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(WrWindowId)) (this=0x7f3e7941fe10, o=0x7f3e85dcc740, m=
>     (void (mozilla::wr::RenderThread::*)(mozilla::wr::RenderThread * const, WrWindowId)) 0x7f3e951e7450 <mozilla::wr::RenderThread::NewFrameReady(WrWindowId)>)
>     at nsThreadUtils.h:881
> #25 0x00007f3e951f23bf in mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(WrWindowId), true, false, WrWindowId>::Run() (this=0x7f3e7941fdd0)
>     at nsThreadUtils.h:909
> #26 0x00007f3e942478a0 in MessageLoop::RunTask(already_AddRefed<mozilla::Runnable>) (this=0x7f3e82afed00, aTask=already_AddRefed<mozilla::Runnable> = {...})
>     at ipc/chromium/src/base/message_loop.cc:361


in Device::update_texture:

>
>        assert!(data.len() as u32 >= len);
>

Every time the same values: data.len() is 38 and len is 108
(Assignee)

Updated

9 months ago
Assignee: nobody → nical.bugzilla
(Assignee)

Comment 1

9 months ago
I tracked it down to https://github.com/servo/webrender/issues/1224.
(Assignee)

Comment 2

9 months ago
Fixed in WebRender.
Status: NEW → RESOLVED
Last Resolved: 9 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.