Closed Bug 693021 Opened 13 years ago Closed 13 years ago

Intermittent test_seek.html | Exited with code 1 during test run from "Assertion failure: !aOther.IsNull() && "Cannot compute with aOther null value", at ../../dist/include/mozilla/TimeStamp.h:220"

Categories

(Core :: Audio/Video, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla13
Tracking Status
firefox-esr10 --- fixed

People

(Reporter: philor, Assigned: kinetik)

References

Details

(Keywords: assertion, intermittent-failure, Whiteboard: [test which aborts the suite])

Attachments

(1 file, 1 obsolete file)

https://tbpl.mozilla.org/php/getParsedLog.php?id=6734173&tree=Mozilla-Inbound Rev3 Fedora 12x64 mozilla-inbound debug test mochitests-1/5 on 2011-10-07 14:57:14 PDT for push e27c6941c340 78703 INFO TEST-PASS | /tests/content/media/test/test_seek.html | bug516323.indexed.ogv seek test 1: seeking should be readonly - true should equal true Assertion failure: !aOther.IsNull() && "Cannot compute with aOther null value", at ../../dist/include/mozilla/TimeStamp.h:220 WARNING: shutting down early because of crash!: file /builds/slave/m-in-lnx64-dbg/build/dom/plugins/ipc/PluginModuleChild.cpp, line 741 WARNING: plugin process _exit()ing: file /builds/slave/m-in-lnx64-dbg/build/dom/plugins/ipc/PluginModuleChild.cpp, line 706 TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_seek.html | Exited with code 1 during test run INFO | automation.py | Application ran for: 0:23:58.515881 INFO | automation.py | Reading PID log: /tmp/tmppdwfPzpidlog ==> process 2240 launched child process 2267 INFO | automation.py | Checking for orphan process with PID: 2267 PROCESS-CRASH | /tests/content/media/test/test_seek.html | application crashed (minidump found) Crash dump filename: /tmp/tmpMSP1p0/minidumps/7824ab02-640a-c820-716f7c67-3bd92165.dmp Operating system: Linux 0.0.0 Linux 2.6.31.5-127.fc12.x86_64 #1 SMP Sat Nov 7 21:11:14 EST 2009 x86_64 CPU: amd64 family 6 model 23 stepping 10 2 CPUs Crash reason: SIGABRT Crash address: 0x1f4000008c0 Thread 18 (crashed) 0 libpthread-2.11.so + 0xee6b rbx = 0x000000dc r12 = 0x00000000 r13 = 0xf1a1b068 r14 = 0x00000000 r15 = 0x00000003 rip = 0xd360ee6b rsp = 0xd6e22a38 rbp = 0xd6e22a40 Found by: given as instruction pointer in context 1 libxul.so!CrashInJS [jsutil.cpp:e27c6941c340 : 95 + 0x9] rip = 0xf28b5932 rsp = 0xd6e22a40 Found by: stack scanning 2 libxul.so!JS_Assert [jsutil.cpp:e27c6941c340 : 103 + 0x4] rip = 0xf28b598b rsp = 0xd6e22a50 Found by: stack scanning 3 libxul.so!mozilla::TimeStamp::operator- [TimeStamp.h : 220 + 0x27] rip = 0xf0a467f0 rsp = 0xd6e22a90 Found by: stack scanning 4 libxul.so!nsBuiltinDecoderStateMachine::AdvanceFrame [nsBuiltinDecoderStateMachine.cpp:e27c6941c340 : 1747 + 0x22] rip = 0xf17da2c8 rsp = 0xd6e22ac0 Found by: stack scanning 5 libxul.so!nsRunnable::Release [nsThreadUtils.cpp:e27c6941c340 : 55 + 0x68] rip = 0xf2206d1d rsp = 0xd6e22af0 Found by: stack scanning 6 libxul.so!nsCOMPtr<nsIRunnable>::~nsCOMPtr [nsCOMPtr.h : 556 + 0x1c] rip = 0xf0a457de rsp = 0xd6e22b20 Found by: stack scanning 7 libxul.so!nsBuiltinDecoderStateMachine::StartDecodeThread [nsBuiltinDecoderStateMachine.cpp:e27c6941c340 : 1094 + 0xb] rip = 0xf17d750a rsp = 0xd6e22b40 Found by: stack scanning 8 libxul.so!nsBuiltinDecoderStateMachine::GetDecodedAudioDuration [nsBuiltinDecoderStateMachine.cpp:e27c6941c340 : 288 + 0x6] rip = 0xf17d43d2 rsp = 0xd6e22b78 Found by: stack scanning ...
OS: Mac OS X → Linux
Hardware: x86 → x86_64
Whiteboard: [orange][test which aborts the suite] → [orange][test which aborts the suite][fixed by 623444?]
Oops, not this one.
Whiteboard: [orange][test which aborts the suite][fixed by 623444?] → [orange][test which aborts the suite]
I can't reproduce this locally, but from code inspection it appears that the problem is that DecodeSeek runs on the decode thread at the time AdvanceFrame drops the decoder monitor to call RenderVideoFrame. DecodeSeek calls StopPlayback, which nulls mPlayStartTime. Inside the currentFrame conditional, mPlayStartTime must have been valid (before dropping the monitor) to calculate presTime, but has become null by the time the now calculation is reached.
Assignee: nobody → kinetik
Status: NEW → ASSIGNED
Attached patch patch v0Splinter Review
This is actually easy to reproduce locally by adding a short sleep inside the RenderVideoFrame block (where the decoder lock is dropped) in AdvanceFrame. The attached patch causes AdvanceFrame to bails early if the state machine is no longer playing, as the current frame is likely out of date due to a seek having completed on the decode thread. The attached fix also removes the fix added in bug 673698, as I think this fix makes that one redundant. Tests pass locally and on try with and without the debugging sleep.
Attachment #602787 - Flags: review?(cpearce)
Attachment #602787 - Flags: review?(cpearce) → review+
(In reply to Matthew Gregan [:kinetik] from comment #76) > The attached fix also removes the fix added in bug 673698, as I think this > fix makes that one redundant. Turns out I was wrong, so I backed out that part of the patch: http://hg.mozilla.org/integration/mozilla-inbound/rev/87ad615157d4
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
kinetik, would this be safe enough to uplift to esr10?
Attached patch Patch+followup folded (obsolete) — Splinter Review
[Approval Request Comment] If this is not a sec:{high,crit} bug, please state case for ESR consideration: Reducing orange. User impact if declined: No idea Fix Landed on Version: mozilla13 Risk to taking this patch (and alternatives if risky): Low String or UUID changes made by this patch: None See https://wiki.mozilla.org/Release_Management/ESR_Landing_Process for more info.
Attachment #654991 - Flags: approval-mozilla-esr10?
Comment on attachment 654991 [details] [diff] [review] Patch+followup folded We're going to build on ESR10.0.7 today, but this is nptob so go ahead with this at your leisure.
Attachment #654991 - Flags: approval-mozilla-esr10? → approval-mozilla-esr10+
Attachment #654991 - Attachment is obsolete: true
Whiteboard: [orange][test which aborts the suite] → [test which aborts the suite]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: