Closed Bug 1611974 Opened 6 years ago Closed 6 years ago

[Wayland] Crash while opening LastPass login panel with WebRender and layers.acceleration.force-enabled=true [@ update_buffers]

Categories

(Core :: Graphics, defect, P3)

x86_64
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1609732
Tracking Status
firefox74 --- fixed

People

(Reporter: collares, Unassigned)

References

(Blocks 2 open bugs, Regression)

Details

(Keywords: crash, regression)

Crash Data

This bug is for crash report bp-27298bed-a87e-4b99-80cb-9e0130200128.

Top 4 frames of crashing thread:

0 libEGL_mesa.so.0.0.0 update_buffers ./build/../src/egl/drivers/dri2/platform_wayland.c:664
1 libEGL_mesa.so.0.0.0 image_get_buffers ./build/../src/egl/drivers/dri2/platform_wayland.c:799
2 i965_dri.so intel_update_renderbuffers ./build/../src/mesa/drivers/dri/i965/brw_context.c:1499
3 i965_dri.so _mesa_lookup_or_create_texture ./build/../src/mesa/main/texobj.c:1770

Steps to reproduce: Set the MOZ_ENABLE_WAYLAND env var to 1 and click on LastPass' toolbar icon to log in. Installing the LastPass addon is also enough.

Renderer thread backtrace from a debug build:

#0  0x00007f8861b58ba5 in __GI___nanosleep (requested_time=requested_time@entry=0x7f8841a8b760, remaining=remaining@entry=0x7f8841a8b760)
    at ../sysdeps/unix/sysv/linux/nanosleep.c:28
#1  0x00007f8861b58aaa in __sleep (seconds=0) at ../sysdeps/posix/sleep.c:55
#2  0x00007f8857ed5b4a in ah_crap_handler(int) (signum=11) at /home/collares/sw/mozilla-unified/toolkit/xre/nsSigHandlers.cpp:95
#3  0x00007f8857e9fa27 in nsProfileLock::FatalSignalHandler(int, siginfo_t*, void*) (signo=11, info=0x7f8841a8bab0, context=0x7f8841a8b980)
    at /home/collares/sw/mozilla-unified/toolkit/profile/nsProfileLock.cpp:178
#4  0x00007f88589d44c9 in js::UnixExceptionHandler(int, siginfo_t*, void*) (signum=11, info=0x7f8841a8bab0, context=0x7f8841a8b980)
    at /home/collares/sw/mozilla-unified/js/src/ds/MemoryProtectionExceptionHandler.cpp:273
#5  0x00007f88596d572a in WasmTrapHandler(int, siginfo_t*, void*) (signum=11, info=0x7f8841a8bab0, context=0x7f8841a8b980)
    at /home/collares/sw/mozilla-unified/js/src/wasm/WasmSignalHandlers.cpp:963
#6  0x00007f8861fa1520 in <signal handler called> () at /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x00007f8840b2543f in  () at /lib/x86_64-linux-gnu/libEGL_mesa.so.0
#8  0x00007f8840b25824 in  () at /lib/x86_64-linux-gnu/libEGL_mesa.so.0
#9  0x00007f883f604398 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#10 0x00007f883f604b25 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#11 0x00007f883f607350 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#12 0x00007f883f8a2743 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#13 0x00007f883f8a2c41 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#14 0x00007f885c157eab in gleam::ffi_gles::Gles2::DrawElementsInstanced (self=0x7f883454d010, mode=4, count=6, type_=5123, indices=0x0, instancecount=1)
    at /home/collares/sw/mozilla-unified/obj-x86_64-pc-linux-gnu/x86_64-unknown-linux-gnu/debug/build/gleam-1585208071311f53/out/gles_bindings.rs:1867
#15 0x00007f885c13c76a in <gleam::gl::GlesFns as gleam::gl::Gl>::draw_elements_instanced
    (self=0x7f883454d010, mode=4, count=6, element_type=5123, indices_offset=0, primcount=1) at /home/collares/sw/mozilla-unified/third_party/rust/gleam/src/gles_fns.rs:1194
#16 0x00007f885bea1aa8 in <gleam::gl::ErrorReactingGl<F> as gleam::gl::Gl>::draw_elements_instanced
    (self=0x7f88351de4a0, mode=4, count=6, element_type=5123, indices_offset=0, primcount=1) at /home/collares/sw/mozilla-unified/third_party/rust/gleam/src/gl.rs:94
#17 0x00007f885bc7b781 in webrender::device::gl::Device::draw_indexed_triangles_instanced_u16 (self=0x7f88374cf020, index_count=6, instance_count=1)
    at gfx/wr/webrender/src/device/gl.rs:3247
#18 0x00007f885b97174e in webrender::renderer::Renderer::draw_instanced_batch_with_previously_bound_textures
    (self=0x7f88374cf000, data=..., vertex_array_kind=webrender::renderer::VertexArrayKind::Clip, stats=0x7f8841a8e800) at gfx/wr/webrender/src/renderer.rs:3689
#19 0x00007f885b96eb2a in webrender::renderer::Renderer::draw_instanced_batch
    (self=0x7f88374cf000, data=..., vertex_array_kind=webrender::renderer::VertexArrayKind::Clip, textures=0x7f8841a8c8b0, stats=0x7f8841a8e800)
    at gfx/wr/webrender/src/renderer.rs:3665
#20 0x00007f885b61425d in webrender::renderer::Renderer::draw_clip_batch_list (self=0x7f88374cf000, list=0x7f8834d13aa0, projection=0x7f8841a8dc28, stats=0x7f8841a8e800)
    at gfx/wr/webrender/src/renderer.rs:4592
#21 0x00007f885b615381 in webrender::renderer::Renderer::draw_alpha_target
    (self=0x7f88374cf000, draw_target=..., target=0x7f8834d13aa0, projection=0x7f8841a8dc28, render_tasks=0x7f8832a9ba90, stats=0x7f8841a8e800)
    at gfx/wr/webrender/src/renderer.rs:4748
#22 0x00007f885b618a07 in webrender::renderer::Renderer::draw_frame
    (self=0x7f88374cf000, frame=0x7f8832a9b808, device_size=..., frame_id=..., results=0x7f8841a8e800, clear_framebuffer=true) at gfx/wr/webrender/src/renderer.rs:5410
#23 0x00007f885b96adf7 in webrender::renderer::Renderer::render_impl::{{closure}} () at gfx/wr/webrender/src/renderer.rs:3174
#24 0x00007f885bee1ac4 in webrender::profiler::TimeProfileCounter::profile (self=0x7f8841a8e918, callback=...) at gfx/wr/webrender/src/profiler.rs:455
#25 0x00007f885b60dfea in webrender::renderer::Renderer::render_impl (self=0x7f88374cf000, device_size=...) at gfx/wr/webrender/src/renderer.rs:3148
#26 0x00007f885b60d200 in webrender::renderer::Renderer::render (self=0x7f88374cf000, device_size=...) at gfx/wr/webrender/src/renderer.rs:2933
#27 0x00007f885b31d665 in wr_renderer_render (renderer=0x7f88374cf000, width=360, height=480, had_slow_frame=true, out_stats=0x7f8841a8f548)
    at gfx/webrender_bindings/src/bindings.rs:645
#28 0x00007f885148bda2 in mozilla::wr::RendererOGL::UpdateAndRender(mozilla::Maybe<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> > const&, mozilla::Maybe<mozilla::wr::ImageFormat> const&, mozilla::Maybe<mozilla::Range<unsigned char> > const&, bool, mozilla::wr::RendererStats*)
    (this=0x7f88374ca580, aReadbackSize=..., aReadbackFormat=..., aReadbackBuffer=..., aHadSlowFrame=true, aOutStats=0x7f8841a8f548)
    at /home/collares/sw/mozilla-unified/gfx/webrender_bindings/RendererOGL.cpp:157
#29 0x00007f885148b2d5 in mozilla::wr::RenderThread::UpdateAndRender(mozilla::wr::WrWindowId, mozilla::layers::BaseTransactionId<mozilla::VsyncIdType> const&, mozilla::TimeStamp const&, bool, mozilla::Maybe<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> > const&, mozilla::Maybe<mozilla::wr::ImageFormat> const&, mozilla::Maybe<mozilla::Range<unsigned char> > const&, bool)
    (this=0x7f8845a482e0, aWindowId=..., aStartId=..., aStartTime=..., aRender=true, aReadbackSize=..., aReadbackFormat=..., aReadbackBuffer=..., aHadSlowFrame=true)
    at /home/collares/sw/mozilla-unified/gfx/webrender_bindings/RenderThread.cpp:478
#30 0x00007f885148aa81 in mozilla::wr::RenderThread::HandleFrameOneDoc(mozilla::wr::WrWindowId, bool) (this=0x7f8845a482e0, aWindowId=..., aRender=true)
    at /home/collares/sw/mozilla-unified/gfx/webrender_bindings/RenderThread.cpp:354
#31 0x00007f88514bdf8e in mozilla::detail::RunnableMethodArguments<mozilla::wr::WrWindowId, bool>::applyImpl<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByConstLRef<bool>, 0ul, 1ul>(mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), mozilla::Tuple<StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByConstLRef<bool> >&, std::integer_sequence<unsigned long, 0ul, 1ul>) (o=0x7f8845a482e0, m=
    (void (mozilla::wr::RenderThread::*)(class mozilla::wr::RenderThread * const, struct mozilla::wr::WrWindowId, bool)) 0x7f885148a590 <mozilla::wr::RenderThread::HandleFrameOneDoc(mozilla::wr::WrWindowId, bool)>, args=...) at /home/collares/sw/mozilla-unified/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:1163
#32 0x00007f88514bdead in mozilla::detail::RunnableMethodArguments<mozilla::wr::WrWindowId, bool>::apply<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool)>(mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool)) (this=0x7f88346b15a0, o=0x7f8845a482e0, m=
    (void (mozilla::wr::RenderThread::*)(class mozilla::wr::RenderThread * const, struct mozilla::wr::WrWindowId, bool)) 0x7f885148a590 <mozilla::wr::RenderThread::HandleFrameOneDoc(mozilla::wr::WrWindowId, bool)>) at /home/collares/sw/mozilla-unified/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:1169
#33 0x00007f88514bdc70 in mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, bool>::Run() (this=0x7f88346b1560) at /home/collares/sw/mozilla-unified/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:1215
#34 0x00007f884fb0d6f4 in MessageLoop::RunTask(already_AddRefed<nsIRunnable>) (this=0x7f8841a8fca8, aTask=...)
    at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/message_loop.cc:442
#35 0x00007f884fb0ded6 in MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask&&) (this=0x7f8841a8fca8, pending_task=...)
    at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/message_loop.cc:450
#36 0x00007f884fb0e15c in MessageLoop::DoWork() (this=0x7f8841a8fca8) at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/message_loop.cc:523
#37 0x00007f884fb0f07b in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) (this=0x7f88424d8220, delegate=0x7f8841a8fca8)
    at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/message_pump_default.cc:35
#38 0x00007f884fb0d517 in MessageLoop::RunInternal() (this=0x7f8841a8fca8) at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/message_loop.cc:315
#39 0x00007f884fb0d495 in MessageLoop::RunHandler() (this=0x7f8841a8fca8) at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/message_loop.cc:308
#40 0x00007f884fb0d453 in MessageLoop::Run() (this=0x7f8841a8fca8) at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/message_loop.cc:290
#41 0x00007f884fb30d3f in base::Thread::ThreadMain() (this=0x7f8845a0c5b0) at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/thread.cc:192
#42 0x00007f884fb1605f in ThreadFunc(void*) (closure=0x7f8845a0c5b0) at /home/collares/sw/mozilla-unified/ipc/chromium/src/base/platform_thread_posix.cc:40
#43 0x00007f8861f96fb7 in start_thread (arg=<optimized out>) at pthread_create.c:486
#44 0x00007f8861b8b2cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bisected this to https://hg.mozilla.org/integration/autoland/rev/691bd804c47d.

It is much easier to reproduce this bug by setting layers.acceleration.force-enabled=true. I think my debug build crash didn't have this pref on, though.

Regressed by: 1609732
Summary: [Wayland] Crash while opening LastPass login panel [@ update_buffers] → [Wayland] Crash while opening LastPass login panel with WebRender and layers.acceleration.force-enabled=true [@ update_buffers]
Has Regression Range: --- → yes
Keywords: regression
Priority: -- → P3

I have verified that the last patch from bug 1609732 (included in [0]) fixes this problem. Resolving as duplicate.

[0] https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/ddQeZpexSqeko1ygoLvPng/runs/0/artifacts/public/build/target.tar.bz2

Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.