Closed GoogleCodeExporter closed 8 years ago
A more detailed backtrace with all the threads:
$ gdb gst-launch.exe
GNU gdb (GDB) 7.1
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from c:\gstreamer\bin/gst-launch.exe...(no debugging symbols
found)...done.
(gdb) run videotestsrc ! theoraenc ! fakesink
Starting program: c:\gstreamer\bin/gst-launch.exe videotestsrc ! theoraenc !
fakesink
[New Thread 3788.0x8ec]
Setting pipeline to PAUSED ..
Pipeline is PREROLLING ...
[New Thread 3788.0xcb8]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 3788.0xcb8]
0x7787fc77 in ntdll!memchr () from C:\Windows\system32\ntdll.dll
(gdb) warning: FTH: (3788): *** Fault tolerant heap shim applied to current
process. This is usually due to previous crashes. ***
(gdb) thread apply all bt
Thread 2 (Thread 3788.0xcb8):
#0 0x7787fc77 in ntdll!memchr () from C:\Windows\system32\ntdll.dll
#1 0x7787fb86 in ntdll!memchr () from C:\Windows\system32\ntdll.dll
#2 0x6568d4d9 in orc_once_mutex_lock ()
from c:\gstreamer\bin\liborc-0.4-0.dll
#3 0x002b2808 in ?? ()
from C:\gstreamer\lib\gstreamer-0.10\libgstvideotestsrc.dll
Thread 1 (Thread 3788.0x8ec):
#0 0x77896bb1 in ntdll!RtlLockHeap () from C:\Windows\system32\ntdll.dll
#1 0x65c41bf4 in g_mutex_unlock_win32_cs_impl ()
from c:\gstreamer\bin\libgthread-2.0-0.dll
#2 0x685ea72c in g_main_context_prepare ()
from c:\gstreamer\bin\libglib-2.0-0.dll
#3 0x685eb1e7 in g_main_context_iterate ()
from c:\gstreamer\bin\libglib-2.0-0.dll
#4 0x685ebcc1 in g_main_loop_run () from c:\gstreamer\bin\libglib-2.0-0.dll
#5 0x1000e2ce in libgstreamer-0!gst_bus_poll ()
from c:\gstreamer\bin\libgstreamer-0.10.dll
#6 0x015b90e8 in ?? ()
#7 0x00402b9b in ?? ()
#8 0x75f61174 in KERNEL32!AcquireSRWLockExclusive ()
from C:\Windows\system32\kernel32.dll
#9 0x778ab495 in ntdll!RtlInsertElementGenericTableAvl ()
from C:\Windows\system32\ntdll.dll
#10 0x778ab468 in ntdll!RtlInsertElementGenericTableAvl ()
from C:\Windows\system32\ntdll.dll
#11 0x00000000 in ?? ()
(gdb)
Original comment by ylatuya
on 5 Jul 2010 at 10:21
And another one, just in case:
(gdb) thread apply all bt
Thread 2 (Thread 2736.0xad0):
#0 0x77c3fc77 in ntdll!memchr () from C:\Windows\system32\ntdll.dll
#1 0x77c3fb86 in ntdll!memchr () from C:\Windows\system32\ntdll.dll
#2 0x6568d4d9 in orc_once_mutex_lock ()
from c:\gstreamer\bin\liborc-0.4-0.dll
#3 0x003f2808 in ?? ()
from C:\gstreamer\lib\gstreamer-0.10\libgstvideotestsrc.dll
Thread 1 (Thread 2736.0x808):
#0 0x68610010 in g_static_rec_mutex_unlock ()
from c:\gstreamer\bin\libglib-2.0-0.dll
#1 0x1001c2fa in libgstreamer-0!gst_element_set_state ()
from c:\gstreamer\bin\libgstreamer-0.10.dll
#2 0x00000013 in ?? ()
#3 0x00000000 in ?? ()
Original comment by ylatuya
on 5 Jul 2010 at 10:32
I assume we are compiling it with win32 threads, we should try with pthreads
instead. The relevant code of orc_once_mutex_lock can be found here:
http://code.entropywave.com/git?p=orc.git;a=blob;f=orc/orconce.c;h=91c585abc25fc
755588ef75a539eddb3b0be2121;hb=HEAD
Original comment by ylatuya
on 5 Jul 2010 at 10:44
Using pthreads instead of win32 threads works.
Original comment by ylatuya
on 5 Jul 2010 at 11:17
Could you try this patch?
Original comment by d...@entropywave.com
on 9 Jul 2010 at 7:45
Attachments:
Oops, wrong patch.
Original comment by d...@entropywave.com
on 9 Jul 2010 at 8:04
Attachments:
The crash continues to happen even with this provided patch. I recompiled using
win32 threads and ran the provided example pipeline again which resulted in the
same crash previously described.
Original comment by david.g.hoyt
on 9 Jul 2010 at 8:37
Here's the equivalent patch I used.
Original comment by david.g.hoyt
on 9 Jul 2010 at 9:06
Attachments:
Oops, the prototype should be BOOL WINAPI DllMain(...). Fixed in Orc master,
will be in 0.4.6.
Original comment by dschle...@gmail.com
on 14 Jul 2010 at 12:45
This is fixed in the trunk with an upgrade to orc 0.4.6.
However, there's still an issue using theoradec. Reverting to an old copy of
libtheoradec resolved it for now. Presumably it's an issue with compiling
theora against mingw-w64's gcc 4.5.0. (LTO? Loop unrolling? ??).
Original comment by david.g.hoyt
on 15 Jul 2010 at 9:47
Original issue reported on code.google.com by
ylatuya
on 5 Jul 2010 at 10:18