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 302220 - playbin eats 100% CPU on EOS while playing multi-stream OGM files
playbin eats 100% CPU on EOS while playing multi-stream OGM files
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other Linux
: Normal normal
: 0.8.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-04-27 19:59 UTC by Luca Ognibene
Modified: 2005-07-16 13:06 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Luca Ognibene 2005-04-27 19:59:38 UTC
I'm using gst core/plugins/ffmpeg cvs from a week ago and totem 1.1.1

1) open a ogm file in totem (video/audio/subtitle)
2) seek near the end
3) leave it go to eos
4) segfault

backtrace:
  • #0 gst_textoverlay_loop
    at gsttextoverlay.c line 545
  • #1 loop_group_schedule_function
    at gstoptimalscheduler.c line 1451
  • #2 schedule_group
    at gstoptimalscheduler.c line 1222
  • #3 gst_opt_scheduler_schedule_run_queue
    at gstoptimalscheduler.c line 1274
  • #4 schedule_chain
    at gstoptimalscheduler.c line 1331
  • #5 gst_opt_scheduler_iterate
    at gstoptimalscheduler.c line 2790
  • #6 gst_scheduler_iterate
    at gstscheduler.c line 744
  • #7 gst_bin_iterate_func
    at gstbin.c line 1281
  • #8 gst_marshal_BOOLEAN__VOID
    at gstmarshal.c line 509
  • #9 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #14 gst_bin_iterate
    at gstbin.c line 1341
  • #15 gst_thread_main_loop
    at gstthread.c line 675
  • #16 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #17 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #18 clone
    from /lib/tls/i686/cmov/libc.so.6

Comment 1 Ronald Bultje 2005-05-02 10:31:44 UTC
This works now... I'll leave it open because I discovered another, possibly much
bigger bug, while debugging this: multiple streams EOS. If we have 2 audio
streams, we disable one of them. On EOS, we don't send EOS to the disabled
stream, so although the stream is finished, the pipeline will continue to
iterate until infinity (and eat 100% CPU while doing so).
Comment 2 Ronald Bultje 2005-05-02 11:37:56 UTC
Update on the above: the easiest way to solve it is to set muted elements to
PAUSED. Doing that and then seeking leads to races described in #165928/#165929,
so I can't commit that... :-(. this sort of stuff may stay broken until 0.9...
Comment 3 Andy Wingo 2005-07-16 13:06:44 UTC
I'm pretty sure this bug is no longer valid in 0.9, the question being whether
we want to keep it open for 0.8... I would say no, because everyone knows
gstthread will never reach Zaroo Boogs. Closing as FIXED, because the original
issue is fixed.