After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 330239 - Crash playing any song from a particular album over rhythmbox DAAP
Crash playing any song from a particular album over rhythmbox DAAP
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal critical
: 0.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-02-07 09:52 UTC by Alex Lancaster
Modified: 2006-03-22 13:02 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10


Attachments
try this patch on for size. Fixesattempts to typefind on too-small buffers (2.00 KB, patch)
2006-03-22 10:08 UTC, Jan Schmidt
none Details | Review

Description Alex Lancaster 2006-02-07 09:52:07 UTC
Steps to reproduce:
1. rhythmbox
2. open up DAAP server
3. click any song on a particular album


Stack trace:
Backtrace was generated from '/home/alex/bin/rhythmbox'

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1208883520 (LWP 28309)]
[New Thread -1233171536 (LWP 28340)]
[New Thread -1243661392 (LWP 28316)]
[New Thread -1221870672 (LWP 28311)]
[New Thread -1211380816 (LWP 28310)]
0x007d6402 in ?? ()

Thread 2 (Thread -1233171536 (LWP 28340))

  • #0 ??
  • #1 __waitpid_nocancel
    from /lib/libpthread.so.0
  • #2 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 simple_find_peek
    from /usr/lib/gstreamer-0.10/libgstid3demux.so
  • #5 gst_type_find_peek
    from /usr/lib/libgstreamer-0.10.so.0
  • #6 ??
    from /usr/lib/gstreamer-0.10/libgsttypefindfunctions.so
  • #7 gst_type_find_factory_call_function
    from /usr/lib/libgstreamer-0.10.so.0
  • #8 simple_find_peek
    from /usr/lib/gstreamer-0.10/libgstid3demux.so
  • #9 simple_find_peek
    from /usr/lib/gstreamer-0.10/libgstid3demux.so
  • #10 gst_pad_chain
    from /usr/lib/libgstreamer-0.10.so.0
  • #11 gst_pad_push
    from /usr/lib/libgstreamer-0.10.so.0
  • #12 gst_type_find_element_get_type
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #13 gst_type_find_element_get_type
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #14 gst_pad_chain
    from /usr/lib/libgstreamer-0.10.so.0
  • #15 gst_proxy_pad_get_type
    from /usr/lib/libgstreamer-0.10.so.0
  • #16 gst_pad_chain
    from /usr/lib/libgstreamer-0.10.so.0
  • #17 gst_pad_push
    from /usr/lib/libgstreamer-0.10.so.0
  • #18 gst_base_src_set_format
    from /usr/lib/libgstbase-0.10.so.0
  • #19 gst_task_get_type
    from /usr/lib/libgstreamer-0.10.so.0
  • #20 g_thread_pool_free
    from /usr/lib/libglib-2.0.so.0
  • #21 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #22 start_thread
    from /lib/libpthread.so.0
  • #23 clone
    from /lib/libc.so.6

Other information:
Note that this doesn't happen on other many (in fact, most) songs, hence
probably a plugin issue.  Will try and attach file (or subset).
Comment 1 Alex Lancaster 2006-02-09 12:58:30 UTC
OK, got file from server and it plays fine locally, so maybe a rhythmbox bug, after all, switching.
Comment 2 Alex Lancaster 2006-02-09 13:03:22 UTC
Not sure if this is important, but it maybe.   That file has an included picture.  Maybe that's a problem with the byte streaming over DAAP?

$ id3info 01\ Stealth\ Overture.mp3

*** Tag information for 01 Stealth Overture.mp3
=== COMM (Comments): (MusicMatch_Tempo)[eng]: None
=== TYER (Year): 1997
=== TLEN (Length): 60000
=== APIC (Attached picture): ()[, 0]: image/jpg, 6401 bytes
=== TIT2 (Title/songname/content description): Stealth Overture
=== TRCK (Track number/Position in set): 01
=== TPE1 (Lead performer(s)/Soloist(s)): Apollo 440
=== TALB (Album/Movie/Show title): Electro Glide in Blue
=== TCON (Content type): Electronica/Dance
=== TIT1 (Content group description): Alex
*** mp3 info
MPEG1/layer III
Bitrate: 160KBps
Frequency: 44KHz
Comment 3 Alex Lancaster 2006-03-20 21:29:28 UTC
Using the transferring patch from bug #322268, I managed to copy the file via DAAP to the library, it plays fine after transferring, but still crashes if attempting to stream from server.

A diff between the transferred .mp3 file (using the transfer patch over DAAP) and the .mp3 file copied directly via SSH shows no differences at all.
Comment 4 Alex Lancaster 2006-03-22 09:32:11 UTC
Debugging session on IRC suggests this is probably a gst problem after all.  Moving bug.
Comment 5 Alex Lancaster 2006-03-22 09:34:08 UTC
Stacktrace against gstreamer-plugins-good CVS:

** (rhythmbox:22127): CRITICAL **: gst_type_find_helper_for_buffer: assertion `buf != NULL' failed

Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 22187)

  • #0 gst_id3demux_chain
    at gstid3demux.c line 452
  • #1 gst_pad_chain
    from /usr/lib/libgstreamer-0.10.so.0
  • #2 gst_pad_push
    from /usr/lib/libgstreamer-0.10.so.0
  • #3 gst_type_find_element_get_type
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #4 gst_type_find_element_get_type
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #5 gst_pad_chain
    from /usr/lib/libgstreamer-0.10.so.0
  • #6 gst_proxy_pad_get_type
    from /usr/lib/libgstreamer-0.10.so.0
  • #7 gst_pad_chain
    from /usr/lib/libgstreamer-0.10.so.0
  • #8 gst_pad_push
    from /usr/lib/libgstreamer-0.10.so.0
  • #9 gst_base_src_set_format
    from /usr/lib/libgstbase-0.10.so.0
  • #10 gst_task_get_type
    from /usr/lib/libgstreamer-0.10.so.0
  • #11 g_thread_pool_free
    from /usr/lib/libglib-2.0.so.0
  • #12 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #13 start_thread
    from /lib/libpthread.so.0
  • #14 clone
    from /lib/libc.so.6

Comment 6 Jan Schmidt 2006-03-22 10:08:54 UTC
Created attachment 61753 [details] [review]
try this patch on for size. Fixesattempts to typefind on too-small buffers
Comment 7 Alex Lancaster 2006-03-22 10:23:39 UTC
(In reply to comment #6)
> Created an attachment (id=61753) [edit]
> try this patch on for size. Fixesattempts to typefind on too-small buffers

Works for me.  Thanks! 

Comment 8 Jan Schmidt 2006-03-22 13:02:53 UTC
Fixed in CVS:
        * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
        * gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
        Don't attempt typefinding on too-short buffers that have been
        completely trimmed away. (Fixes #330239)

        * gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
        Improve the debug output