--- Begin Message ---
Package: smpeg-gtv
Version: 0.4.5+cvs20030824-1
When I run gtv on an mp3 file from my NFS server, it sometimes locks
up: it flashes the screen as described in one of my just-submitted bug
reports, and then, before putting up its own window, it stops,
consuming no CPU. It is then unkillable other than with SIGKILL (as
described in the other of my just-submitted bug reports).
The lockups seem to be correlated with having read the file recently.
In particular, the first time I try a particular file it's fine. But
if I play that file a bit and then try it again it fails.
Enclosed are some extracts from straces:
execve("/usr/bin/gtv", ["gtv", "/export/music/data/Ludwig van
Beethoven/Symphony No.5 in C minor Op.67/1:.mp3"], [/* 38 vars */]) = 0
...
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
gettimeofday({1070642940, 347129}, NULL) = 0
...
connect(3, {sa_family=AF_INET, sin_port=htons(6000),
sin_addr=inet_addr("172.18.45.2")}, 16) = 0
...
clone(child_stack=0x809ba68, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND)
= 5086
...
poll([{fd=3, events=POLLIN}, {fd=10, events=POLLIN}], 2, 99) = 0
gettimeofday({1070642951, 856172}, NULL) = 0
gettimeofday({1070642951, 856192}, NULL) = 0
ioctl(3, FIONREAD, [0]) = 0
poll([{fd=3, events=POLLIN}, {fd=10, events=POLLIN}], 2, 99) = 0
gettimeofday({1070642951, 966167}, NULL) = 0
gettimeofday({1070642951, 966184}, NULL) = 0
ioctl(3, FIONREAD, [0]) = 0
poll([{fd=3, events=POLLIN}, {fd=10, events=POLLIN}], 2, 100) = -1 EINTR
(Interrupted system call)
+++ killed by SIGKILL +++
These last few calls repeat over and over. There doesn't seem to be
an fd 10 open AFAICT from the trace. Here is the trace for pid 5086:
--- SIGSTOP (Stopped (signal)) @ 0 (0) ---
rt_sigprocmask(SIG_SETMASK, ~[TRAP RT_1], NULL, 8) = 0
read(8, "\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 148) = 148
poll([{fd=8, events=POLLIN, revents=POLLIN}], 1, 2000) = 1
getppid() = 5085
read(8, "``D@\0\0\0\0000\365\377\277\240N@@\270\231\t\10\0\0\0\200"..., 148) =
148
old_mmap(0xbf600000, 2097152, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xbf600000
mprotect(0xbf600000, 4096, PROT_NONE) = 0
clone(child_stack=0xbf7ffbd0,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|SIGRT_1) = 5087
kill(5085, SIGRTMIN) = 0
poll([{fd=8, events=POLLIN}], 1, 2000) = 0
getppid() = 5085
poll([{fd=8, events=POLLIN}], 1, 2000) = 0
getppid() = 5085
poll([{fd=8, events=POLLIN}], 1, 2000) = 0
getppid() = 5085
poll([{fd=8, events=POLLIN}], 1, 2000) = 0
getppid() = 5085
poll([{fd=8, events=POLLIN}], 1, 2000) = 0
getppid() = 5085
poll([{fd=8, events=POLLIN}], 1, 2000) = -1 EINTR (Interrupted system call)
+++ killed by SIGKILL +++
I can find no fd 8 in the parent, or in this trace.
And for 5087:
--- SIGSTOP (Stopped (signal)) @ 0 (0) ---
getpid() = 5087
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
sched_setscheduler(0x13df, 0, 0xbf7ffcf8) = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT PIPE ALRM TERM CHLD VTALRM PROF WINCH],
NULL, 8) = 0
kill(5085, SIGRTMIN) = 0
select(0, NULL, NULL, NULL, {0, 92000}) = 0
(Timeout)
write(7, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 16384) =
16384
select(8, NULL, [7], NULL, {10, 0}) = 1 (out [7], left {9, 980000})
...... [lots of identical deleted] ...
select(8, NULL, [7], NULL, {10, 0}) = 1 (out [7], left {9, 970000})
write(7, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 16384)
= 16384
select(8, NULL, [7], NULL, {10, 0}) = 1 (out [7], left {9, 980000})
write(7, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 16384)
= 8192
+++ killed by SIGKILL +++
fd 7 is /dev/dsp.
My experiments have been accompanied by occasional kernel messages
like this:
Dec 5 16:47:27 anarres kernel: via_audio: ignoring drain playback error -512
Ian.
--- End Message ---