Closed Bug 1061414 Opened 10 years ago Closed 10 years ago

Debug build crashes from transaction delay indicator using null timestamp

Categories

(Core :: Graphics: Layers, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla35
Tracking Status
firefox32 --- unaffected
firefox33 --- unaffected
firefox34 + fixed
firefox35 + fixed

People

(Reporter: jya, Assigned: BenWa)

References

Details

Attachments

(1 file)

This happens around 1 in 20 launches of nightly.
Occurs right at the start

OpenGL version detected: 210
OpenGL vendor: ATI Technologies Inc.
OpenGL renderer: AMD Radeon HD 6970M OpenGL Engine
OpenGL version detected: 210
OpenGL vendor: ATI Technologies Inc.
OpenGL renderer: AMD Radeon HD 6970M OpenGL Engine
Assertion failure: !IsNull() (Cannot compute with a null value), at ../../dist/include/mozilla/TimeStamp.h:323
mozilla::TimeStamp::operator+(mozilla::TimeDuration const&) const+0x0000005A [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x0016313A]
mozilla::layers::LayerManagerComposite::VisualFrameWarning(float)+0x0000006B [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x014DC19B]
mozilla::layers::LayerTransactionParent::RecvUpdate(nsTArray<mozilla::layers::Edit> const&, unsigned long long const&, mozilla::layers::TargetConfig const&, bool const&, bool const&, unsigned int const&, bool const&, mozilla::TimeStamp const&, nsTArray<mo+0x00001DCC [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x014CCCEC]
mozilla::layers::LayerTransactionParent::RecvUpdateNoSwap(nsTArray<mozilla::layers::Edit> const&, unsigned long long const&, mozilla::layers::TargetConfig const&, bool const&, bool const&, unsigned int const&, bool const&, mozilla::TimeStamp const&)+0x000000AA [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x014CAF0A]
mozilla::layers::PLayerTransactionParent::OnMessageReceived(IPC::Message const&)+0x00000F56 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x00B16606]
mozilla::layers::PCompositorParent::OnMessageReceived(IPC::Message const&)+0x00000083 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x008DE4A3]
mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&)+0x00000116 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007CD996]
mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message const&)+0x000000CF [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007CCC2F]
mozilla::ipc::MessageChannel::OnMaybeDequeueOne()+0x00000200 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007C8C90]
void DispatchToMethod<mozilla::ipc::MessageChannel, bool (mozilla::ipc::MessageChannel::*)()>(mozilla::ipc::MessageChannel*, bool (mozilla::ipc::MessageChannel::*)(), Tuple0 const&)+0x00000083 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007E61A3]
RunnableMethod<mozilla::ipc::MessageChannel, bool (mozilla::ipc::MessageChannel::*)(), Tuple0>::Run()+0x0000004E [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007E609E]
mozilla::ipc::MessageChannel::RefCountedTask::Run()+0x00000028 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007E8E48]
mozilla::ipc::MessageChannel::DequeueTask::Run()+0x00000024 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007E8E14]
MessageLoop::RunTask(Task*)+0x00000060 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007525F0]
MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&)+0x0000004F [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x00752B6F]
MessageLoop::DoWork()+0x00000124 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x00752DA4]
base::MessagePumpDefault::Run(base::MessagePump::Delegate*)+0x000000D7 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007687C7]
MessageLoop::RunInternal()+0x00000076 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007524D6]
MessageLoop::RunHandler()+0x00000015 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x007523E5]
MessageLoop::Run()+0x0000002D [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x0075238D]
base::Thread::ThreadMain()+0x00000110 [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x00772C30]
ThreadFunc(void*)+0x0000002C [/Users/jyavenard/Work/Mozilla/mozilla-central/obj-ff-dbg/dist/NightlyDebug.app/Contents/MacOS/XUL +0x0072B92C]
_pthread_body+0x0000008A [/usr/lib/system/libsystem_pthread.dylib +0x00001899]
_pthread_struct_init+0x00000000 [/usr/lib/system/libsystem_pthread.dylib +0x0000172A]

Will post a more complete backtrace next time it occurs.
proper backtrace:
(lldb) bt
* thread #33: tid = 0x3a923c, 0x0000000101ed22f4 XUL`mozilla::TimeStamp::operator+(this=0x00000001259a7268, aOther=0x000000011e27fc40) const + 100 at TimeStamp.h:323, name = 'Compositor', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x0000000101ed22f4 XUL`mozilla::TimeStamp::operator+(this=0x00000001259a7268, aOther=0x000000011e27fc40) const + 100 at TimeStamp.h:323
    frame #1: 0x000000010324b2db XUL`mozilla::layers::LayerManagerComposite::VisualFrameWarning(this=0x00000001259a71b0, severity=0.189939722) + 107 at LayerManagerComposite.h:249
    frame #2: 0x000000010323be2c XUL`mozilla::layers::LayerTransactionParent::RecvUpdate(this=0x000000011dff4790, cset=0x000000011e280520, aTransactionId=0x000000011e280518, targetConfig=0x000000011e2804d8, isFirstPaint=0x000000011e2804d7, scheduleComposite=0x000000011e2804d6, paintSequenceNumber=0x000000011e2804d0, isRepeatTransaction=0x000000011e2804cf, aTransactionStart=0x000000011e2804c0, reply=0x0000000000000000) + 7628 at LayerTransactionParent.cpp:581
    frame #3: 0x000000010323a04a XUL`mozilla::layers::LayerTransactionParent::RecvUpdateNoSwap(this=0x000000011dff4790, cset=0x000000011e280520, aTransactionId=0x000000011e280518, targetConfig=0x000000011e2804d8, isFirstPaint=0x000000011e2804d7, scheduleComposite=0x000000011e2804d6, paintSequenceNumber=0x000000011e2804d0, isRepeatTransaction=0x000000011e2804cf, aTransactionStart=0x000000011e2804c0) + 170 at LayerTransactionParent.cpp:190
    frame #4: 0x00000001028857b6 XUL`mozilla::layers::PLayerTransactionParent::OnMessageReceived(this=0x000000011dff4790, __msg=0x000000011e280920) + 3926 at PLayerTransactionParent.cpp:483
    frame #5: 0x000000010264d653 XUL`mozilla::layers::PCompositorParent::OnMessageReceived(this=0x0000000101468600, __msg=0x000000011e280920) + 131 at PCompositorParent.cpp:438
    frame #6: 0x000000010253cb46 XUL`mozilla::ipc::MessageChannel::DispatchAsyncMessage(this=0x0000000101468660, aMsg=0x000000011e280920) + 278 at MessageChannel.cpp:1233
    frame #7: 0x000000010253bddf XUL`mozilla::ipc::MessageChannel::DispatchMessage(this=0x0000000101468660, aMsg=0x000000011e280920) + 207 at MessageChannel.cpp:1115
    frame #8: 0x0000000102537e40 XUL`mozilla::ipc::MessageChannel::OnMaybeDequeueOne(this=0x0000000101468660) + 512 at MessageChannel.cpp:1098
    frame #9: 0x0000000102555353 XUL`void DispatchToMethod<mozilla::ipc::MessageChannel, bool (obj=0x0000000101468660, method=40 7c 53 02 01 00 00 00, arg=0x0000000125679a60)()>(mozilla::ipc::MessageChannel*, bool (mozilla::ipc::MessageChannel::*)(), Tuple0 const&) + 131 at tuple.h:383
    frame #10: 0x000000010255524e XUL`RunnableMethod<mozilla::ipc::MessageChannel, bool (this=0x0000000125679a30)(), Tuple0>::Run() + 78 at task.h:307
    frame #11: 0x0000000102557ff8 XUL`mozilla::ipc::MessageChannel::RefCountedTask::Run(this=0x000000011c5f73f0) + 40 at MessageChannel.h:411
    frame #12: 0x0000000102557fc4 XUL`mozilla::ipc::MessageChannel::DequeueTask::Run(this=0x000000011dff9370) + 36 at MessageChannel.h:428
    frame #13: 0x00000001024c17a0 XUL`MessageLoop::RunTask(this=0x000000011e280cf8, task=0x000000011dff9370) + 96 at message_loop.cc:357
    frame #14: 0x00000001024c1d1f XUL`MessageLoop::DeferOrRunPendingTask(this=0x000000011e280cf8, pending_task=0x000000011e280af8) + 79 at message_loop.cc:365
    frame #15: 0x00000001024c1f54 XUL`MessageLoop::DoWork(this=0x000000011e280cf8) + 292 at message_loop.cc:443
    frame #16: 0x00000001024d7977 XUL`base::MessagePumpDefault::Run(this=0x000000011c5c0760, delegate=0x000000011e280cf8) + 215 at message_pump_default.cc:34
    frame #17: 0x00000001024c1686 XUL`MessageLoop::RunInternal(this=0x000000011e280cf8) + 118 at message_loop.cc:229
    frame #18: 0x00000001024c1595 XUL`MessageLoop::RunHandler(this=0x000000011e280cf8) + 21 at message_loop.cc:222
    frame #19: 0x00000001024c153d XUL`MessageLoop::Run(this=0x000000011e280cf8) + 45 at message_loop.cc:196
    frame #20: 0x00000001024e1de0 XUL`base::Thread::ThreadMain(this=0x000000011d9701d0) + 272 at thread.cc:168
    frame #21: 0x000000010249aadc XUL`ThreadFunc(closure=0x000000011d9701d0) + 44 at platform_thread_posix.cc:39
    frame #22: 0x00007fff8be74899 libsystem_pthread.dylib`_pthread_body + 138
    frame #23: 0x00007fff8be7472a libsystem_pthread.dylib`_pthread_start + 137
(lldb)
[Tracking Requested - why for this release]: This looks like a regression from 1055050, let's make sure we don't leave it in.
Assignee: nobody → bgirard
Blocks: 1055050
Attached patch patchSplinter Review
Opps.

At the same time I changed the 1.5 second fade out to an instance disappear in 0.15 second. This adjusts the time as well.
Attachment #8482790 - Flags: review?(milan)
Comment on attachment 8482790 [details] [diff] [review]
patch

Review of attachment 8482790 [details] [diff] [review]:
-----------------------------------------------------------------

Trivial enough that it should be ok for r+ to come from me.

I would follow this up with a bug that consolidates the related/equivalent magic numbers in this file, LayerManagerComposite.cpp and LayerTransactionParent.cpp (I see 150, 200, 800 and 1000 mentioned.)
Attachment #8482790 - Flags: review?(milan) → review+
Blocks: 1061846
Summary: Random crashes → Debug build crashes from transaction delay indicator using null timestamp
https://hg.mozilla.org/mozilla-central/rev/47d1efdb0280
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
BenWa - This bug is marked as impacting 34 (aurora). Can you please submit an aurora approval request to get this uplifted?
Flags: needinfo?(bgirard)
Comment on attachment 8482790 [details] [diff] [review]
patch

Approval Request Comment
Add missing null check for extension to the FPS counter debug feature. Low risk.
Attachment #8482790 - Flags: approval-mozilla-aurora?
Flags: needinfo?(bgirard)
Comment on attachment 8482790 [details] [diff] [review]
patch

Aurora+
Attachment #8482790 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Flags: qe-verify-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: