Closed Bug 646819 Opened 13 years ago Closed 13 years ago

Intermittent out of memory situation in content/media/test/test_seek.html | Exited with code [number] during test run

Categories

(Core :: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla5

People

(Reporter: ehsan.akhgari, Assigned: cajbir)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

http://tinderbox.mozilla.org/showlog.cgi?log=Cedar/1301575439.1301576223.1244.gz&fulltext=1
Rev3 WINNT 5.1 cedar opt test mochitests-1/5 on 2011/03/31 05:43:59

SEEK-TEST: Finished r11025_s16_c1.wav seek test 4
SEEK-TEST: Started r11025_s16_c1.wav seek test 5
SEEK-TEST: Started r11025_s16_c1.wav seek test 6
64420 INFO TEST-PASS | /tests/content/media/test/test_seek.html | r11025_s16_c1.wav seek test 5: Video currentTime should be around 0.5: 0.5
64421 INFO TEST-PASS | /tests/content/media/test/test_seek.html | r11025_s16_c1.wav seek test 6: Seek 1
*** registerProtocolHandler(foo,http://mochi.test:8888/%s,Foo handler)
*** registerContentHandler(application/rss+xml,http://mochi.test:8888/%s,Foo handler)
*** registerProtocolHandler(foo,http://mochi.test:8888/,Foo handler)
*** registerContentHandler(application/rss+xml,http://mochi.test:8888/,Foo handler)
*** registerProtocolHandler(foo,foo/%s,Foo handler)
*** registerContentHandler(application/rss+xml,foo/%s,Foo handler)
*** registerProtocolHandler(foo,http://remotehost:8888/%s,Foo handler)
*** registerContentHandler(application/rss+xml,http://remotehost:8888/%s,Foo handler)
*** registerProtocolHandler(foo,https://mochi.test:8888/%s,Foo handler)
*** registerContentHandler(application/rss+xml,https://mochi.test:8888/%s,Foo handler)
*** registerProtocolHandler(foo,ftp://mochi.test:8888/%s,Foo handler)
*** registerContentHandler(application/rss+xml,ftp://mochi.test:8888/%s,Foo handler)
*** registerProtocolHandler(foo,chrome://mochi.test:8888/%s,Foo handler)
*** registerContentHandler(application/rss+xml,chrome://mochi.test:8888/%s,Foo handler)
*** registerProtocolHandler(foo,foo://mochi.test:8888/%s,Foo handler)
*** registerContentHandler(application/rss+xml,foo://mochi.test:8888/%s,Foo handler)
*** registerProtocolHandler(chrome,http://mochi.test:8888/%s,chrome handler)
*** registerProtocolHandler(vbscript,http://mochi.test:8888/%s,vbscript handler)
*** registerProtocolHandler(javascript,http://mochi.test:8888/%s,javascript handler)
*** registerProtocolHandler(moz-icon,http://mochi.test:8888/%s,moz-icon handler)
*** registerContentHandler(application/rss+xml,http://mochi.test:8888/%s,Foo handler)
*** registerContentHandler(application/atom+xml,http://mochi.test:8888/%s,Foo handler)
*** registerContentHandler(text/html,http://mochi.test:8888/%s,Foo handler)
Can't find symbol 'eglCreateImageKHR'
Can't find symbol 'eglDestroyImageKHR'
Can't find symbol 'glEGLImageTargetTexture2DOES'
out of memory
TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_seek.html | Exited with code -2147483645 during test run
INFO | automation.py | Application ran for: 0:08:53.469000
INFO | automation.py | Reading PID log: c:\docume~1\cltbld\locals~1\temp\tmps1mulkpidlog
==> process 3556 launched child process 3384
INFO | automation.py | Checking for orphan process with PID: 3384
PROCESS-CRASH | /tests/content/media/test/test_seek.html | application crashed (minidump found)
Operating system: Windows NT
                  5.1.2600 Service Pack 2
CPU: x86
     GenuineIntel family 6 model 23 stepping 10
     2 CPUs

Crash reason:  EXCEPTION_BREAKPOINT
Crash address: 0x6c1a39

Thread 51 (crashed)
 0  mozalloc.dll!mozalloc_abort(char const * const) [mozalloc_abort.cpp:a0e698794d69 : 77 + 0x0]
    eip = 0x006c1a39   esp = 0x179ffe04   ebp = 0x179ffe58   ebx = 0xffffffff
    esi = 0x781432c0   edi = 0x78187690   eax = 0x00000000   ecx = 0x3c280402
    edx = 0x781d6c50   efl = 0x00000202
    Found by: given as instruction pointer in context
 1  mozalloc.dll!mozalloc_handle_oom() [mozalloc_oom.cpp:a0e698794d69 : 54 + 0x9]
    eip = 0x006c1a6c   esp = 0x179ffe10   ebp = 0x179ffe58
    Found by: call frame info with scanning
 2  xul.dll!nsWaveReader::DecodeAudioData() [nsWaveReader.cpp:a0e698794d69 : 198 + 0x13]
    eip = 0x105b3a4d   esp = 0x179ffe18   ebp = 0x179ffe58
    Found by: call frame info
 3  xul.dll!nsBuiltinDecoderStateMachine::DecodeLoop() [nsBuiltinDecoderStateMachine.cpp:a0e698794d69 : 351 + 0x7]
    eip = 0x10940145   esp = 0x179ffe60   ebp = 0x179ffeec
    Found by: previous frame's frame pointer
 4  xul.dll!nsRunnableMethodImpl<unsigned int ( mozilla::places::`anonymous namespace'::VisitedQuery::*)(void),1>::Run() [nsThreadUtils.h:a0e698794d69 : 345 + 0x2]
    eip = 0x104c2e07   esp = 0x179ffef4   ebp = 0x04298a20
    Found by: previous frame's frame pointer
 5  xul.dll!nsThread::ProcessNextEvent(int,int *) [nsThread.cpp:a0e698794d69 : 633 + 0x13]
    eip = 0x100d2187   esp = 0x179ffef8   ebp = 0x04298a20
    Found by: call frame info
 6  xul.dll!nsThreadStartupEvent::Run() [nsThread.cpp:a0e698794d69 : 207 + 0xf]
    eip = 0x1022e317   esp = 0x179fff20   ebp = 0x100d2187
    Found by: call frame info with scanning
 7  nspr4.dll!_PR_NativeRunThread [pruthr.c:a0e698794d69 : 426 + 0x8]
    eip = 0x0034bdd9   esp = 0x179fff54   ebp = 0x100d2187
    Found by: call frame info with scanning
 8  nspr4.dll!pr_root [w95thred.c:a0e698794d69 : 122 + 0xc]
    eip = 0x0034e05d   esp = 0x179fff74   ebp = 0x100d2187
    Found by: stack scanning
 9  mozcrt19.dll!_callthreadstartex [threadex.c:a0e698794d69 : 348 + 0x8]
    eip = 0x78132c28   esp = 0x179fff7c   ebp = 0x100d2187
    Found by: call frame info
10  mozcrt19.dll!__dllonexit [onexit.c:a0e698794d69 : 276 + 0x5]
    eip = 0x7813d228   esp = 0x179fffa4   ebp = 0x100d2187
    Found by: stack scanning
11  mozcrt19.dll!_threadstartex [threadex.c:a0e698794d69 : 326 + 0x4]
    eip = 0x78132cb6   esp = 0x179fffb4   ebp = 0x179fffec
    Found by: stack scanning
12  kernel32.dll + 0x399f2
    eip = 0x7c8399f3   esp = 0x179fffe4   ebp = 0x179fffec
    Found by: call frame info with scanning

Also:
http://tinderbox.mozilla.org/showlog.cgi?log=Cedar/1301570833.1301571494.9523.gz&fulltext=1
Rev3 MacOSX Leopard 10.5.8 cedar opt test mochitests-1/5 on 2011/03/31 04:27:13

SEEK-TEST: Finished r11025_s16_c1.wav seek test 4
SEEK-TEST: Started r11025_s16_c1.wav seek test 5
SEEK-TEST: Started r11025_s16_c1.wav seek test 6
64262 INFO TEST-PASS | /tests/content/media/test/test_seek.html | r11025_s16_c1.wav seek test 5: Video currentTime should be around 0.5: 0.5
64263 INFO TEST-PASS | /tests/content/media/test/test_seek.html | r11025_s16_c1.wav seek test 6: Seek 1
64264 INFO TEST-PASS | /tests/content/media/test/test_seek.html | r11025_s16_c1.wav seek test 6: Seek 2
out of memory
64265 INFO TEST-PASS | /tests/content/media/test/test_seek.html | r11025_s16_c1.wav seek test 6: Seek 3
SEEK-TEST: Finished r11025_s16_c1.wav seek test 6
TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_seek.html | Exited with code 1 during test run
INFO | automation.py | Application ran for: 0:09:02.426404
INFO | automation.py | Reading PID log: /var/folders/Xr/Xr--yJnSEY0U11ET5NZuMU+++TM/-Tmp-/tmpbee3w0pidlog
PROCESS-CRASH | /tests/content/media/test/test_seek.html | application crashed (minidump found)
Operating system: Mac OS X
                  10.5.8 9L31a
CPU: x86
      family 6 model 23 stepping 10
     2 CPUs

Crash reason:  EXC_BAD_ACCESS / KERN_PROTECTION_FAILURE
Crash address: 0x0

Thread 33 (crashed)
 0  libmozalloc.dylib!mozalloc_abort [mozalloc_abort.cpp:b26a6eda6f8b : 64 + 0x0]
    eip = 0x00018e7b   esp = 0xb18efc90   ebp = 0x1dec4eb0   ebx = 0x00018e50
    esi = 0xa02f65b8   edi = 0x00000000   eax = 0x0000000a   ecx = 0x00000000
    edx = 0x00000000   efl = 0x00010246
    Found by: given as instruction pointer in context
 1  libmozalloc.dylib!mozalloc_handle_oom [mozalloc_oom.cpp:b26a6eda6f8b : 54 + 0xd]
    eip = 0x00018eb8   esp = 0xb18efcb0   ebp = 0x1dec4eb0   ebx = 0x00018ea9
    esi = 0x00005622   edi = 0x00000000
    Found by: call frame info
 2  libmozalloc.dylib!moz_xmalloc [mozalloc.cpp:b26a6eda6f8b : 100 + 0x4]
    eip = 0x00018bce   esp = 0xb18efcd0   ebp = 0x1dec4eb0   ebx = 0xffffffa8
    esi = 0x00005622   edi = 0x00000000
    Found by: call frame info
 3  XUL!nsWaveReader::DecodeAudioData [mozalloc.h : 241 + 0x14]
    eip = 0x033df60f   esp = 0xb18efcf0   ebp = 0x1dec4eb0   ebx = 0x033df51c
    esi = 0x00005622   edi = 0x00000000
    Found by: call frame info
 4  XUL!nsBuiltinDecoderStateMachine::DecodeLoop [nsBuiltinDecoderStateMachine.cpp:b26a6eda6f8b : 351 + 0x7]
    eip = 0x0338c95a   esp = 0xb18efd80   ebp = 0x00000000   ebx = 0x0338c5cf
    esi = 0x2940dee0   edi = 0x00000000
    Found by: call frame info
 5  XUL!nsRunnableMethodImpl<void (nsBuiltinDecoderStateMachine::*)(),true>::Run [cedar:ils.h:b26a6eda6f8b : 345 + 0xf]
    eip = 0x0338d0df   esp = 0xb18efe50   ebp = 0xb18efea8   ebx = 0x2dc2ac90
    esi = 0x00000000   edi = 0x1e693df0
    Found by: call frame info
 6  XUL!nsThread::ProcessNextEvent [nsThread.cpp:b26a6eda6f8b : 633 + 0x7]
    eip = 0x03a6a577   esp = 0xb18efe70   ebp = 0xb18efea8   ebx = 0x03a6a3cc
    esi = 0x00000000   edi = 0x1e693df0
    Found by: call frame info
 7  XUL!NS_ProcessNextEvent_P [nsThreadUtils.cpp : 250 + 0x17]
    eip = 0x02b68bea   esp = 0xb18efed0   ebp = 0xb18eff1c   ebx = 0x02b68bc9
    esi = 0x1dee06a0   edi = 0x1e693df0
    Found by: call frame info
 8  XUL!nsThread::ThreadFunc [nsThread.cpp:b26a6eda6f8b : 278 + 0xf]
    eip = 0x03a6a910   esp = 0xb18eff00   ebp = 0xb18eff1c   ebx = 0x03a6a88c
    esi = 0x1dee06a0   edi = 0x1e693df0
    Found by: call frame info
 9  libnspr4.dylib!_pt_root [ptthread.c:b26a6eda6f8b : 187 + 0x8]
    eip = 0x00056862   esp = 0xb18eff40   ebp = 0xb18eff78   ebx = 0x000567de
    esi = 0x1dee06a0   edi = 0x00064e00
    Found by: call frame info
10  libSystem.B.dylib + 0x32154
    eip = 0x921f7155   esp = 0xb18eff80   ebp = 0xb18effc8   ebx = 0x921f7028
    esi = 0xb18f0000   edi = 0x00000000
    Found by: call frame info
11  libSystem.B.dylib + 0x32011
    eip = 0x921f7012   esp = 0xb18effd0   ebp = 0xb18effec
    Found by: previous frame's frame pointer



This looks really bad.  Could it be a regression from the recent wave decoder changes?  Could it indicate that we're leaking memory somehow?
It looks like the issue identified by Chris Pearce in bug 641718 comment 15:

> PRBool nsWaveReader::DecodeAudioData()
>  {
>    MonitorAutoEnter mon(mMonitor);
>    NS_ASSERTION(mDecoder->OnStateMachineThread() || mDecoder->OnDecodeThread(),
>                 "Should be on state machine thread or decode thread.");

> -  PRInt64 pos = GetPosition();
> +  PRInt64 pos = GetPosition() - mWavePCMOffset;
> 
> This ensures that the start time of the audio is calculated correctly (it would
> be off by a few hundred microseconds without this). Also without this, |pos|
> can be greater than |len|, causing |remaining| to be negative, and operator new to fail further down.

We should factor that out into this bug.
Attached patch FixSplinter Review
Assignee: nobody → chris.double
Status: NEW → ASSIGNED
Attachment #523302 - Flags: review?(kinetik)
Attachment #523302 - Flags: review?(kinetik) → review+
http://hg.mozilla.org/mozilla-central/rev/d6da3f26daea
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.2
Can I take a moment to say that among the hundreds of intermittent orange bugs that I've filed, this has been the most pleasant experience?  I owe you guys a better or two!  Really appreciate the prompt fix.
Can someone confirm if this is fixed?
Whiteboard: [orange]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: