Bug #1861
closedЛичкрафты занимают полностью одно ядро процессора
Added by DA almost 10 years ago. Updated over 7 years ago.
100%
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)
Updated by 0xd34df00d almost 10 years ago
- Status changed from New to Assigned
- Target version set to 0.6.75
Воспроизводится на Qt5-билде с gst-1.0. Проигрывать mp3 при этом не обязательно, flac'а достаточно.
Updated by 0xd34df00d almost 10 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
Applied in changeset main|93f9c9984a1ad4d6bbf091dc8a5231f15c507ca9.
Updated by 0xd34df00d almost 10 years ago
- Status changed from Resolved to Closed
Updated by DA almost 10 years ago
- Status changed from Closed to Reopened
Ждать пришлось дольше, но воспроизвелось снова. sleep 2?
Updated by DA almost 10 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)
--------------------------------
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)
--------------------------------
Updated by 0xd34df00d almost 10 years ago
- Status changed from Assigned to Resolved
Applied in changeset main|eb567c541cd3da953343dd8a9d4fde84a766a420.
Updated by 0xd34df00d almost 10 years ago
- Status changed from Resolved to Closed
Updated by DA almost 10 years ago
- Status changed from Closed to Reopened
А теперь составь корреляцию и выведи, на сколько надо усыплять, чтобы я тебя не трогал хотя бы месяц :)
Updated by 0xd34df00d almost 10 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.
Updated by 0xd34df00d almost 10 years ago
Можешь не пробовать, я у себя проверил, не помогает.
Updated by DA over 8 years ago
Актуально с gst 1.8, воспроизвелось через 2 дня использования.
Updated by DA over 7 years ago
- Status changed from Reopened to Cant reproduce
Seems to be fixed via some gst update.