gene heskett posted on Mon, 20 Feb 2012 20:29:31 -0500 as excerpted: > On Monday, February 20, 2012 08:08:28 PM Chuck Burns did opine: > >> On 2/20/2012 5:00 PM, gene heskett wrote: >> > Greetings; ... and salutations! =:^) (Completely OT I know, but while I understand the role of greetings IRL, at least in part, from the newcomer to signal the event and focus attention on the his arrival (among other things, serving notice that intended private conversations may need to stop temporarily), I never quite understood the role on lists, newsgroups, forums and the like, where one presumably /knows/ when one starts a new message or thread, and that doing so signals the same functional type of "context switch" that "greetings" does IRL. As such, for lists, newsgroups and the like, I'm accustomed to simply starting my question/answer/whatever, no greeting or similar redundancies. I know a lot of others do likewise, while others include it as they would IRL or in formal non-electronic written correspondence. But at times I've simultaneously wondered bemusedly at a "Hi", "Greetings", etc, opening, and whether my omission thereof inadvertently causes mild offense. This is obviously one of those times... The wictionary entry for "greeting" notes that it's less common in email, etc, as well. So... why /do/ you (plural "you", addressed to anyone who wishes to respond) include such an opening in electronic messages such as lists, email and news messages? Have you even ever thought about it before? Do you get offended if others don't as well? Are these questions just really strange and off the wall, making me look crazy? "Inquiring minds want to know!" =:^) >> > I have so far today, killed around 75 copies of /usr/bin/knotify4 >> > which is pegging out all 4 cores of my phenom, and running it up to >> > 70C+. >> > >> > Killing all copies (which is puzzling because killall can't find them >> > but htop can) cleans the system up& brings back normal operation. Which killall form did you use? Quoting the killall (1) manpage: >>>>> killall sends a signal to all processes running any of the specified commands[.] If the command name is not regular expression (option -r) and contains a slash (/), processes executing that particular file will be selected for killing, independent of their name. <<<<< Note that kde uses a special launcher, kdeinit4, to launch many of its "core" programs. The commandline for these will be kdeinit4 <appname> <app-parameters>. The reasoning is that this allows more efficient shared-objects loading, so faster launching and more efficient memory usage. I'm not sure that's exactly what's going on here (my single knotify4 instance appears to be a direct child of init, pid 1, and it doesn't appear with the kdeinit4 prefixed on its command line), but it is indeed quite possible for applications to be launched such that the name and the command-line don't match, such that a killall without -r or / won't see it. As mentioned in the manpage quote above, the absolute executable file path (detected by the presence of a / in the name) or a regular expression (using -r) can be used instead. It's possible these would get the ones a standard killall misses. Of course, the other possibility is that killall sends the signal, but the process ignores it, especially if the process is hung. The default SIGTERM (-15) would allow this. SIGHUP/-1, SIGINT/-2, SIGSEGV/-11, and finally SIGKILL/-9, in order of increasing severity, can be used instead, with SIGKILL being "kill with predjudice", that is, don't give the app a chance to clean up or to say no, just kill it. Of course, this last one can leave half-written files and the like around. The kernel will close them and return memory resources to the system, but if it was a config file or the like, it could cause problems at the next start, so SIGKILL/-9 should always be used as a last resort. Of course signal types is pretty basic Unix, so you probably knew that bit, but others reading might not. But if killall found at least one process to deliver the signal to, it returns success whether or not the process actually responded, while if it didn't find a process at all, it returns failure status and complains to STDERR, and it's likely that complaint that you were indicating with the "killall can't find them" bit. Just covering the bases, in case... >> > But in half an hour I am back to 4 to 6 copies and a pegged cpu. >> > >> > This seems to go along with an uptime of 10 days or more, currently >> > at 18 days. It's likely that few enough people run kde for that long at a time, so bugs aren't as likely to be reported. I happen to run git kernels here, and even the kernel merge window (during which I don't normally rebuild and test new kernels, just in case there's a crazy "eats filesystems" or "eats md/raids" bug during that time, that presumably I'd know about by a few days after the merge window closes if I decide to bisect something) is only two weeks, so 18 days is likely at the long end for no-reboots, here, at least on my main machine. (My netbook can go much longer, but it can spend a month or six weeks in suspend-to-disk hibernation, too; it's not like it's actually /running/ more than perhaps 24 hours of that.) On Linux, that's not an excuse. On Linux, if it can't handle at least six months uptime, it's considered seriously bugged, and rightfully so. However, it /is/ a fact. Long uptime bugs simply won't get as much reporting, as fewer people see them, simple as that. >> > Is there a permanent fix for this other than switching to (I'd rather >> > just have somebody shoot me) gnome or even (quite a bit better IMO) >> > xfce? >> I hate to sound like a smartass.. > > Not at all. > >> but have you tried logging out of kde, >> and back in? Your uptime won't suffer, and KDE will be able to >> completely refresh.. There may some sort of leak somewhere.. > > I suspect there is, but running it down seems nearly impossible when it > doesn't show up for 2 weeks. > >> AFAIK, no one has reported a bug about this.. perhaps if you have time, >> you can try to narrow it down to exactly what. See what I said above about long-uptime-bugs. If it's possible to do something with it... the whole kde ecosystem should thank you, because good bug reporting is rare enough, and good bug reporting of long uptime bugs even rarer, but getting them fixed helps stability even for shorter uptime people, so it's a good thing... where it's at all possible, of course. >> You can also try disabling all notifications.. ymmv > > I do use inotifywait Entirely different kind of notification! =;^) Inotify and similar "file event" notifications are often what kernel and sometimes app developers mean when they talk about notifications. They notify an APP (not the user, tho the app could potentially notify the user if appropriate) about file accesses, changes, etc. At a similar level, udev notifies apps such as kde's device notifier (which in turn notifies the user if appropriate) when devices appear or disappear, etc. knotify4, OTOH, deals entirely with user-level-app-to-user event notifications for things like mail delivery, media changes in the media player, keyboard shift-level changes, etc. These "user notifications" are most often either sound events or popup dialogs (now often handled by the notifier icon in the systray, tho I'm not sure all such dialogs are handled that way yet), but can also involve marking/flashing a taskbar entry, logging the event to a file, or running some other command. It's generally that first one, playing a sound, that causes problems, on systems where either the sound system isn't properly configured or where it otherwise isn't entirely reliable. This is almost CERTAINLY what's happening in your case. > I note that I found another copy of it the 2nd time I went on > a killing rampage today, about 75 processes down from the top, killed it > too, and the problem has not come back, but something has called up 2 > copies of it since I nuked them all. > > If that had a visible link to whatever restarts it, that would help > considerably in tracking this down, but apparently no one knows what > (re)starts it. knotify4 is part of kde's internals. Any time an event occurs that's configured to play a sound, popup a notice window, etc, knotify should respond with the appropriate action. But as I said, sound in particular can be somewhat problematic. If the sound doesn't play as knotify is configured to play it, that instance of knotify will hang, waiting for the event to finish, and at the next such event, kde (kded, maybe? I'm not sure exactly which component; maybe it's invoked by the triggering app directly, using a library that's part of kdelibs and thus available to any kde app?) will find no responding knotify4 and thus will spawn another one. But if the one is hung waiting on a resource lock it can't get (typically it can't open the sound device), and the next one needs it too, guess what, the next one gets in line behind the first. Lather, rinse, repeat. When you notice and start killing all of them, once you kill the one that was originally hung (probably one of the oldest, or as you mention, one without a lot of CPU time, as it was hung, while the others were CPU-poll spinning, waiting on the resource to become available), the kernel releases that resource with the killing of the hung process, pulling the plug on the waiting queue of all the others, thus draining it. And since the problem with the sound device that actually hung the original knotify4 often has something to do with it suspending after an idle timeout, or with something grabbing the sound device exclusively (some hardware can cope with multiple streams, some not, thus the use of sound servers or alsa's software stream mixer device, dstream or some such, I think it's called), but in some cases an app will apparently still try to do an exclusive lock on an otherwise sharable device), thus triggering the original problem when the original knotify4 tried to access the sound device, by the time the original locked-up knotify4 is killed, the intermittent problem has generally gone away, so pulling the plug allows all those spawned knotify4s to do their thing one right after the other, without the problem reoccurring immediately. But then later on, when the sound device suspends or something else grabs exclusive access again, the whole thing is setup for another go-round. > But: > [root@coyote eagle]# lsof |grep knotify4|wc -l 1198 > > How the heck can you separate the wheat from the chaff in a list that > long.. :( FWIW, 1317 here, and to my knowledge, everything's working fine, here, just one pid listed for all those, etc. So 1000+ open files for knotify would seem to be normal. > Half of that is vlc linked: > [root@coyote eagle]# lsof |grep knotify4|grep vlc|wc -l 604 > > And I haven't specifically used vlc that I know of in months, so I > assume a news site I have visited must have called it up. Taking a look thru the 1317 listed files, it seems that most of them are *.so shared-objects aka libraries with FD=mem, TYPE=REG. That many of those shared-objects are vlc related is almost certainly due to your use of the phonon-vlc backend -- phonon is how kde handles sound, and if it's configured to use the phonon-vlc backend, with all the plugins that vlc has, and the fact that knotify4 is responsible for kde's sound effects... FWIW, 699 appear to be vlc related, here. Then there's the other usual X and kde libraries in the list... Try this, the grep -v excludes any line with "lib": lsof | grep knotify4 | grep -v lib | wc -l FWIW, 87, here. That look a bit more reasonable? =:^) There's the current working directory (FD=cwd, TYPE=DIR), the root directory (FD=rtd, TYPE=DIR, NAME=/), the executable itself (FD=txt, TYPE=REG), several memory-mapped font resources (it's an X app, after all) Then there's the various filedescriptors (FD=0r 1w 2w... etc, filedescriptor, read/write/u=both, TYPE=CHR/REG/0000/FIFO/unix/netlink, character-device, regular file, unknown/(anon-inode), first-in-first-out, unix socket, netlink socket, respectively). It's interesting to note that STDIN is /dev/null and STDOUT and STDERR are mapped to $HOME/.xsession-errors, as might be expected for an X app. 15 (numbered 0-14) filedescriptors are open in this way. Other than the first three STD*, the rest are various fifos, pipes, anon-inodes, unix sockets, etc. Of interest are FD=8r, the kde system config cache (ksycoca4) regular file, FD=9u, netlink KOBJECT_UEVENT, and FD=13r, the /dev/urandom character-device. Here, the same set (same pid for all) is listed three times, once without a "task ID" following the PID, and once each for two different task-IDs. I don't have much of a clue what task-id is. (??) But it's worth noting that it's the same PID and the same set of open files, three times. 87/3=29. 29 actual non-library files... listed three times each. If the same applies to the 1317, I didn't rigorously check, but it looked that way, then it's 439 files, listed three times each, 410 shared objects (libraries and plugins), 29 other files. And the vlc files are all shared objects, 699/3=233 of them, 233 of the 410 shared objects. > ATM, I have an eagle session on a pcb going in another window, pending > info that I screwed the moose, so I would rather get that fixed before I > reboot kde. That's semi-gobbledegook, here, but given that in previous mails you've mentioned some sort of CAD/CAM setup, I'll assume that's what you're referring to. Yeah, letting it finish doing whatever it's monitoring/ controlling before a reboot might indeed be useful. Meanwhile... Some kde settings experimentation may be useful here, but one or more of the following should help. Some are short term workarounds, some longer term potential fixes: Short term: Under common appearance and behavior, application and system notifications, manage notifications, on the player settings tab, try setting no audio output. This may or may not kill the existing locked up knotify4s, I'm not sure, but it should prevent the problem from reoccurring, assuming I'm correct and it is an audio issue of some sort, at least, because it simply no-ops the problematic calls. Medium/long term: In the same place, you can try setting an external player instead of kde's normal (phonon-based) sound system. Back in kde3, I did this for awhile when arts was hopelessly screwed up, but I've not had to resort to it in kde4. The trick is finding an appropriate player, probably setting it to no-gui if it's a gui player, etc. I tried a couple things before I found a solution that "just worked" for me. It involved the playsound binary from the sdl-sound package (installed here for something unrelated), but played at full volume, the sound effects overpowered whatever else I happened to be playing, so I ended up setting up a script that played it at reduced volume. Here's $HOME/bin/playsound.sh (vol can be set up or down if necessary, but .5 was a good balance for me): #!/bin/bash # To play something at a bit lower volume (1=100%, normal volume) vol=.5 playsound --volume $vol $@ Then I just set playsound.sh as the player, and it worked. Short term, could be longer term if you like it, or QUICKLY shut off if you don't!: Use a "visual bell" instead of sound effects. This involves two configuration changes: Under common appearance and behavior, application and system notifications, system bell, check use system bell instead of system notifications. Under workspace appearance and behavior, workspace appearance, accessibility, on the bell tab: Check use visible bell, and experiment with invert and flash screen, with timing, as desired. You can set an audible bell as well, but you may not avoid the sound lockups, that way. FWIW, I've used this before. The effect can be disconcerting at first, especially if it happens when you're concentrating on something and have forgotten all about setting this up. But it DOES tend to get your attention, as long as you're looking at the screen, of course. The feature is designed for deaf folks (thus accessibility) or for use in meetings, etc, where a sound would be disruptive. But it's a nice option to have. Just don't have a heart attack the first time you're concentrating on something and the screen inverts/flashes! As I said, it CAN be disconcerting, but forewarned is forearmed. The proper (user/admin-level) fix: Depending on the exact nature of the problem and your hardware, this could take several forms. As mentioned above, one trigger of the problem can be sound device power saving mode. On a laptop that's battery powered much of the time, you probably want to keep that on to save power when you're not playing anything. In that case, setting visual bell for notifications as suggested above is a good idea, since (a) that way you don't have to wake up the sound device just to play a notification ding, and (b), laptop/netbook use is far more likely to include use in meetings, etc, where the sound isn't desirable anyway. If you do want to keep sound notifications on a laptop/netbook/etc, but still don't want to use too much battery running the sound device when there's nothing playing, playing around with its power-saving settings may be useful. Setting a too short (say 1 second) idle-timeout is known to be highly problematic on some hardware. It wasn't kde context, more like general alsa and kernel device driver context, but I happened upon this I think just yesterday, and it makes sense, 10 seconds is the recommended MINIMUM. I'd actually suggest something like 30 seconds to perhaps even five minutes (or even 15, consider how much power those 100% CPU cycle apps will use!), since I believe part of the problem is race conditions where it gets a wakeup just as it was powering down, potentially leaving the app trying to play the sound thinking the device is responding, but it just powered down instead, so the app ends up waiting forever, especially if the device doesn't signal the app correctly when it does wake back up. On a desktop/workstation that's on A/C power all the time, just disable audio device power saving entirely. Unfortunately, directions for setting/disabling audio device power saving aren't something I can deal with here. If kde deals with it at all, I don't have that bit of it installed, and individual device driver settings are likely to be just that, individual. Check the docs or try posting to your distro's lists/forums. Another possible fix is device preference order. This is in kde settings, hardware, multimedia, phonon. When I first switched to the phonon-vlc backend, everything seemed to work great (far better than the phonon-xine backend, now not even available on some distros as upstream kde dropped support for it). But somewhere in the 4.7 or 4.8 timeframe (I ran the 4.8 betas and rcs and don't remember exactly when it showed up), the previous config quit working so well. Sound continued to work, but I'd get popups saying it was falling back to a different device as the preferred device wasn't working. The fix was to select every possible device (unless you have multiple physical devices and want some routed differently, do this for audio playback itself, not the individual purposes, notifications, music, etc) and hit the test button. If it works well, move it up. If it doesn't, move it down. Do this when you're having problems (sometimes, like right now, all devices test as working here, they didn't when I did the testing and reordered them when I had the problem). My list of devices has four listed for one physical device, Default, which will play thru the alsa default device, normally the first one detected if there's multiple physical devices, and three different listings for the hardware (AMD AMD8111, in my case, one saying /just/ that, one with the name twice, with "(Default Audio Device)" in parenthesis, one with the name twice, and "(hw:0,0)" in parenthesis). I ended up with Default (no hardware name) at the top of the list. The twice-listing with (Default Audio Device) next, the single-listing third, and the twice-listing with (hw:0,0) last. Since then, I've had no more phonon-fallback notification popups. =:^) But I'm not entirely sure if I really fixed it, or if that was a beta/rc problem that was fixed with kde 4.8.0, or if I just haven't hit the conditions that triggered it again. Whatever, I'm just happy to not be seeing those popups and thus worrying about sound (tho as I said, it did continue to work, I just saw the popups sometimes, and got worried). Note that I didn't have the "breeding like rabbits" knotify4 problem here, at least that I noted (as I said I don't tend to stay up for more than a few days at a time, testing kernels, etc), only the irritating popup problem. However, it could still be a device order issue, just with a slightly different manifestation than I had. Finally, it's also possible to switch phonon backends. You apparently have phonon-vlc configured, as do I. There's also the phonon-gstreamer backend, if you wish to try it. The phonon-gstreamer backend /does/ happen to be the kde (and gentoo) default, so it might be worth trying. But I haven't tried it, mostly because I have bad memories about trying to get gstreamer to work a long time ago due to problems that are almost certainly long gone, so it'd probably work just fine now, but I've just never actually needed to install gstreamer as there have always been other alternatives that worked, so I haven't. (Of course, the fact that I'm on gentoo and would thus have to build all those extra components just to try gstreamer out... when it would at least at first be for just one thing since I have alternatives to gstreamer installed for everything else, is part of the picture as well. That's a big barrier to cross just to try it out. If I were on a binary distro and all trying out gstreamer involved was downloading and installing pre-built binaries, the barrier would be lower, and there's a fair chance I'd have tried it again by now.) Anyway, I can't say what the phonon-gstreamer backend might do different, but it could be worth trying, if you're having problems with phonon-vlc, especially if you're on a binary distro so don't have the high barrier to trying it out that I do, and/or if you already have gstreamer itself installed, as many binary distro users as well as gnome users, for other reasons. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman ___________________________________________________ This message is from the kde mailing list. Account management: https://mail.kde.org/mailman/listinfo/kde. Archives: http://lists.kde.org/. More info: http://www.kde.org/faq.html.