bugGnash - The GNU Flash player - Bugs: bug #19886, segfault on exit testing...

 
 

bug #19886: segfault on exit testing rtmp-v7.swf (GST & FFMPEG)

Submitter:  Sandro Santilli <strk>
Submitted:  Thu 17 May 2007 12:23:29 PM UTC
   
 
Category:  video Severity:  5 - Blocker
Release:  None Status:  Fixed
Privacy:  Public Assigned to:  bjacques
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Thu 24 Jan 2008 09:56:42 AM UTC, comment #11: 

I belive this was fixed by lastest segfault-on-exit patch.

Sandro Santilli <strk>
Group Member
Wed 26 Dec 2007 12:21:57 PM UTC, comment #10: 

Let's make this a blocker, we can always downgrade it to Important if we can't handle to fix before 0.8.2.
Should be one of those threading-related ones...

Sandro Santilli <strk>
Group Member
Wed 26 Dec 2007 12:20:14 PM UTC, comment #9: 

Another ping, got this again, after a long time it wasn't showing up...

FAIL: astests-v8-Runner: gprocessor returned an error while playing 'rtmp-v8.swf'

Sandro Santilli <strk>
Group Member
Sat 15 Dec 2007 10:19:52 PM UTC, comment #8: 

Just a ping for bjacques to take this problem into account while redesigning the gst media handler... see task #6959

Sandro Santilli <strk>
Group Member
Fri 07 Sep 2007 02:57:31 PM UTC, comment #7: 

just a reminder. This bug is still there, I could reproduce a few times while runnign make check before the action execution commit.

Sandro Santilli <strk>
Group Member
Mon 02 Jul 2007 11:03:09 PM UTC, comment #6: 

Thomas, it seems this bug is still related to non-clear thread shutdown. See these outputs from -v, obtained by playing rtmp-v8.swf multiple times:

(1)
exiting after 1 times last frame was reached
Any segfault past this message is likely due to improper threads cleanup.
30370] 18:58:25: Connecting to movie: file:///home/strk/src/gnash/build/head/gtk_agg_ffmpeg/testsuite/actionscript.all/1153948634.flv
30370] 18:58:25: ERROR: Gnash could not open this url: file:///home/strk/src/gnash/build/head/gtk_agg_ffmpeg/testsuite/actionscript.all/1153948634.flv
30370] 18:58:25: ERROR: Gnash could not open movie: 1153948634.flv
30370] 18:58:25: DEBUG: av_streamer: !ns->startPlayback, returning

(2)
exiting after 1 times last frame was reached
Any segfault past this message is likely due to improper threads cleanup.
30431] 18:59:52: Connecting to movie: file:///home/strk/src/gnash/build/head/gtk_agg_ffmpeg/testsuite/actionscript.all/1153948634.flv
Segmentation fault


You can see in (2) that the NetConnection (or FLVParser?) thread is still running on exit.

Sandro Santilli <strk>
Group Member
Fri 01 Jun 2007 11:10:22 AM UTC, comment #5: 

Let's not have segfaults on exit block the release.
We'll need to design proper thread exit strategies for this to be fixed.

Sandro Santilli <strk>
Group Member
Thu 31 May 2007 12:26:07 PM UTC, comment #4: 

Made this bug dependent on the 'remove exit() calls' task.

Sandro Santilli <strk>
Group Member
Mon 28 May 2007 06:42:39 PM UTC, comment #3: 

More info:

the Video part is NOT needed for the segfault, while the play()
call is (no play(), no segfault)

Sandro Santilli <strk>
Group Member
Mon 28 May 2007 06:36:24 PM UTC, comment #2: 

some more info:

1) using new NetStream(undefined) doesn't trigger the segfault
2) using NetStream.play(undefined) is enought to get it

Sandro Santilli <strk>
Group Member
Mon 28 May 2007 08:12:32 AM UTC, comment #1: 

Since the segfault happens on exit (see the "exiting after 1 times last frame was reached " message), I think this is related to deinitialization order. See the boost threads FAQ:

http://www.boost.org/doc/html/thread/faq.html#id1746546

   10. Is it safe for threads to share automatic storage
       duration (stack) objects via pointers or references?

Sandro Santilli <strk>
Group Member
Thu 17 May 2007 12:23:29 PM UTC, original submission:  

I occasionally get this. Today I tried obtaining a backtrace.
Here it is, threading related:

TRACE: [$Id: rtmp.as,v 1.4 2007/02/08 14:40:20 tgc Exp $]
TRACE: Starting...
gnash::as_value gnash::netconnection_new(const gnash::fn_call&) enter
static gnash::as_value gnash::NetConnection::connect_method(const gnash::fn_call&) enter
[New Thread -1235113040 (LWP 5045)]
TRACE: Done...
TRACE: undefined
TRACE: #passed: 0
TRACE: #failed: 0
exiting after 1 times last frame was reached

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1235113040 (LWP 5045)]
0xb7a099dc in memcpy () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7a099dc in memcpy () from /lib/tls/i686/cmov/libc.so.6
#1  0xb7b8152f in std::string::_Rep::_M_clone () from /usr/lib/libstdc++.so.6
#2  0xb7b8170f in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string () from /usr/lib/libstdc++.so.6
#3  0x080e3c85 in vector (this=0xb661a180, __x=@0x822fe40) at stl_construct.h:81
#4  0x080e3134 in host_check_blackwhite_lists (host=@0xb661a2e8) at rc.h:97
#5  0x080e352b in host_check (host=@0xb661a2e8) at /home/strk/src/gnash/gnash-head/server/URLAccessManager.cpp:217
#6  0x080e37fd in gnash::URLAccessManager::allow (url=@0xb661a320) at /home/strk/src/gnash/gnash-head/server/URLAccessManager.cpp:292
#7  0x0815f2f3 in gnash::NetConnection::openConnection (this=0x829c3e8, url=@0x8234a70) at /home/strk/src/gnash/gnash-head/server/asobj/NetConnection.cpp:87
#8  0x0818692c in gnash::NetStreamGst::startPlayback (this=0x829d150) at /home/strk/src/gnash/gnash-head/server/asobj/NetStreamGst.cpp:598
#9  0xb7e7e83d in boost::thread_group::create_thread () from /usr/lib/libboost_thread-gcc-mt-1_33_1.so.1.33.1
#10 0xb7d87341 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0xb7a674ee in clone () from /lib/tls/i686/cmov/libc.so.6

Sandro Santilli <strk>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Digest:
   task dependencies.

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by strk (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 9 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2008-01-24 strk StatusNone Fixed
        Open/ClosedOpen Closed
    2007-12-26 strk Severity4 - Important 5 - Blocker
        Assigned totgc bjacques
    2007-07-02 strk Assigned toNone tgc
    2007-06-01 strk Severity5 - Blocker 4 - Important
    2007-05-31 strk Summarysegfault playing rtmp-v7.swf from testsuite (NetStreamGst) segfault on exit testing rtmp-v7.swf (GST & FFMPEG)
        Dependencies- Depends on task #6959
    2007-05-17 strk Carbon-Copy- Added tgc

    Back to the top

    Powered by Savane 3.13-aa77.
    Corresponding source code