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 329198 - GStreamer-CRITICAL: gst_pad_activate_pull: assertion `old == GST_ACTIVATE_NONE' failed
GStreamer-CRITICAL: gst_pad_activate_pull: assertion `old == GST_ACTIVATE_NON...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal critical
: 0.10.9
Assigned To: Jan Schmidt
GStreamer Maintainers
: 330058 332392 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-01-30 12:27 UTC by Mitch
Modified: 2006-07-09 13:26 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Better stack (4.28 KB, text/plain)
2006-01-30 13:03 UTC, Mitch
Details
file to reproduce the problem with (64.12 KB, application/octet-stream)
2006-03-11 13:35 UTC, Tim-Philipp Müller
Details

Description Mitch 2006-01-30 12:27:29 UTC
Steps to reproduce:
1. run cvs gstreamer with latest gtk/glib cvs
2. 
3. 


Stack trace:
[Thread 163844 (LWP 7587) exited]
[New Thread 229384 (LWP 7591)]
[New Thread 245764 (LWP 7592)]
[New Thread 262153 (LWP 7593)]

GStreamer-CRITICAL **: gst_pad_activate_pull: assertion `old ==
GST_ACTIVATE_NONE' failed
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 16386 (LWP 7554)

  • #0 IA__g_logv
    at gmessages.c line 502
  • #1 IA__g_log
    at gmessages.c line 517
  • #2 IA__g_return_if_fail_warning
    at gmessages.c line 532
  • #3 gst_pad_activate_pull
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #4 gst_pad_activate_pull
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #5 gst_id3demux_sink_activate
    from /usr/local/lib/gstreamer-0.10/libgstid3demux.so
  • #6 gst_pad_set_active
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #7 activate_pads
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #8 gst_iterator_fold
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #9 iterator_fold_with_resync
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #10 gst_element_pads_activate
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #11 ??
  • #12 __PRETTY_FUNCTION__.3
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #13 __PRETTY_FUNCTION__.47
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #14 ??
  • #15 ??
  • #16 __PRETTY_FUNCTION__.3
    from /usr/local/lib/libgstreamer-0.10.so.0
  • #17 ??
  • #18 ??



Other information:
Comment 1 Alex Lancaster 2006-01-30 12:35:45 UTC
Probably a prob in gstreamer CVS.  Looks like it dies trying to read a particular ID3-tagged file.  Can you provide the file (if short) or some information about it?

Can you try an empty library, e.g.

rhythmbox --rhythmdb-file=/tmp/rhythmdb.xml

and just add files progressively until you see the crash.  It would be interesting to see if OGG files had similar problems.  
Comment 2 Alex Lancaster 2006-01-30 12:38:09 UTC
(In reply to comment #1)

Also running it with the "-d" debug flag might also help:

> rhythmbox -d --rhythmdb-file=/tmp/rhythmdb.xml



Comment 3 James "Doc" Livingston 2006-01-30 12:51:57 UTC
This isn't actually a crash. GStreamer is emitting a critical warning, and the reporter is using jhbuild (or similar) which, since the start of the year, makes all critical warnings fatal.

Since this is in GStreamer's id3mux plugin, moving there.
Comment 4 Mitch 2006-01-30 13:03:08 UTC
Created attachment 58391 [details]
Better stack

Looks like it always happens with a broken mp3 file...
Comment 5 Jan Schmidt 2006-01-30 13:32:11 UTC
Yeah, I've seen this too - it happens on any file that has ID3 information, but where GStreamer can't detect the type within ID3 (broken mp3 files, as Mitch says, among others)

I'm not quite sure where the failure is in the chain of events, but it goes something like this:

decodebin detects that the file contains ID3 tags and connects id3demux
id3demux reads the id3 tag(s) and then attempts to determine the type of the file within the id3 tag(s).
It can't detect the type, sends an error message, and returns FALSE from the pad activation.
Decodebin ignores the error that id3demux didn't change state and continues on.
It doesn't have any more dynamic elements, so completes its state change.
The typefind element switches to PUSH mode.
As decodebin proceeds to state PAUSED, the core attempts to activate the id3demux pads again, causing id3demux to attempt to activate PULL mode on typefind's src pad, which fails because typefind is already in push mode.

There are a couple of places in this sequence where things aren't working perfectly, I'm just not sure what it SHOULD like so I can't fix it.
Comment 6 Andy Wingo 2006-01-31 10:23:21 UTC
(Jan should start confirming bugs :)
Comment 7 Jan Schmidt 2006-01-31 11:13:24 UTC
What's confirming?
Comment 8 Andy Wingo 2006-01-31 11:35:16 UTC
Changing the status from UNCONFIRMED to NEW
Comment 9 Andy Wingo 2006-02-06 12:55:56 UTC
*** Bug 330058 has been marked as a duplicate of this bug. ***
Comment 10 Christian Kirbach 2006-02-18 20:26:21 UTC
I can see this with a truncated file as well (d&d it into rhythmbox or use nautilus to show its properties)

however easytag reads the file just fine and seems to detect sane information. (id3 information if I am not mistaken)
Comment 11 Christian Kirbach 2006-02-18 20:36:37 UTC
I was in error, it filled in save information. I saved them into the .mp3 file and it crashes no longer when importing so this is indeed the cause
Comment 12 Tim-Philipp Müller 2006-03-11 12:54:11 UTC
*** Bug 332392 has been marked as a duplicate of this bug. ***
Comment 13 Tim-Philipp Müller 2006-03-11 13:35:05 UTC
Created attachment 61089 [details]
file to reproduce the problem with


Attaching a file that reproduces the problem. Use like

 gst-launch-0.10 playbin uri=file:///path/to/random-data-with-id3.data
Comment 14 Wim Taymans 2006-07-09 13:26:23 UTC
        * gst/gstpad.c: (gst_pad_init), (gst_pad_activate_pull),
        (gst_pad_activate_push):
        Use some more macros where it makes sense.
        Allow pad mode switching instead of asserting. When a pad
        is activated in one mode and we activate it in another,
        deactivate it first before activating it in a different mode.
        Fixes #329198.