Closed Bug 1731450 Opened 3 years ago Closed 2 years ago

Crash in [@ mozilla::widget::WlCrashHandler]: wp_viewport@2581: error 0: x and y values must be zero or positive and width and height valuest must be positive or all values must be -1 to unset the vie

Categories

(Core :: Widget: Gtk, defect)

x86_64
Linux
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox-esr78 --- unaffected
firefox-esr91 --- unaffected
firefox92 --- unaffected
firefox93 --- disabled
firefox94 --- disabled

People

(Reporter: jan, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: crash, nightly-community)

Crash Data

Attachments

(1 file)

Seen on https://crash-stats.mozilla.org. This is what the removed assert has become.
Build: 20210910033856 (2021-09-10)
Crash report: bp-4e34a950-479e-47f6-90fc-6e2500210910

MOZ_CRASH Reason:

wp_viewport@2581: error 0: x and y values must be zero or positive and width and height valuest must be positive or all values must be -1 to unset the vie

Top 10 frames of crashing thread:

0 libxul.so mozilla::widget::WlCrashHandler widget/gtk/nsWaylandDisplay.cpp:328
1 libwayland-client.so.0 wl_array_copy 
2 libwayland-client.so.0 <.text ELF section in libwayland-client.so.0.3.0> 
3 libffi.so.7 ffi_prep_go_closure 
4 libffi.so.7 ffi_closure_free 
5 libwayland-client.so.0 wl_log_set_handler_client 
6 libwayland-client.so.0 <.text ELF section in libwayland-client.so.0.3.0> 
7 libwayland-client.so.0 wl_display_dispatch_queue_pending 
8 libgdk-3.so.0 gdk_wayland_display_query_registry 
9 libgdk-3.so.0 gdk_display_get_event 

This is not a regression - before bug 1726923 these crashes just went unnoticed. It's most likely rare cases where some floating point errors are not properly corrected by rounding, see bug 1726807.

No longer regressed by: 1726923
See Also: → 1726807
Crash Signature: [@ mozilla::widget::WlCrashHandler] → [@ mozilla::widget::WlCrashHandler] [@ mozilla::layers::NativeLayerWayland::SetViewportSourceRect]

The issue appears to be fixed AFAICS. There're no new reports and I myself haven't trigged the crash in quite while.
While I didn't change anything related in the Wayland backend after bug 1726807, it's quite possible that Webrender got better in not sending us bad values.

Please reopen if anybody still runs into this.

Status: NEW → RESOLVED
Crash Signature: [@ mozilla::widget::WlCrashHandler] [@ mozilla::layers::NativeLayerWayland::SetViewportSourceRect] → [@ mozilla::widget::WlCrashHandler] [@ mozilla::layers::NativeLayerWayland::SetViewportSourceRect]
Closed: 2 years ago
Resolution: --- → WORKSFORME

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...
See Also: → 1750443

Filed bug 1750443.

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

Attachment

General

Creator:
Created:
Updated:
Size: