Closed Bug 1750443 Opened 2 years ago Closed 2 years ago

Crash in [@ WlCrashHandler]: "wp_viewport@8197: error 0: wl_viewport.set_source sent with invalid values"

Categories

(Core :: Widget: Gtk, defect)

x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
98 Branch
Tracking Status
firefox-esr91 --- disabled
firefox96 --- disabled
firefox97 --- disabled
firefox98 --- fixed

People

(Reporter: jan, Assigned: rmader)

References

(Blocks 1 open bug)

Details

(Keywords: crash, nightly-community)

Crash Data

Attachments

(1 file)

(ojab from bug 1731450 comment 6)

No idea how to reopen, but this still happens in Firefox-96 (fedora package) and sway-1.6.1:

[346261,839]  -> wp_viewport@8197.set_destination(555, 1)
[346261,842]  -> wp_viewport@8197.set_source(0,000000, 360,000000, 390,000000, 0,000000)
[346261,851]  -> wl_surface@6180.damage_buffer(0, 0, 390, 360)
[346261,856]  -> wl_surface@6180.attach(wl_buffer@8134, 0, 0)
[346261,860]  -> wl_surface@6180.commit()
[346261,862]  -> wl_subsurface@8073.set_position(817, 157)
[346261,866]  -> wl_surface@8110.damage_buffer(0, 0, 406, 720)
[346261,871]  -> wl_surface@8110.attach(wl_buffer@8210, 0, 0)
[346261,874]  -> wl_surface@8110.commit()
[346261,876]  -> wl_subsurface@437.set_position(761, 791)
[346261,879]  -> wp_viewport@635.set_destination(400, 287)
[346261,883]  -> wp_viewport@635.set_source(0,000000, 0,000000, 640,000000, 459,000000)
[346261,890]  -> wl_surface@7908.damage_buffer(0, 0, 640, 820)
[346261,915]  -> wl_surface@7908.attach(wl_buffer@3309, 0, 0)
[346261,918]  -> wl_surface@7908.commit()
[346261,920]  -> wl_subsurface@8162.set_position(825, 626)
[346261,924]  -> wl_surface@8195.commit()
[346261,925]  -> wl_subsurface@8128.set_position(662, 370)
[346261,928]  -> wl_surface@242.commit()
[346261,930]  -> wl_subsurface@7716.set_position(825, 370)
[346261,940]  -> wl_surface@8127.commit()
[346261,943]  -> wl_subsurface@8053.set_position(662, 626)
[346261,946]  -> wl_surface@8186.commit()
[346261,948]  -> wl_subsurface@7154.set_position(662, 157)
[346261,950]  -> wl_surface@8137.commit()
[346261,952]  -> wl_subsurface@7816.set_position(825, 157)
[346261,955]  -> wl_surface@6322.commit()
[346261,957]  -> wl_surface@6881.commit()
[346261,959]  -> wl_surface@6695.commit()
[346261,961]  -> wl_surface@7802.commit()
[346261,963]  -> wl_surface@6512.commit()
[346261,965]  -> wl_surface@6777.commit()
[346261,967]  -> wl_surface@5508.damage_buffer(740, 256, 24, 256)
[346261,972]  -> wl_surface@5508.attach(wl_buffer@8200, 0, 0)
[346261,977]  -> wl_surface@5508.commit()
[346261,979]  -> wl_surface@7753.commit()
[346261,981]  -> wl_surface@6672.commit()
[346261,983]  -> wl_surface@7002.commit()
[346261,991]  -> wl_surface@291.commit()
[346262,114] wl_display@1.error(wp_viewport@8197, 0, "wl_viewport.set_source sent with invalid values")
ExceptionHandler::GenerateDump cloned child 131791
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...

(ojab from bug 1731450 comment 7)

corresponding crash dump: https://crash-stats.mozilla.org/report/index/7c129b6e-d578-4f7b-a4c8-cd5400220116

Maybe Fission related. (DOMFissionEnabled=1)

Crash report: https://crash-stats.mozilla.org/report/index/7c129b6e-d578-4f7b-a4c8-cd5400220116

MOZ_CRASH Reason: wp_viewport@8197: error 0: wl_viewport.set_source sent with invalid values

Top 10 frames of crashing thread:

0 libxul.so WlCrashHandler /usr/src/debug/firefox-96.0-1.fc35.x86_64/widget/gtk/nsWaylandDisplay.cpp:336
1 libwayland-client.so.0 wl_log /usr/src/debug/wayland-1.19.0-2.fc35.x86_64/src/wayland-util.c:404
2 libwayland-client.so.0 display_handle_error /usr/src/debug/wayland-1.19.0-2.fc35.x86_64/src/wayland-client.c:911
3 libffi.so.6 ffi_call_unix64 
4 libffi.so.6 ffi_call 
5 libwayland-client.so.0 wl_closure_invoke.constprop.0 /usr/src/debug/wayland-1.19.0-2.fc35.x86_64/src/connection.c:1018
6 libwayland-client.so.0 dispatch_event.isra.0 /usr/src/debug/wayland-1.19.0-2.fc35.x86_64/src/wayland-client.c:1452
7 libwayland-client.so.0 wl_display_dispatch_queue_pending /usr/src/debug/wayland-1.19.0-2.fc35.x86_64/src/wayland-client.c:1840
8 libgdk-3.so.0 _gdk_wayland_display_queue_events /usr/src/debug/gtk3-3.24.31-2.fc35.x86_64/gdk/wayland/gdkeventsource.c:201
9 libgdk-3.so.0 gdk_display_get_event /usr/src/debug/gtk3-3.24.31-2.fc35.x86_64/gdk/gdkdisplay.c:442

Thanks, looks like the rounding at https://searchfox.org/mozilla-central/source/gfx/layers/NativeLayerWayland.cpp#210 is to aggressive here.

Assignee: nobody → robert.mader
Status: NEW → ASSIGNED

Rounding the values to integers appears to be to aggressive in some
situations. The rounding was introduced to work around floating
point errors under the assumption that we'd always end up with integer
values. However, apparently we sometimes compute values <0.5, making
us end up with 0, triggering a protocol errer.
Replace that with an intersection with the actual buffer size. This
will slightly increase wire communication, but should avoid the
crashes.

Pushed by robert.mader@posteo.de:
https://hg.mozilla.org/integration/autoland/rev/532ca82c610b
Stop rounding buffer clips, r=gfx-reviewers,lsalzman
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch

Since the status are different for nightly and release, what's the status for beta?
For more information, please visit auto_nag documentation.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: