bugGnash - The GNU Flash player - Bugs: bug #20260, SDL sound: Crash / Assertion...

 
 

bug #20260: SDL sound: Crash / Assertion Failure

Submitted by:  None
Submitted on:  Mon 25 Jun 2007 11:04:37 PM UTC  
 
Category: sound-sdlSeverity: 3 - Normal
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: Tomas Groth <tgc>
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)

Tue 03 Jul 2007 12:55:10 AM UTC, comment #6:

If nobody can reproduce the get_data_ptr assertion failure I suggest we close this and use the other two bug items for the SimGirl-specific bugs.

Sandro Santilli <strk>
Project Member
Mon 02 Jul 2007 03:47:24 PM UTC, comment #5:

See bug #20317 and bug #20319 for other SimGirl related bugs

Sandro Santilli <strk>
Project Member
Mon 02 Jul 2007 01:56:20 PM UTC, comment #4:

I committed a patch which makes stops the audio crashes.

Tomas Groth <tgc>In charge of this item.
Mon 02 Jul 2007 01:25:20 PM UTC, comment #3:

I tried running the SimGirl animation without sound (-r1), and it crashes, so maybe there's a memory corruption somewhere, causing sound to fail the assertion.

Tomas Groth <tgc>In charge of this item.
Sat 30 Jun 2007 04:08:08 PM UTC, comment #2:

Also happen playing SimGirl.swf, need some user interaction
- click on "Play Game"
- Press space bar
- select a guy
- click on the button, or MovieControl->restart

Sandro Santilli <strk>
Project Member
Tue 26 Jun 2007 01:13:07 AM UTC, comment #1:

See also bug #20242

Sandro Santilli <strk>
Project Member
Mon 25 Jun 2007 11:04:37 PM UTC, original submission:

Occurs while watching http://www.endofworld.net/endofworld.swf

This assertion failure would be a crash in a release build that skipped assertions.

This assertion failure is dependent on a race condition (which seems to disappear entirely when operating with a system load lesser than the number of CPU cores present.)

When played with sound disabled, the assertion failure, naturally, does not occur.

When the assertion failure does not occur, at this point in the movie, the movie rewinds to the beginning for no apparent reason.

Command-line output:

donny@disqplay:~$ ./gnash/gui/.libs/gnash endofworld.swf

    • (gnash:2989): WARNING **: Couldn't find pixmap file: GnashG.png

gnash: sound_handler_sdl.cpp:535: uint8_t* active_sound::get_data_ptr(long unsigned int): Assertion `data_size > pos' failed.
Aborted

GDB offers some more insight:

Program received signal SIGABRT, Aborted.
[Switching to Thread -1267729488 (LWP 3007)]
0xb7f8f410 in ?? ()

(gdb) bt
#0 0xb7f8f410 in ?? ()
#1 0xb46ff188 in ?? ()
#2 0x00000006 in ?? ()
#3 0x00000bbf in ?? ()
#4 0xb7b0f811 in raise () from /lib/tls/i686/cmov/libc.so.6
#5 0xb7b10fb9 in abort () from /lib/tls/i686/cmov/libc.so.6
#6 0xb7b08fbf in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#7 0xb670c223 in active_sound::get_data_ptr (this=0xb474b448, pos=98919) at sound_handler_sdl.cpp:535
#8 0xb670cafe in SDL_sound_handler::sdl_audio_callback (this=0x8052800, stream=0x88b4fb0 "", buffer_length=8192) at sound_handler_sdl.cpp:777
#9 0xb670d057 in SDL_sound_handler::sdl_audio_callback (udata=0x8052800, stream=0x88b4fb0 "", buffer_length_in=8192) at sound_handler_sdl.cpp:654
#10 0xb65dcd5d in SDL_AudioInit () from /usr/lib/libSDL-1.2.so.0
#11 0xb65e582b in SDL_GetThreadID () from /usr/lib/libSDL-1.2.so.0
#12 0xb6632c8d in SDL_ThreadID () from /usr/lib/libSDL-1.2.so.0
#13 0xb6f25240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#14 0xb7bb23de in clone () from /lib/tls/i686/cmov/libc.so.6

(gdb) up 7
#7 0xb670c223 in active_sound::get_data_ptr (this=0xb474b448, pos=98919) at sound_handler_sdl.cpp:535
535 assert(data_size > pos);

(gdb) print this
$1 = (active_sound * const) 0x6

I'm... just now noticing this very strange output. Previously the stack trace showed "#7 ... (this=0x6, pos=98919) ..." but now it shows this=0xb474b448. However clearly when I invoke "print this" it shows the old value of 0x6. I'm not sure what this is about.

The race condition seems to be that the static SDL_sound_handler::sdl_audio_handler() callback function is being invoked by SDL after sound data has either been deleted, or corrupted in some fashion.

Anonymous

 

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

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by tgc (Posted a comment)
  • -unavailable- added by strk (Posted a comment)
  •  

    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 5 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat 07 Jul 2007 12:28:09 PM UTCstrkStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Mon 02 Jul 2007 03:47:24 PM UTCstrkStatusNone=>Ready For Test
      Assigned toNone=>tgc
    Tue 26 Jun 2007 08:34:39 PM UTCmartinwguySummaryCrash / Assertion Failure=>SDL sound: Crash / Assertion Failure

    Back to the top


    Powered by Savane 3.1-cleanup1