Project

General

Profile

Bug #1861

Личкрафты занимают полностью одно ядро процессора

Added by DA almost 6 years ago. Updated over 3 years ago.

Status:
Cant reproduce
Priority:
Normal
Assignee:
Category:
Plugins: LMP
Target version:
Start date:
01/18/2015
Due date:
% Done:

100%

Estimated time:
10.00 h
Reported in:
master

Description

Иногда при проигрывании mp3 файлов начинается сабж. Никакого выхлопа в терминал при этом не наблюдается. Движок воспроизведения gst1.0 не влияет: одинаковая проблема с ffmpeg и fluendo.

STR:
openSUSE 13.2 x64, Qt4, gst 1.0, leechcraft 0.6.70-2XXX, mp3, подождать 2-4 трека.

Expected result:
Нормальное воспроизведение без сабжа.

Actual result:
Сабж.

System information:
LeechCraft 0.6.70-2215-ga504dfa
Built with Qt 4.8.6, running with Qt 4.8.6
Running on: openSUSE 13.2 (Harlequin) (x86_64) x86_64 3.16.7-7-desktop #1 SMP PREEMPT Wed Dec 17 18:00:44 UTC 2014 (762f27a)

#1

Updated by 0xd34df00d over 5 years ago

  • Target version set to 0.6.75
  • Status changed from New to Assigned

Воспроизводится на Qt5-билде с gst-1.0. Проигрывать mp3 при этом не обязательно, flac'а достаточно.

#2

Updated by DA over 5 years ago

Значит, gst1.0 =/

#3

Updated by 0xd34df00d over 5 years ago

  • % Done changed from 0 to 100
  • Status changed from Assigned to Resolved
#4

Updated by 0xd34df00d over 5 years ago

  • Estimated time set to 10.00 h
#5

Updated by 0xd34df00d over 5 years ago

  • Status changed from Resolved to Closed
#6

Updated by DA over 5 years ago

  • Status changed from Closed to Reopened

Ждать пришлось дольше, но воспроизвелось снова. sleep 2?

#7

Updated by DA over 5 years ago

LeechCraft 0.6.70-2444-ga113631
Built with Qt 4.8.6, running with Qt 4.8.6
Running on: openSUSE 13.2 (Harlequin) (x86_64) x86_64 3.16.7-7-desktop #1 SMP PREEMPT Wed Dec 17 18:00:44 UTC 2014 (762f27a)
--------------------------------

Diag info for LMP:
Built with GStreamer 1.4.3; running with GStreamer 1.4.5
Built WITH libguess
Built with Taglib 1.9.1
GStreamer plugins:
  • adder (from /usr/lib64/gstreamer-1.0/libgstadder.so)
  • alaw (from /usr/lib64/gstreamer-1.0/libgstalaw.so)
  • alpha (from /usr/lib64/gstreamer-1.0/libgstalpha.so)
  • alphacolor (from /usr/lib64/gstreamer-1.0/libgstalphacolor.so)
  • alsa (from /usr/lib64/gstreamer-1.0/libgstalsa.so)
  • apetag (from /usr/lib64/gstreamer-1.0/libgstapetag.so)
  • app (from /usr/lib64/gstreamer-1.0/libgstapp.so)
  • audioconvert (from /usr/lib64/gstreamer-1.0/libgstaudioconvert.so)
  • audiofx (from /usr/lib64/gstreamer-1.0/libgstaudiofx.so)
  • audioparsers (from /usr/lib64/gstreamer-1.0/libgstaudioparsers.so)
  • audiorate (from /usr/lib64/gstreamer-1.0/libgstaudiorate.so)
  • audioresample (from /usr/lib64/gstreamer-1.0/libgstaudioresample.so)
  • audiotestsrc (from /usr/lib64/gstreamer-1.0/libgstaudiotestsrc.so)
  • auparse (from /usr/lib64/gstreamer-1.0/libgstauparse.so)
  • autodetect (from /usr/lib64/gstreamer-1.0/libgstautodetect.so)
  • avi (from /usr/lib64/gstreamer-1.0/libgstavi.so)
  • cairo (from /usr/lib64/gstreamer-1.0/libgstcairo.so)
  • cdparanoia (from /usr/lib64/gstreamer-1.0/libgstcdparanoia.so)
  • coreelements (from /usr/lib64/gstreamer-1.0/libgstcoreelements.so)
  • cutter (from /usr/lib64/gstreamer-1.0/libgstcutter.so)
  • debug (from /usr/lib64/gstreamer-1.0/libgstdebug.so)
  • deinterlace (from /usr/lib64/gstreamer-1.0/libgstdeinterlace.so)
  • dtmf (from /usr/lib64/gstreamer-1.0/libgstdtmf.so)
  • effectv (from /usr/lib64/gstreamer-1.0/libgsteffectv.so)
  • encoding (from /usr/lib64/gstreamer-1.0/libgstencodebin.so)
  • equalizer (from /usr/lib64/gstreamer-1.0/libgstequalizer.so)
  • flac (from /usr/lib64/gstreamer-1.0/libgstflac.so)
  • flump3dec (from /usr/lib64/gstreamer-1.0/libgstflump3dec.so)
  • flv (from /usr/lib64/gstreamer-1.0/libgstflv.so)
  • flxdec (from /usr/lib64/gstreamer-1.0/libgstflxdec.so)
  • gdkpixbuf (from /usr/lib64/gstreamer-1.0/libgstgdkpixbuf.so)
  • gio (from /usr/lib64/gstreamer-1.0/libgstgio.so)
  • goom (from /usr/lib64/gstreamer-1.0/libgstgoom.so)
  • goom2k1 (from /usr/lib64/gstreamer-1.0/libgstgoom2k1.so)
  • icydemux (from /usr/lib64/gstreamer-1.0/libgsticydemux.so)
  • id3demux (from /usr/lib64/gstreamer-1.0/libgstid3demux.so)
  • imagefreeze (from /usr/lib64/gstreamer-1.0/libgstimagefreeze.so)
  • interleave (from /usr/lib64/gstreamer-1.0/libgstinterleave.so)
  • isomp4 (from /usr/lib64/gstreamer-1.0/libgstisomp4.so)
  • jack (from /usr/lib64/gstreamer-1.0/libgstjack.so)
  • jpeg (from /usr/lib64/gstreamer-1.0/libgstjpeg.so)
  • level (from /usr/lib64/gstreamer-1.0/libgstlevel.so)
  • libvisual (from /usr/lib64/gstreamer-1.0/libgstlibvisual.so)
  • matroska (from /usr/lib64/gstreamer-1.0/libgstmatroska.so)
  • monoscope (from /usr/lib64/gstreamer-1.0/libgstmonoscope.so)
  • mulaw (from /usr/lib64/gstreamer-1.0/libgstmulaw.so)
  • multifile (from /usr/lib64/gstreamer-1.0/libgstmultifile.so)
  • multipart (from /usr/lib64/gstreamer-1.0/libgstmultipart.so)
  • navigationtest (from /usr/lib64/gstreamer-1.0/libgstnavigationtest.so)
  • ogg (from /usr/lib64/gstreamer-1.0/libgstogg.so)
  • oss4 (from /usr/lib64/gstreamer-1.0/libgstoss4audio.so)
  • ossaudio (from /usr/lib64/gstreamer-1.0/libgstossaudio.so)
  • pango (from /usr/lib64/gstreamer-1.0/libgstpango.so)
  • playback (from /usr/lib64/gstreamer-1.0/libgstplayback.so)
  • png (from /usr/lib64/gstreamer-1.0/libgstpng.so)
  • pulseaudio (from /usr/lib64/gstreamer-1.0/libgstpulse.so)
  • qtvideosink (from /usr/lib64/gstreamer-1.0/libgstqtvideosink.so)
  • replaygain (from /usr/lib64/gstreamer-1.0/libgstreplaygain.so)
  • rtp (from /usr/lib64/gstreamer-1.0/libgstrtp.so)
  • rtpmanager (from /usr/lib64/gstreamer-1.0/libgstrtpmanager.so)
  • rtsp (from /usr/lib64/gstreamer-1.0/libgstrtsp.so)
  • shapewipe (from /usr/lib64/gstreamer-1.0/libgstshapewipe.so)
  • smpte (from /usr/lib64/gstreamer-1.0/libgstsmpte.so)
  • soup (from /usr/lib64/gstreamer-1.0/libgstsouphttpsrc.so)
  • spectrum (from /usr/lib64/gstreamer-1.0/libgstspectrum.so)
  • speex (from /usr/lib64/gstreamer-1.0/libgstspeex.so)
  • staticelements (from )
  • subparse (from /usr/lib64/gstreamer-1.0/libgstsubparse.so)
  • taglib (from /usr/lib64/gstreamer-1.0/libgsttaglib.so)
  • tcp (from /usr/lib64/gstreamer-1.0/libgsttcp.so)
  • theora (from /usr/lib64/gstreamer-1.0/libgsttheora.so)
  • typefindfunctions (from /usr/lib64/gstreamer-1.0/libgsttypefindfunctions.so)
  • udp (from /usr/lib64/gstreamer-1.0/libgstudp.so)
  • video4linux2 (from /usr/lib64/gstreamer-1.0/libgstvideo4linux2.so)
  • videobox (from /usr/lib64/gstreamer-1.0/libgstvideobox.so)
  • videoconvert (from /usr/lib64/gstreamer-1.0/libgstvideoconvert.so)
  • videocrop (from /usr/lib64/gstreamer-1.0/libgstvideocrop.so)
  • videofilter (from /usr/lib64/gstreamer-1.0/libgstvideofilter.so)
  • videomixer (from /usr/lib64/gstreamer-1.0/libgstvideomixer.so)
  • videorate (from /usr/lib64/gstreamer-1.0/libgstvideorate.so)
  • videoscale (from /usr/lib64/gstreamer-1.0/libgstvideoscale.so)
  • videotestsrc (from /usr/lib64/gstreamer-1.0/libgstvideotestsrc.so)
  • volume (from /usr/lib64/gstreamer-1.0/libgstvolume.so)
  • vorbis (from /usr/lib64/gstreamer-1.0/libgstvorbis.so)
  • vpx (from /usr/lib64/gstreamer-1.0/libgstvpx.so)
  • wavenc (from /usr/lib64/gstreamer-1.0/libgstwavenc.so)
  • wavpack (from /usr/lib64/gstreamer-1.0/libgstwavpack.so)
  • wavparse (from /usr/lib64/gstreamer-1.0/libgstwavparse.so)
  • ximagesink (from /usr/lib64/gstreamer-1.0/libgstximagesink.so)
  • ximagesrc (from /usr/lib64/gstreamer-1.0/libgstximagesrc.so)
  • xvimagesink (from /usr/lib64/gstreamer-1.0/libgstxvimagesink.so)
  • y4menc (from /usr/lib64/gstreamer-1.0/libgsty4menc.so)
    --------------------------------
#8

Updated by 0xd34df00d over 5 years ago

  • Status changed from Reopened to Assigned

Лан.

#9

Updated by 0xd34df00d over 5 years ago

  • Status changed from Assigned to Resolved
#10

Updated by 0xd34df00d over 5 years ago

  • Status changed from Resolved to Closed
#11

Updated by DA over 5 years ago

  • Status changed from Closed to Reopened

А теперь составь корреляцию и выведи, на сколько надо усыплять, чтобы я тебя не трогал хотя бы месяц :)

#12

Updated by 0xd34df00d over 5 years ago

Хм:

[16:33:29] d34df00d: Hi!
[16:33:53] d34df00d: I get 100% CPU usage on gstreamer 1.4.5 in gst_bus_timed_pop().
[16:34:16] d34df00d: I've found a similar bugreport https://bugzilla.gnome.org/show_bug.cgi?id=645746 , but it is quite old, seems to be fixed and related to 0.10.
[16:34:55] d34df00d: The profile looks like this: http://dump.bitcheese.net/images/udorifi/screenshot.png
[16:35:26] d34df00d: (middle column is aggregated time with calls to subroutines, right column is self time)
[16:36:46] d34df00d: I just do gst_bus_timed_pop() in a loop (guarded by an atomic variable to quite polling on shutdown etc.), and if I sleep for a few milliseconds before the call, the problem goes away for me, but some of my users still experience it, but only some time after starting playback, as opposed to immediate CPU hogging without sleep()ing at all.
[16:46:46] stormer: d34df00d: downgrade glib
[16:50:20] d34df00d: stormer: would you recommend any exact version?
[16:56:24] stormer: d34df00d: I don't remember the number, which one are you running ?
[16:56:52] d34df00d: stormer: 2.42.1. Not sure about the particular user who reports that he still gets it even with msleep().
[16:57:09] stormer: ok, so clearly this is one with the new shiny mutex ;-P
[16:57:20] d34df00d: stormer: worth trying 2.40.2?
[16:57:29] d34df00d: I don't have anything else in my distro anyway :(
[16:57:39] stormer: 2.40.2 should do
[16:58:01] d34df00d: Cool, thanks, will try now.
[16:58:24] stormer: d34df00d: it's not a bug in glib, it's really a bug in gst, but it seems we haven't backported the fix (yet?)
[16:59:24] d34df00d: stormer: is there any commit or patch I could recommend applying to gst codebase?
[16:59:37] stormer: I can find it yes
[16:59:50] d34df00d: I would be grateful, thanks.
[17:00:31] stormer: d34df00d: not sure if sufficient, but this is one of the patches, da7847d1adde088b4d8bcfc76642cf942e735dd3

Если возможно, попробуй наложить http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=da7847d1adde088b4d8bcfc76642cf942e735dd3 на gstreamer.

#13

Updated by 0xd34df00d over 5 years ago

Можешь не пробовать, я у себя проверил, не помогает.

#14

Updated by DA over 4 years ago

Актуально с gst 1.8, воспроизвелось через 2 дня использования.

#15

Updated by 0xd34df00d over 3 years ago

Актуально ли сейчас?

#16

Updated by DA over 3 years ago

Наверно, нет.

#17

Updated by DA over 3 years ago

  • Status changed from Reopened to Cant reproduce

Seems to be fixed via some gst update.

Also available in: Atom PDF