[AD] Alsa midi deadlock under Linux using three finger combo. |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
- To: Allegro developers mailing list <alleg-developers@xxxxxxxxxx>
- Subject: [AD] Alsa midi deadlock under Linux using three finger combo.
- From: Grzegorz Adam Hankiewicz <gradha@xxxxxxxxxx>
- Date: Sun, 9 Oct 2005 13:55:05 +0200
I've tried to the demo on my Linux machine. Without touching
anything at all, just letting the credits scroll, the demo started
to drop frames like hell, reaching a point where I would get a
frame per half minute or so. The three finger combo seemed to be
accepted immediately, the X11 window dissappeared, but the prompt
never returned. I attached with gdb to the process and looks like
I have a deadlock:
(gdb) info threads
3 Thread -1213715536 (LWP 6186) 0xb7d56f87 in select ()
from /lib/tls/libc.so.6
2 Thread -1222362192 (LWP 6187) 0xb7f191ed in find_config_string (
config=0x805a290, section=0xb7fb1c45 "[language]",
name=0xb6700500 "Could_not_write_to_rawmidi_port:_Operation_not_permitted", prev=0x0) at src/config.c:735
1 Thread -1211578048 (LWP 6185) 0xb7ebf179 in __lll_mutex_lock_wait ()
from /lib/tls/libpthread.so.0
(gdb) thread 1
[Switching to thread 1 (Thread -1211578048 (LWP 6185))]#0 0xb7ebf179 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
(gdb) bt
#0 0xb7ebf179 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
#1 0xb7ebbee7 in _L_mutex_lock_29 () from /lib/tls/libpthread.so.0
#2 0x00000000 in ?? ()
#3 0x00000000 in ?? ()
#4 0x00000030 in ?? ()
#5 0x00000030 in ?? ()
#6 0x00000001 in ?? ()
#7 0xb7fb6d48 in ?? () from /usr/local/lib/liballd.so.4.2
#8 0x080737c0 in ?? ()
#9 0x00001829 in ?? ()
#10 0xbffff0a4 in ?? ()
#11 0xb7f7a370 in _unix_lock_mutex (handle=0x80737c8)
at src/unix/uthreads.c:361
#12 0xb7f7a370 in _unix_lock_mutex (handle=0x80737c0)
at src/unix/uthreads.c:361
#13 0xb7f6ccb9 in remove_timer_int (proc=0xb7f4d8c3, param=0x0, param_used=0)
at src/timer.c:453
#14 0xb7f6cd88 in remove_int (proc=0xb7f4d8c3 <midi_player>) at src/timer.c:476
#15 0xb7f4e6fd in play_midi (midi=0x0, loop=0) at src/midi.c:1263
#16 0xb7f4e867 in stop_midi () at src/midi.c:1323
#17 0xb7f4e1df in midi_exit () at src/midi.c:1089
#18 0xb7f6583d in remove_sound () at src/sound.c:695
#19 0xb7f069ac in allegro_exit () at src/allegro.c:413
#20 0xb7f9f5b8 in _xwin_signal_handler (num=2) at src/x/xsystem.c:144
#21 <signal handler called>
#22 0xb7ebf179 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
#23 0xb7ebbee7 in _L_mutex_lock_29 () from /lib/tls/libpthread.so.0
#24 0xb7fea280 in ?? ()
#25 0xb7ef9a0f in ?? () from /usr/local/lib/liballd.so.4.2
#26 0x06664519 in ?? ()
#27 0x00000000 in ?? ()
#28 0x00000000 in ?? ()
#29 0xb7fb6d48 in ?? () from /usr/local/lib/liballd.so.4.2
#30 0x080737c0 in ?? ()
#31 0x00001829 in ?? ()
#32 0xbffff4b4 in ?? ()
#33 0xb7f7a370 in _unix_lock_mutex (handle=0x80737c8)
at src/unix/uthreads.c:361
#34 0xb7f7a370 in _unix_lock_mutex (handle=0x80737c0)
at src/unix/uthreads.c:361
#35 0xb7f6ccb9 in remove_timer_int (proc=0xb7f4d8c3, param=0x0, param_used=0)
at src/timer.c:453
#36 0xb7f6cd88 in remove_int (proc=0xb7f4d8c3 <midi_player>) at src/timer.c:476
#37 0xb7f4e6fd in play_midi (midi=0x0, loop=0) at src/midi.c:1263
#38 0xb7f4e867 in stop_midi () at src/midi.c:1323
#39 0xb7f4e1df in midi_exit () at src/midi.c:1089
#40 0xb7f6583d in remove_sound () at src/sound.c:695
#41 0xb7f069ac in allegro_exit () at src/allegro.c:413
#42 0xb7f9f5b8 in _xwin_signal_handler (num=15) at src/x/xsystem.c:144
#43 <signal handler called>
#44 0xb7ebf179 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
#45 0xb7ebbee7 in _L_mutex_lock_29 () from /lib/tls/libpthread.so.0
#46 0x00000000 in ?? ()
#47 0x00000000 in ?? ()
#48 0x00000000 in ?? ()
#49 0x00000000 in ?? ()
#50 0x00000000 in ?? ()
#51 0xb7fb6d48 in ?? () from /usr/local/lib/liballd.so.4.2
#52 0x080737c0 in ?? ()
#53 0xb8000cc0 in ?? () from /lib/ld-linux.so.2
#54 0xbffff8c8 in ?? ()
#55 0xb7f7a370 in _unix_lock_mutex (handle=0x80737c8)
at src/unix/uthreads.c:361
#56 0xb7f7a370 in _unix_lock_mutex (handle=0x80737c0)
at src/unix/uthreads.c:361
#57 0xb7f6ccb9 in remove_timer_int (proc=0x804ec94, param=0x0, param_used=0)
at src/timer.c:453
#58 0xb7f6cd88 in remove_int (proc=0x804ec94 <scroll_counter>)
at src/timer.c:476
#59 0x080515d1 in title_screen () at demo/title.c:855
#60 0x0804cfaf in main (argc=1, argv=0xbffffc44) at demo/demo.c:126
(gdb) thread 2
[Switching to thread 2 (Thread -1222362192 (LWP 6187))]#0 0xb7f191ed in find_config_string (config=0x805a290, section=0xb7fb1c45 "[language]",
name=0xb6700500 "Could_not_write_to_rawmidi_port:_Operation_not_permitted", prev=0x0) at src/config.c:735
735 if (p->name) {
(gdb) bt
#0 0xb7f191ed in find_config_string (config=0x805a290,
section=0xb7fb1c45 "[language]",
name=0xb6700500 "Could_not_write_to_rawmidi_port:_Operation_not_permitted", prev=0x0) at src/config.c:735
#1 0xb7f1ab0d in get_config_text (
msg=0xb7243220 "Could not write to rawmidi port: Operation not permitted")
at src/config.c:1380
#2 0xb7b1be9b in alsa_rawmidi_output ()
from /usr/local/lib/allegro//4.2/alleg-alsamidi.so
#3 0xb7b1bfe0 in ?? () from /usr/local/lib/allegro//4.2/alleg-alsamidi.so
#4 0xb7db266b in in6addr_any () from /lib/tls/libc.so.6
#5 0x6c756f43 in ?? ()
#6 0x6f6e2064 in ?? ()
#7 0x72772074 in ?? ()
#8 0x20657469 in ?? ()
#9 0x72206f74 in ?? ()
#10 0x696d7761 in ?? ()
#11 0x70206964 in ?? ()
#12 0x3a74726f in ?? ()
#13 0x65704f20 in ?? ()
#14 0x69746172 in ?? ()
#15 0x6e206e6f in ?? ()
#16 0x7020746f in ?? ()
#17 0x696d7265 in ?? ()
#18 0x64657474 in ?? ()
#19 0x70206900 in ?? ()
#20 0x3a74726f in ?? ()
#21 0x65704f20 in ?? ()
#22 0x69746172 in ?? ()
#23 0x6e206e6f in ?? ()
#24 0x7020746f in ?? ()
#25 0x696d7265 in ?? ()
#26 0x64657474 in ?? ()
#27 0x72772000 in ?? ()
#28 0x20657469 in ?? ()
#29 0x72206f74 in ?? ()
#30 0x696d7761 in ?? ()
#31 0x70206964 in ?? ()
#32 0x3a74726f in ?? ()
#33 0x65704f20 in ?? ()
#34 0x69746172 in ?? ()
#35 0x6e206e6f in ?? ()
#36 0x7020746f in ?? ()
#37 0x696d7265 in ?? ()
#38 0x64657474 in ?? ()
#39 0x70206900 in ?? ()
#40 0x3a74726f in ?? ()
#41 0x65704f20 in ?? ()
#42 0x69746172 in ?? ()
#43 0x6e206e6f in ?? ()
#44 0x7020746f in ?? ()
#45 0x696d7265 in ?? ()
#46 0x64657474 in ?? ()
#47 0x00000000 in ?? ()
#48 0xb7f0b2db in blit (src=0x9, dest=0x24, s_x=0, s_y=1, d_x=192,
d_y=-1208190876, w=-1222364248, h=1) at src/blit.c:703
#49 0xb7f4d751 in process_midi_event (pos=0xb7fc7890,
running_status=0xb7fc7898 "\231", timer=0xb7fc7894) at src/midi.c:823
#50 0xb7f4da71 in midi_player () at src/midi.c:927
#51 0xb7f6c465 in _handle_timer_tick (interval=315289963) at src/timer.c:116
#52 0xb7f78cbb in ptimer_thread_func (unused=0x0) at src/unix/uptimer.c:140
#53 0xb7ebaccd in start_thread () from /lib/tls/libpthread.so.0
#54 0xb7d5eb0e in clone () from /lib/tls/libc.so.6
(gdb) thread 3
[Switching to thread 3 (Thread -1213715536 (LWP 6186))]#0 0xb7d56f87 in select
() from /lib/tls/libc.so.6
(gdb) bt
#0 0xb7d56f87 in select () from /lib/tls/libc.so.6
#1 0xb7f79e9e in bg_man_pthreads_threadfunc (arg=0x0)
at src/unix/uthreads.c:110
#2 0xb7ebaccd in start_thread () from /lib/tls/libpthread.so.0
#3 0xb7d5eb0e in clone () from /lib/tls/libc.so.6
The terminal only responds to Cltr+Z and "kill -9 %1".