Bug 686461

Summary: knotify4 takes 100% CPU
Product: [openSUSE] openSUSE 11.4 Reporter: Christian Boltz <suse-beta>
Component: SoundAssignee: Stanislav Brabec <sbrabec>
Status: RESOLVED FIXED QA Contact: Christian Boltz <suse-beta>
Severity: Normal    
Priority: P5 - None CC: Creationn, davejplater, pascal.bleser, wstephenson
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: Beta-Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: backtrace
backtrace with "thread apply all bt"

Description Christian Boltz 2011-04-09 18:50:06 UTC
Created attachment 424120 [details]
backtrace

from "top" output:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                   
 5256 cb        20   0  590m  49m  26m R  100  1.3 122:40.62 /usr/bin/knotify4                                                                         

This happened the first time to me (IIRC), and I don't know what caused it :-(

A backtrace with most debuginfo installed is attached. 
The debuginfo for /usr/lib64/libgstreamer-0.10.so.0 (from libgstreamer-0_10-0-0.10.32-1000.pm.1002.8.x86_64) couldn't be found by zypper - probably it isn't available from packman.
Comment 1 Christian Boltz 2011-04-09 19:40:46 UTC
Created attachment 424122 [details]
backtrace with "thread apply all bt"
Comment 2 Will Stephenson 2011-04-10 05:00:52 UTC
We can't support Packman's packages.  The bt shows an error condition in gstreamer. Reopen if it happens with our gstreamer.  Sorry :/.
Comment 3 Pascal Bleser 2011-04-21 19:51:58 UTC
I can't see anything that would explain an infinite loop or something like that.
All the threads are waiting on mutexes, except for the main thread that's on 

gst_message_new_error ()
as part of
gst_alsasink_open (asink=0x9439c0) at gstalsasink.c:699

I don't see why that would cause a CPU hog (except a massive bug in gstreamer, of course).
[...]
#18 0x00007f799eb67b12 in Phonon::Gstreamer::MediaObject::setError (this=0xb96970, errorString=..., error=Phonon::FatalError)

Hmmm, actually seeing the errorString would have helped here :)

Note that the gstreamer-0_10 package is not "from Packman": we just _link it from multimedia:libs on build.opensuse.org (obviously the -bad and -ugly packages are only on Packman, but that's not where the issue comes from).

I really can't help you much further with this one, as I don't understand what is actually triggering the error and the loop from reading the backtrace.

Maybe poke some people upstream ? (gstreamer)
Comment 4 Pascal Bleser 2011-04-21 19:53:35 UTC
Changed to NEEDINFO, can't do anything about it without more details.
(And maintainers of multimedia:libs, feel free to chime in.)

But the backtrace doesn't rule out a Phonon bug to me either.
Comment 5 Dave Plater 2011-04-22 12:47:49 UTC
I'm glad I found this bug, I usually kill knotify4 when it hogs cpu now maybe we can fix the problem. I've experienced this with stock KDF installed and multimedia:libs stuff with a couple of packman plugins.
Sometimes I have four knotify4s, three dormant and one hogging cpu. If Will can explain exactly what knotify4's use is because my system seems to work fine when it isn't there. I've had the idea that my problem was to do with the update applet as I don't seem to have a problem when it's not running. That's as far as I've got.

 Unfortunately everything mozilla is crashing with various types of mouse clicks, I can't even open a new tab or click back in firefox but I'll be back.
# zypper se -si gstreamer
Loading repository data...
Reading installed packages...

S | Name                                    | Type    | Version                | Arch   | Repository            
--+-----------------------------------------+---------+------------------------+--------+-----------------------
i | PackageKit-gstreamer-plugin             | package | 0.6.12-1.4.1           | x86_64 | alt11.4               
i | PackageKit-gstreamer-plugin             | package | 0.6.12-1.4.1           | x86_64 | 11.4                  
i | gstreamer-0_10                          | package | 0.10.32-49.1           | x86_64 | mmlibs                
i | gstreamer-0_10-devel                    | package | 0.10.32-49.1           | x86_64 | mmlibs                
i | gstreamer-0_10-ffmpeg                   | package | 0.10.11-999.pm.1000.3  | x86_64 | Packman               
i | gstreamer-0_10-lang                     | package | 0.10.32-49.1           | noarch | mmlibs                
i | gstreamer-0_10-libnice                  | package | 0.1.0-0.pm.2.5         | x86_64 | Packman               
i | gstreamer-0_10-plugin-gnonlin           | package | 0.10.17-13.1           | x86_64 | mmlibs                
i | gstreamer-0_10-plugin-hal               | patch   | 4214                   | noarch | Main Update Repository
i | gstreamer-0_10-plugins-bad              | package | 0.10.21-999.pm.1012.6  | x86_64 | (System Packages)     
i | gstreamer-0_10-plugins-bad-lang         | package | 0.10.21-119.6          | noarch | (System Packages)     
i | gstreamer-0_10-plugins-base             | package | 0.10.32-45.1           | x86_64 | mmlibs                
i | gstreamer-0_10-plugins-base-devel       | package | 0.10.32-45.1           | x86_64 | mmlibs                
i | gstreamer-0_10-plugins-base-lang        | package | 0.10.32-45.1           | noarch | mmlibs                
i | gstreamer-0_10-plugins-good             | package | 0.10.27-999.pm.1002.18 | x86_64 | (System Packages)     
i | gstreamer-0_10-plugins-good-lang        | package | 0.10.27-999.pm.1002.18 | noarch | (System Packages)     
i | gstreamer-0_10-plugins-ugly             | package | 0.10.17-28.1           | x86_64 | mmlibs                
i | gstreamer-0_10-plugins-ugly-lang        | package | 0.10.17-28.1           | noarch | mmlibs                
i | gstreamer-0_10-utils                    | package | 0.10.32-49.1           | x86_64 | mmlibs                
i | gstreamer-utils                         | package | 0.10.32-49.1           | x86_64 | mmlibs                
i | libgstreamer-0_10-0                     | package | 0.10.32-49.1           | x86_64 | mmlibs                
i | libgstreamer-0_10-0-32bit               | package | 0.10.32-49.1           | x86_64 | mmlibs                
i | phonon-backend-gstreamer-0_10-debuginfo | package | 4.5.0-11.1             | x86_64 | kde4                  
i | python-gstreamer-0_10                   | package | 0.10.19-999.pm.1000.1  | x86_64 | Packman               
i | python-gstreamer-0_10-devel             | package | 0.10.19-999.pm.1000.1  | x86_64 | Packman
Comment 6 Patrick Smart 2011-11-13 16:15:19 UTC
I am getting https://bugs.kde.org/show_bug.cgi?id=281509 about every day. I don't know for sure one is related with the other one as this one doesn't mention memory usage while the one I have has both.
Comment 7 Christian Boltz 2011-11-13 21:33:01 UTC
Dave, knotifiy4 behaved well on my system for a long time, and you seem to be able to reproduce it (maybe even without packman packages?). Therefore I'm handing over the needinfo flag to you ;-) - maybe you can add some helpful details.

I'm also reassigning to the gstreamer maintainer - according to Pascal's comment #3, this is most likely a gstreamer bug.
Comment 8 Stanislav Brabec 2011-11-14 19:57:22 UTC
Please test phonon-backend-gstreamer-0_10 package from the repository below. It does not fix anything, but it should display GStreamer error on stdout. Search for "phonon-backend-gstreamer MediaObject::handleErrorMessage: Error = " string and provide its output when it fails.

http://download.opensuse.org/repositories/home:/sbrabec:/branches:/openSUSE:/11.4:/Update:/Test/standard/
https://build.opensuse.org/package/show?package=phonon-backend-gstreamer-0_10&project=home%3Asbrabec%3Abranches%3AopenSUSE%3A11.4%3AUpdate%3ATest
Comment 9 Patrick Smart 2011-11-14 20:41:51 UTC
I think my issue also occurred when I had Xine as backend. I jsut restored it will confirm that fact. If so, do you wish me to fork my issue from this one?

BTW, I get:

#### YaST2 conflicts list - generated 2011-11-14 21:39:24 ####

phonon-backend-gstreamer-0_10-4.4.4-5.1.x86_64 requires libphonon4 = 4.4.4, but this requirement cannot be provided
uninstallable providers: libphonon4-4.4.4-3.1.i586[repo-11.4-oss]
                   libphonon4-4.4.4-3.1.x86_64[repo-11.4-oss]
    [ ] Following actions will be done:
downgrade of libphonon4-4.5.0-8.1.x86_64 to libphonon4-4.4.4-3.1.x86_64
install libphonon4-4.4.4-3.1.x86_64 (with vendor change)
  obs://build.opensuse.org/KDE  -->  openSUSE
downgrade of phonon-4.5.0-4.1.x86_64 to phonon-4.4.4-3.1.x86_64
install phonon-4.4.4-3.1.x86_64 (with vendor change)
  obs://build.opensuse.org/KDE  -->  openSUSE
    [ ] do not install phonon-backend-gstreamer-0_10-4.4.4-5.1.x86_64

    [ ] do not install phonon-backend-gstreamer-0_10-4.4.4-5.1.x86_64

    [ ] break phonon-backend-gstreamer-0_10 by ignoring some of its dependencies

#### YaST2 conflicts list END ###
Comment 10 Stanislav Brabec 2011-11-15 15:36:24 UTC
My debugging phonon-backend-gstreamer-0_10 package is branched from a bare 11.4 package. There should be no conflict while installing to 11.4 distro.
Comment 11 Stanislav Brabec 2011-11-15 15:53:27 UTC
My blind guess what might happen:

phonon-backend-gstreamer-0_10 uses ALSA sink. xine uses ALSA or OSS emulation directly. Your card has only one DSP channel and DSP resource is not available.

Notification wants to play sound, it fails with "device busy" and loops in an infinite loop waiting for device freeing.
Comment 12 Ursan Marius Bogdan 2012-01-20 13:43:38 UTC
Output of ps aux under openSUSE 12.1, with kde 4.7.2 using official repo`s and using ALSA: 
creatura  3144  0.1  3.5 135628 18260 ?        SLl  15:16   0:02 /usr/bin/knotify4

It seems that this has been fixed in 12.1.
Comment 13 Stanislav Brabec 2012-01-20 19:00:58 UTC
OK. If you are one of affected users previously and you see it fixed now, then I'll close the bug.

If there is anybody still able to reproduce the problem in 12.1, please reopen.