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

 
 

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

Submitted by:  Sandro Santilli <strk>
Submitted on:  Thu 17 May 2007 12:23:29 PM UTC  
 
Category: videoSeverity: 5 - Blocker
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: Bastiaan Jacques <bjacques>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project 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>
Project Member

 

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

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Digest:
   task dependencies.

Items that depend on this one: None found

 

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

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 9 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 24 Jan 2008 09:56:42 AM UTCstrkStatusNone=>Fixed
      Open/ClosedOpen=>Closed
    Wed 26 Dec 2007 12:21:57 PM UTCstrkSeverity4 - Important=>5 - Blocker
      Assigned totgc=>bjacques
    Mon 02 Jul 2007 11:03:09 PM UTCstrkAssigned toNone=>tgc
    Fri 01 Jun 2007 11:10:22 AM UTCstrkSeverity5 - Blocker=>4 - Important
    Thu 31 May 2007 12:26:07 PM UTCstrkSummarysegfault playing rtmp-v7.swf from testsuite (NetStreamGst)=>segfault on exit testing rtmp-v7.swf (GST & FFMPEG)
      Dependencies-=>Depends on task #6959
    Thu 17 May 2007 12:23:29 PM UTCstrkCarbon-Copy-=>Added tgc

    Back to the top


    Powered by Savane 3.1-cleanup1