Bug 15862

Summary: Segfault when seeking on youtube with pulseaudio backend
Product: swfdec Reporter: Ed Catmur <ed>
Component: libraryAssignee: Eric Anholt <eric>
Status: NEW --- QA Contact: swfdec ml <swfdec>
Severity: critical    
Priority: medium    
Version: 0.6.6   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: pa_stream_drain_2.patch
pa_stream_drain_3.patch

Description Ed Catmur 2008-05-07 18:16:35 UTC
This is a continuation to bug 13604.

swfdec still crashes when seeking youtube videos while playing.  For example:

(gecko:12419): Swfdec-CRITICAL **: swfdec_audio_render: assertion
`SWFDEC_IS_AUDIO (audio)' failed

(gecko:12419): Swfdec-CRITICAL **: swfdec_audio_render: assertion
`SWFDEC_IS_AUDIO (audio)' failed

(gecko:12419): Swfdec-CRITICAL **: swfdec_audio_render: assertion
`SWFDEC_IS_AUDIO (audio)' failed

(gecko:12419): Swfdec-CRITICAL **: swfdec_audio_render: assertion
`SWFDEC_IS_AUDIO (audio)' failed

Program received signal SIGSEGV, Segmentation fault.
---Type <return> to continue, or q <return> to quit---
[Switching to Thread 0xb701c9e0 (LWP 12419)]
0xb74465f4 in g_hash_table_foreach () from /usr/lib/libglib-2.0.so.0
(gdb) bt full
#0  0xb74465f4 in g_hash_table_foreach () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#1  0xb131fa2e in swfdec_as_object_collect (object=0xaa801b8)
    at swfdec_as_object.c:818
        __PRETTY_FUNCTION__ = "swfdec_as_object_collect"
#2  0xb130f572 in swfdec_as_context_remove_objects (key=0xaa801b8, 
    value=0xaa801b8, debugger=0x0) at swfdec_as_context.c:275
        __PRETTY_FUNCTION__ = "swfdec_as_context_remove_objects"
#3  0xb7446f25 in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#4  0x0aa801b8 in ?? ()
No symbol table info available.
#5  0x0aa801b8 in ?? ()
No symbol table info available.
#6  0x00000000 in ?? ()
No symbol table info available.

Patch to follow.
Comment 1 Ed Catmur 2008-05-07 18:20:14 UTC
Created attachment 16422 [details] [review]
pa_stream_drain_2.patch

Fix stream closing semantics for states CREATING, TERMINATED, FAILED.
Comment 2 Riccardo Magliocchetti 2008-05-08 04:05:48 UTC
Ed, can you try with master git? i think it's already been resolved in a different way there. Can't find any reference in git log though.
Comment 3 Eric Anholt 2008-05-08 15:24:55 UTC
It would be nice if the PA api didn't actively hate its consumers so much.  I'll take a look at the patch when I can.
Comment 4 Ed Catmur 2008-05-13 15:13:39 UTC
Created attachment 16512 [details] [review]
pa_stream_drain_3.patch

Oh, it hates you.

Handle case where pa_context_connect does not immediately succeed.  To be applied on top of pa_stream_drain_2.patch.

Riccardo - I didn't see anything in git past the fix to bug 13604, which this is a continuation to.
Comment 5 Riccardo Magliocchetti 2008-05-13 23:48:41 UTC
(In reply to comment #4)
> Riccardo - I didn't see anything in git past the fix to bug 13604, which this
> is a continuation to.

The changes were not to the pulseaudio backend but elsewhere. This explain why master git works fine. At least for me :)

Comment 6 Riccardo Magliocchetti 2008-05-28 01:46:28 UTC
Crashers are severity critical.
Comment 7 Riccardo Magliocchetti 2008-11-19 12:49:58 UTC
Ed, are you on 64bit userspace right?

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.