Intermittent Assertion failure: !aOther.IsNull() (Cannot compute with aOther null value), at /builds/worker/workspace/obj-build/dist/include/mozilla/TimeStamp.h:496
Categories
(Core :: Widget: Gtk, defect, P5)
Tracking
()
People
(Reporter: intermittent-bug-filer, Assigned: canova)
References
(Regression)
Details
(Keywords: assertion, intermittent-failure, regression)
Attachments
(2 files, 1 obsolete file)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
3.36 KB,
text/plain
|
travis_
:
data-review+
|
Details |
Filed by: agoloman [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=497933279&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/MnzqZ0iFQDGmJkoWRjs4Pg/runs/0/artifacts/public/logs/live_backing.log
[task 2025-03-06T20:01:35.408Z] 20:01:35 INFO - TEST-START | browser/components/screenshots/tests/browser/browser_keyboard_tests.js
[task 2025-03-06T20:01:35.443Z] 20:01:35 INFO - GECKO(29999) | [Child 30293: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 7f2077785c00 == 1 [pid = 30293] [id = 0]
[task 2025-03-06T20:01:35.444Z] 20:01:35 INFO - GECKO(29999) | [Child 30293: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 1 (7f2076ec5200) [pid = 30293] [serial = 1] [outer = 0]
[task 2025-03-06T20:01:35.445Z] 20:01:35 INFO - GECKO(29999) | [Child 30293: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (7f2077785800) [pid = 30293] [serial = 2] [outer = 7f2076ec5200]
[task 2025-03-06T20:01:35.516Z] 20:01:35 INFO - GECKO(29999) | [Parent 29999, Main Thread] WARNING: BounceTrackingState::OnDocumentStartRequest failed.: 'NS_SUCCEEDED(rv)', file /builds/worker/checkouts/gecko/netwerk/ipc/DocumentLoadListener.cpp:2736
[task 2025-03-06T20:01:35.534Z] 20:01:35 INFO - GECKO(29999) | [Child 30293: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 3 (7f2076b27400) [pid = 30293] [serial = 3] [outer = 7f2076ec5200]
[task 2025-03-06T20:01:35.552Z] 20:01:35 INFO - GECKO(29999) | [Child 30293, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, NS_ERROR_INVALID_ARG) failed with result 0x80520012 (NS_ERROR_FILE_NOT_FOUND): file /builds/worker/checkouts/gecko/intl/l10n/L10nRegistry.cpp:385
[task 2025-03-06T20:01:35.936Z] 20:01:35 INFO - GECKO(29999) | [29999] Assertion failure: !aOther.IsNull() (Cannot compute with aOther null value), at /builds/worker/workspace/obj-build/dist/include/mozilla/TimeStamp.h:496
[task 2025-03-06T20:01:35.939Z] 20:01:35 INFO - Initializing stack-fixing for the first stack frame, this may take a while...
[task 2025-03-06T20:01:49.155Z] 20:01:49 INFO - GECKO(29999) | #01: mozilla::TimeStamp::operator-(mozilla::TimeStamp const&) const [mozglue/misc/TimeStamp.h:496]
[task 2025-03-06T20:01:49.156Z] 20:01:49 INFO - GECKO(29999) | #02: mozilla::SystemTimeConverter<unsigned int, mozilla::TimeStamp>::GetTimeStampFromSystemTime<mozilla::CurrentX11TimeGetter>(unsigned int, mozilla::CurrentX11TimeGetter&) [widget/SystemTimeConverter.h:108]
[task 2025-03-06T20:01:49.156Z] 20:01:49 INFO - GECKO(29999) | #03: nsWindow::OnEnterNotifyEvent(_GdkEventCrossing*) [widget/gtk/nsWindow.cpp:4218]
[task 2025-03-06T20:01:49.156Z] 20:01:49 INFO - GECKO(29999) | #04: enter_notify_event_cb(_GtkWidget*, _GdkEventCrossing*) [widget/gtk/nsWindow.cpp:8014]
[task 2025-03-06T20:01:49.160Z] 20:01:49 INFO - GECKO(29999) | #05: ??? [/usr/lib/x86_64-linux-gnu/libgtk-3.so.0 + 0x2318f7]
[task 2025-03-06T20:01:49.161Z] 20:01:49 INFO - GECKO(29999) | #06: ??? [/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 + 0x102f6]
[task 2025-03-06T20:01:49.161Z] 20:01:49 INFO - GECKO(29999) | #07: g_signal_emit_valist [/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 + 0x2b3ad]
[task 2025-03-06T20:01:49.162Z] 20:01:49 INFO - GECKO(29999) | #08: g_signal_emit [/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 + 0x2c10f]
[task 2025-03-06T20:01:49.162Z] 20:01:49 INFO - GECKO(29999) | #09: ??? [/usr/lib/x86_64-linux-gnu/libgtk-3.so.0 + 0x379534]
[task 2025-03-06T20:01:49.163Z] 20:01:49 INFO - GECKO(29999) | #10: gtk_main_do_event [/usr/lib/x86_64-linux-gnu/libgtk-3.so.0 + 0x230936]
[task 2025-03-06T20:01:49.163Z] 20:01:49 INFO - GECKO(29999) | #11: ??? [/usr/lib/x86_64-linux-gnu/libgdk-3.so.0 + 0x37765]
[task 2025-03-06T20:01:49.164Z] 20:01:49 INFO - GECKO(29999) | #12: ??? [/usr/lib/x86_64-linux-gnu/libgdk-3.so.0 + 0x67f92]
[task 2025-03-06T20:01:49.164Z] 20:01:49 INFO - GECKO(29999) | #13: g_main_context_dispatch [/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 + 0x4c537]
[task 2025-03-06T20:01:49.165Z] 20:01:49 INFO - GECKO(29999) | #14: ??? [/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 + 0x4c770]
[task 2025-03-06T20:01:49.165Z] 20:01:49 INFO - GECKO(29999) | #15: g_main_context_iteration [/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 + 0x4c7fc]
[task 2025-03-06T20:01:49.166Z] 20:01:49 INFO - GECKO(29999) | #16: nsAppShell::ProcessNextNativeEvent(bool) [widget/gtk/nsAppShell.cpp:492]
[task 2025-03-06T20:01:49.166Z] 20:01:49 INFO - GECKO(29999) | #17: nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool) [widget/nsBaseAppShell.cpp:250]
[task 2025-03-06T20:01:49.167Z] 20:01:49 INFO - GECKO(29999) | #18: {virtual override thunk({offset(-8)}, nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool))} [widget/nsBaseAppShell.cpp:0]
[task 2025-03-06T20:01:49.167Z] 20:01:49 INFO - GECKO(29999) | #19: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1101]
[task 2025-03-06T20:01:49.168Z] 20:01:49 INFO - GECKO(29999) | #20: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:480]
[task 2025-03-06T20:01:49.168Z] 20:01:49 INFO - GECKO(29999) | #21: mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:86]
[task 2025-03-06T20:01:49.169Z] 20:01:49 INFO - GECKO(29999) | #22: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:345]
[task 2025-03-06T20:01:49.169Z] 20:01:49 INFO - GECKO(29999) | #23: nsBaseAppShell::Run() [widget/nsBaseAppShell.cpp:150]
[task 2025-03-06T20:01:49.170Z] 20:01:49 INFO - GECKO(29999) | #24: nsAppShell::Run() [widget/gtk/nsAppShell.cpp:470]
[task 2025-03-06T20:01:49.170Z] 20:01:49 INFO - GECKO(29999) | #25: nsAppStartup::Run() [toolkit/components/startup/nsAppStartup.cpp:292]
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | #26: XREMain::XRE_mainRun() [toolkit/xre/nsAppRunner.cpp:5866]
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | #27: XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) [toolkit/xre/nsAppRunner.cpp:6107]
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | #28: XRE_main(int, char**, mozilla::BootstrapConfig const&) [toolkit/xre/nsAppRunner.cpp:6179]
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | #29: ??? [/builds/worker/workspace/build/application/firefox/firefox + 0x42207]
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | #30: __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6 + 0x21b97]
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | #31: ??? [/builds/worker/workspace/build/application/firefox/firefox + 0x41cc9]
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | #32: ??? (???:???)
[task 2025-03-06T20:01:49.174Z] 20:01:49 INFO - GECKO(29999) | ExceptionHandler::GenerateDump attempting to generate:/tmp/tmp_timdsbi.mozrunner/minidumps/79af9c31-3542-d15a-ff72-e85d56d8b706.dmp
[task 2025-03-06T20:01:49.175Z] 20:01:49 INFO - GECKO(29999) | ExceptionHandler::GenerateDump cloned child 30392
[task 2025-03-06T20:01:49.175Z] 20:01:49 INFO - GECKO(29999) | ExceptionHandler::SendContinueSignalToChild sent continue signal to child
[task 2025-03-06T20:01:49.175Z] 20:01:49 INFO - GECKO(29999) | ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[task 2025-03-06T20:01:49.176Z] 20:01:49 INFO - GECKO(29999) | ExceptionHandler::GenerateDump minidump generation succeeded
[task 2025-03-06T20:01:49.176Z] 20:01:49 INFO - GECKO(29999) | [Child 30363, IPC I/O Child] WARNING: [73A4E2CA3549DB4F.8A53E4534B4B9062]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | [Utility 30163, IPC I/O Child] WARNING: [10646C9C0DD072E3.F4D8C381B3E0883D]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | [RDD 30084, IPC I/O Child] WARNING: [101E2765F33CF31B.7DFD02A5E6839F51]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | [Utility 30163, Main Thread] WARNING: Shutting down Utility process early due to a crash!: file /builds/worker/checkouts/gecko/ipc/glue/UtilityProcessChild.cpp:362
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | Exiting due to channel error.
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | [RDD 30084, Main Thread] WARNING: Shutting down RDD process early due to a crash!: file /builds/worker/checkouts/gecko/dom/media/ipc/RDDParent.cpp:302
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | [Child 30293, IPC I/O Child] WARNING: [2D525633B1492F92.1558A5A2E775BEDE]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | [Child 30293, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2076b38030 {e05a486b-ee48-4f2a-92f3-8f57db84bc57}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | [Child 30293, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2096c52480 {36699b3f-f16d-454a-a21e-10fa1e1c25b3}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.177Z] 20:01:49 INFO - GECKO(29999) | Exiting due to channel error.
[task 2025-03-06T20:01:49.178Z] 20:01:49 INFO - GECKO(29999) | [Child 30315, IPC I/O Child] WARNING: [45D9C5961CB47B9C.8E8B140876C8300A]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.178Z] 20:01:49 INFO - GECKO(29999) | [Child 30315, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2096c528d0 {399c0eca-7bd6-479d-be6b-3f4c9b6b2c44}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.179Z] 20:01:49 INFO - GECKO(29999) | [Child 30315, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2096c52760 {0c0d38b6-1615-4024-8391-d34d3a400389}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.179Z] 20:01:49 INFO - GECKO(29999) | [Child 30315, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2096c525f0 {b89cb715-1372-49f3-bd0c-9b776dd06af3}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.180Z] 20:01:49 INFO - GECKO(29999) | [Child 30315, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2096c52e90 {3c58cf18-9074-447a-a7e3-e251c45a83da}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.180Z] 20:01:49 INFO - GECKO(29999) | [Child 30315, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2096c52310 {b41a2a4b-6532-47ee-b01b-00cf35233c61}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.181Z] 20:01:49 INFO - GECKO(29999) | Exiting due to channel error.
[task 2025-03-06T20:01:49.181Z] 20:01:49 INFO - GECKO(29999) | [Child 30229, IPC I/O Child] WARNING: [34DBDB757256A373.1BC1AF1C4ABBF4CB]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.182Z] 20:01:49 INFO - GECKO(29999) | Exiting due to channel error.
[task 2025-03-06T20:01:49.182Z] 20:01:49 INFO - GECKO(29999) | [Child 30170, IPC I/O Child] WARNING: [8D631AA8255169F.A38E8E0ED885D9BC]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.183Z] 20:01:49 INFO - GECKO(29999) | Exiting due to channel error.
[task 2025-03-06T20:01:49.183Z] 20:01:49 INFO - GECKO(29999) | [Child 30116, IPC I/O Child] WARNING: [8817D0C01635771A.62A5D52495EB1F77]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.184Z] 20:01:49 INFO - GECKO(29999) | [Child 30116, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2076bfed20 {c9c72d25-d192-414d-a830-a41f88ad17e7}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.184Z] 20:01:49 INFO - GECKO(29999) | [Child 30116, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2076bfea40 {b027060f-381b-4ae8-9935-3c9465cf4d77}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.184Z] 20:01:49 INFO - GECKO(29999) | Exiting due to channel error.
[task 2025-03-06T20:01:49.185Z] 20:01:49 INFO - GECKO(29999) | [Child 30075, IPC I/O Child] WARNING: [4F457306082D0177.4ED793F55D0E8BCE]: Dropping message '<null>'; no connection to unknown peer 1.1: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2025-03-06T20:01:49.185Z] 20:01:49 INFO - GECKO(29999) | [Child 30075, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f2074e1f030 {d972a483-f652-4019-90d6-54f90979dba1}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.186Z] 20:01:49 INFO - GECKO(29999) | [Child 30075, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f20761b51a0 {3d68891f-efc0-4add-acff-f5a19a5e2bc3}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.186Z] 20:01:49 INFO - GECKO(29999) | [Child 30075, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f20761cb1a0 {7093362f-19aa-4c14-b160-a58ddd136cf0}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.187Z] 20:01:49 INFO - GECKO(29999) | [Child 30075, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f20761a2e90 {7d2004ec-eb0f-40b2-9a38-a9afd92d0d2c}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.187Z] 20:01:49 INFO - GECKO(29999) | [Child 30075, RemoteLzyStream] WARNING: RemoteLazyInputStreamChild disconnected unexpectedly (1 streams remaining)! 7f20761b5030 {34086cf2-f346-491f-9658-3cddee1733f5}: file /builds/worker/checkouts/gecko/dom/file/ipc/RemoteLazyInputStreamChild.cpp:51
[task 2025-03-06T20:01:49.188Z] 20:01:49 INFO - GECKO(29999) | Exiting due to channel error.
[task 2025-03-06T20:01:49.188Z] 20:01:49 INFO - TEST-INFO | Main app process: exit 11
[task 2025-03-06T20:01:49.189Z] 20:01:49 ERROR - TEST-UNEXPECTED-FAIL | ShutdownLeaks | process() called before end of test suite
[task 2025-03-06T20:01:49.189Z] 20:01:49 INFO - TEST-INFO | Confirming we saw 23 DOCSHELL created and 9 destroyed log strings.
[task 2025-03-06T20:01:49.189Z] 20:01:49 INFO - TEST-INFO | Confirming we saw 61 DOMWINDOW created and 15 destroyed log strings.
[task 2025-03-06T20:01:49.190Z] 20:01:49 INFO - Buffered messages logged at 20:01:35
[task 2025-03-06T20:01:49.190Z] 20:01:49 INFO - Entering setup bound
[task 2025-03-06T20:01:49.191Z] 20:01:49 INFO - TEST-PASS | browser/components/screenshots/tests/browser/browser_keyboard_tests.js | The screenshots button was added to the nav bar - "[object XULElement]" == true -
Comment hidden (Intermittent Failures Robot) |
Comment 2•5 months ago
|
||
Changing component based on nsWindow::OnEnterNotifyEvent being on the stack.
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 18•2 months ago
|
||
I ran into this issue the other day. It is very likely related to class CurrentX11TimeGetter
.
This class assumes that it's method GetTimeAsyncForPossibleBackwardsSkew()
should be called before PropertyNotifyHandler()
while the later one is called by the handler of window property change events.
The process is GetTimeAsyncForPossibleBackwardsSkew()
set mAsyncUpdateStart
before changing GDK_TIMESTAMP_PROP
property of the window. The property change will cause the event handler be called and call PropertyNotifyHandler()
.
However, GDK_TIMESTAMP_PROP
is a property of the window. I suspect that somewhere else also change this property, causing PropertyNotifyHandler()
been called without calling GetTimeAsyncForPossibleBackwardsSkew()
first.
Comment 19•2 months ago
|
||
According to [1], this preoperty GDK_TIMESTAMP_PROP
has been used to get server timestamp. In fact, it is just used to trigger an xevent and get the timestamp from the xevent. Every xevent has a time field from X server. So, it doesn't has to be GDK_TIMESTAMP_PROP
. The problem here is GDK_TIMESTAMP_PROP
has been used by Gtk/Gdk already. Reusing this property here would be interfered by Gtk/Gdk. I would suggest to use another property, or check mAsyncUpdateStart
at the very beginning of PropertyNotifyHandler()
.
[1] https://gitlab.gnome.org/GNOME/gtk/blob/3.24.1/gdk/x11/gdkwindow-x11.c#L5513
Comment 20•2 months ago
|
||
Comment 21•2 months ago
|
||
I just found there is something deeper. I will investigate into it.
Comment 22•1 month ago
•
|
||
This bug seems to relate to bug 1950992.
aTime
here is the time of a xevent that is the least significant 32-bits of SERVERTIME of X server. And, SERVERTIME is a 64-bits of milliseconds from some arbitrary starting point. [1] That means it can wrap around about every 49 days. I don't know what the starting point is of the X server running on test servers. But, in theory, the value of wholeMillis
can be negative 49 days. And, we use clock CLOCK_MONOTONIC as the source of TimeStamp on Linux. It is milliseconds that the system has been running since it was booted. On the test environment, it is from a few minutes to hours. When wholeMillis
is negative 49 days, the value of *aTimeAsTimeStamp
computed here could be null according to the implementation of TimeStamp::operator+=()
.
[1] https://www.x.org/releases/X11R7.7/doc/xextproto/sync.html#Types
Updated•1 month ago
|
Comment hidden (Intermittent Failures Robot) |
Comment 24•1 month ago
|
||
Nazim, please add a printf assertion to catch this, to confirm or infirm thinker's diagnosis.
Assignee | ||
Comment 25•1 month ago
|
||
(In reply to Thinker Li [:sinker] from comment #22)
This bug seems to relate to bug 1950992.
aTime
here is the time of a xevent that is the least significant 32-bits of SERVERTIME of X server. And, SERVERTIME is a 64-bits of milliseconds from some arbitrary starting point. [1] That means it can wrap around about every 49 days. I don't know what the starting point is of the X server running on test servers. But, in theory, the value ofwholeMillis
can be negative 49 days. And, we use clock CLOCK_MONOTONIC as the source of TimeStamp on Linux. It is milliseconds that the system has been running since it was booted. On the test environment, it is from a few minutes to hours. WhenwholeMillis
is negative 49 days, the value of*aTimeAsTimeStamp
computed here could be null according to the implementation ofTimeStamp::operator+=()
.[1] https://www.x.org/releases/X11R7.7/doc/xextproto/sync.html#Types
Hmm, this explanation seems accurate. But SystemTimeConverter
should be able to handle the overflow/wrap around already. We already have tests for it here: https://searchfox.org/mozilla-central/rev/b731af0459d1aaa9bd1a2227c0fe3bc188c664ae/widget/tests/gtest/TestTimeConverter.cpp#132-202
I tried to add another test case for this but I failed to do it. Not so sure how to trigger this. It would definitely be easier if we can have a good reproducible test case.
I will add a MOZ_CRASH_UNSAFE_PRINTF
so it can help with the debugging.
Assignee | ||
Comment 26•1 month ago
|
||
Updated•1 month ago
|
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 28•1 month ago
|
||
Updated•1 month ago
|
Comment 29•1 month ago
|
||
Comment on attachment 9497909 [details]
data-collection-form.txt
Data Review Form (to be filled by Data Stewards)
- Is there or will there be documentation that describes the schema for the ultimate data set in a public, complete, and accurate way?
- Yes, I believe this ends up in the Glean Dictionary since crash pings are now Glean
- Is there a control mechanism that allows the user to turn the data collection on and off?
- Yes, the application settings provide data collection opt-out choices.
- If the request is for permanent data collection, is there someone who will monitor the data over time?
- Collection to expire in 6 months or be renewed
- Using the category system of data types on the Mozilla wiki, what collection type of data do the requested measurements fall under?
- Category 1 - Technical
- Is the data collection request for default-on or default-off?
- Users opt-in to sending crash data
- Does the instrumentation include the addition of any new identifiers (whether anonymous or otherwise; e.g., username, random IDs, etc.
- No
- Is the data collection covered by the existing Firefox privacy notice?
- Yes
- Does the data collection use a third-party collection tool?
- No
Result
data-review+
Comment 30•1 month ago
|
||
Comment 31•1 month ago
|
||
Comment 32•1 month ago
|
||
Backed out for causing bustages at SystemTimeConverter.h.
Backout link: https://hg-edge.mozilla.org/integration/autoland/rev/e8c9d1af9da28113130fa2cf83499b1d53901de3
Comment 33•1 month ago
|
||
Comment 34•1 month ago
|
||
bugherder |
Assignee | ||
Updated•1 month ago
|
Assignee | ||
Comment 35•1 month ago
|
||
Let's reopen this as the underlying issue hasn't been fixed yet.
Updated•1 month ago
|
Updated•1 month ago
|
Comment hidden (Intermittent Failures Robot) |
Comment 37•24 days ago
|
||
Caught this in rr
by chance locally, here's a pernosco recording: https://pernos.co/debug/eCkhwmCfGFwDq4_mJIRriA/index.html#f{m[BGCN,2g_,t[AQ,OVVg_,f{e[BGBF,jrg_,s{afwA4YAAA,bAZY,uI76X3g,oI8rjEQ___/
Comment 38•19 days ago
•
|
||
(In reply to Paul Adenot (:padenot) from comment #37)
Caught this in
rr
by chance locally, here's a pernosco recording: https://pernos.co/debug/eCkhwmCfGFwDq4_mJIRriA/index.html#f{m[BGCN,2g_,t[AQ,OVVg_,f{e[BGBF,jrg_,s{afwA4YAAA,bAZY,uI76X3g,oI8rjEQ___/
This is already based on the new signature from bug 1975578 (which I would not strictly see as a regression).
IIUC bug 1626734 introduced this downcast which will fail if wholeMillis
is negative (IIUC all instantiations of SystemTimeConverter
use variants of uint32_t
as Time
). I wonder (given we are dealing with clock skews here) if we should also be prepared to see negative values, instead. If we really do not want to allow negative values there, we should assert there instead (and maybe use a CheckedUint32
instead as Time
). But a delta is a delta and should possibly go also below zero without failing calculations. If we want to ensure that the delta fits into 31 Bits, we should do something different here - but I cannot see anything in the subsequent calculations that would go wrong with negative or bigger values (being all 64 bit based)?
Edit: It seems :sinker made a very similar analysis in bug 1975578 comment 2.
Updated•19 days ago
|
Assignee | ||
Comment 39•9 days ago
|
||
I believe we can close this now since bug 1975578 is fixed.
Updated•9 days ago
|
Updated•6 days ago
|
Updated•6 days ago
|
Description
•