GNOME Bugzilla – Bug 326086
GStreamer occasionally hangs amaroK at end of song
Last modified: 2006-03-07 09:48:22 UTC
Steps to reproduce: amaroK will run for some time with no problem. Then, at the end of a song, it will hang. The player and main windows stop updating and do not re-paint when they regain focus. Attaching gdb, the backtrace is stalled at the same place in the handful of times I have investigated. Submitted this bug to the amaroK group, they claim it is an issue with GStreamer. Stack trace: One Thread:
+ Trace 65017
Other information:
Any chance you could try with a more recent GStreamer 0.8.x core version? The current release is 0.8.11.
I have 0.10.0 installed in addition to 0.8.9, and I originally thought I was using that, but because the pkgconfig name for the plugins changed from gstreamer-plugins-0.8.pc to gstreamer-plugins-base-0.10.pc, and amaroK's configure script wasn't looking for that, I built with the 0.8.9 version. I'm recompiling amaroK with the 0.10 version to see if the problem still exists...
Using 0.10.0, the problem still exists. I have a stack trace if it would be helpful, but it looks to be about the same. One thread is in pthread_cond_timedwait, the other is in poll(). I'm going to attempt to use 0.8.11 now.
I doubt that you have the same problem with 0.10, given that the functions in the backtrace don't exist in 0.10. (Does amarok even have a gst 0.10 backend yet?) I would be inclined to think this is an obsolete bug in the 0.8 scheduler.
Amarok definitely does claim to have a gst 0.10 backend. The engine dialog allows you to select the 0.10 GStreamer or whatever pre-0.10 GStreamer you happen to have installed. And I definitely see the same behavior when I use the 0.10 engine. But if you don't believe me, I can use the 0.10 backend and post a backtrace of the failure for you when it occurs.
A backtrace with 0.10 would be good, yes. Nobody really hacks on 0.8 anymore.
Ping?
The circumstances of the error seem to be different under 0.10.0. I allowed amarok to run for about 10 hours straight without the lockup, but yesterday, I saw the lockup upon starting playback just after loading the program. Like a fool, I killed the program without saving the backtrace. If it happens again, I'll post it. I'll try to induce the failure, but I wouldn't hold my breath.
I managed to induce the failure. I don't know if it's related to the specific mp3 that was playing or not. Here's the backtrace.
+ Trace 65260
amarok is running two threads. This one is stalling the whole operation. The other is still running (when I pause it, it's in a poll(), waiting for the other thread?). I haven't killed the program yet (it's not using any CPU cycles), so if there's any other information I can extract that might help, let me know.
Backtraces of each thread would be nice. 'thread apply all bt' in gdb.
Created attachment 57511 [details] Backtrace of all threads. The backtrace of each thread, as requested in the comments.
The stalled process was running 94 threads. Rather than polluting the comments list, I made an attachement.
(1) The existence of so many threads is almost assuredly an amarok bug. Check especially if amarok is creating clocks without unreffing them properly. (2) I don't understand the bt -- there are two "thread 1" threads. I'm inclined to believe you entered another command besides thread apply all bt. Is this the case? Otherwise does anyone know why there are two thread 1's ? (3) If the bt's are correct, this looks like a bug in dmix, but it could be a bug in alsasink. For this reason your feedback is important -- we'd like to catch such a bug sooner rather than later.
Alternately this could be an instance of bug #326576 -- what kind of hardware do you have?
2.) The second Thread 1 is the all threads bt from the second process. I added a comment before it, but apparently that was unclear. Re: hardware: What do you want to know? The sound device is the integrated audio device in the motherboard chipset. lspci reports it as "Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)".
Is there anymore information you need me to extract from gdb? Otherwise, I'm going to kill the program now.
looks like a dup of #330748 *** This bug has been marked as a duplicate of 330748 ***