Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 599968 - media-sound/timidity++-2.14.0-r2: stuck in infinite loop
Summary: media-sound/timidity++-2.14.0-r2: stuck in infinite loop
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Sound Team
Depends on:
Reported: 2016-11-16 10:02 UTC by Raymond Jennings
Modified: 2021-12-21 13:49 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---

emerge --info (einfo.txt,6.30 KB, text/plain)
2016-11-16 10:05 UTC, Raymond Jennings

Note You need to log in before you can comment on or make changes to this bug.
Description Raymond Jennings 2016-11-16 10:02:48 UTC
I don't know why but timidity sometimes gets stuck in an infinite loop when my system is under heavy disk I/O load.

Backtrace from gdb:

#0  0x00007f7f29caca57 in ioctl () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f7f2c31f789 in snd_seq_hw_get_queue_status (seq=<optimized out>, status=<optimized out>)
    at /usr/src/debug/media-libs/alsa-lib-1.0.29/alsa-lib-1.0.29/src/seq/seq_hw.c:199
#2  0x00000000004a887d in get_current_queue_position (ctxp=0x82dbc0 <alsactx>) at alsaseq_c.c:427
#3  0x00000000004a905a in doit (ctxp=0x82dbc0 <alsactx>) at alsaseq_c.c:498
#4  ctl_pass_playing_list (n=<optimized out>, args=<optimized out>) at alsaseq_c.c:395
#5  0x000000000041b77b in timidity_play_main (files=0x7ffd58ee9690, nfiles=0) at timidity.c:5655
#6  main (argc=<optimized out>, argv=<optimized out>) at timidity.c:5935

Repeatedly doing "finish" gets it stuck at the "doit" frame.

If whoever handles this needs me to rebuild timidity with more debug or less optimization let me know.
Comment 1 Raymond Jennings 2016-11-16 10:04:04 UTC
488			while (snd_seq_event_input_pending(ctxp->handle, 1)) {
(gdb) next
492			if (ctxp->active) {
(gdb) next
495				if (IS_STREAM_TRACE) {
(gdb) next
497					if (ctxp->queue >= 0)
(gdb) next
498						last_queue_offset = get_current_queue_position(ctxp);
(gdb) next
500					buffer_time_offset += buffer_time_advance;
(gdb) next
501					ev.time = buffer_time_offset;
(gdb) next
511				play_event(&ev);
(gdb) next
510				ev.type = ME_NONE;
(gdb) next
511				play_event(&ev);
(gdb) next
512				aq_fill_nonblocking();
(gdb) next
514			if (! ctxp->active || ! IS_STREAM_TRACE) {
(gdb) next
488			while (snd_seq_event_input_pending(ctxp->handle, 1)) {

What appears to be the infinite loop.  timidity isn't making any sound and the CPU load is stuck at 100 percent.
Comment 2 Raymond Jennings 2016-11-16 10:05:06 UTC
Created attachment 453504 [details]
emerge --info
Comment 3 Pacho Ramos gentoo-dev 2021-12-21 13:49:22 UTC
Still valid with 2.15.0-r1?