2.2.12: process hung writing to /dev/dsp - didn't obey kill -9

Ville Herva (vherva@babbage.tky.hut.fi)
Sat, 23 Oct 1999 13:42:59 +0300


Have the semantics of writing to /dev/dsp changed? I seem to recall that
with 2.0.x and SB16, if a process used /dev/dsp, and another process tried
to open it, it failed immediately. However with 2.2.x and ES1370, the
other process will just block waiting the device to be freed:

vherva@babbage:/home/vherva>cat /dev/urandom > /dev/dsp&
[1] 17684
vherva@babbage:/home/vherva>echo foo > /dev/dsp
(just hangs infinitely)

Is there a reason for this behaviour?

Anyway, I had two processes waiting for /dev/dsp (I had forgot
esd running and put two mpg123-command in cron to wake me up ;) )
I could kill another of them and dsp as well. One mpg123 wouldn't
die however, no matter what:

root@babbage:/dev>kill -KILL 10362
(tried that ~100 times)
root@babbage:/dev>ps 10362
PID TTY STAT TIME COMMAND
10362 ? RWN 0:03 [mpg123]
root@babbage:/dev>kill -KILL 10362
root@babbage:/dev>fuser /dev/dsp
10362
root@babbage:/dev>ps -l `pidof mpg123`
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
000 R 1414 10362 10361 0 62 2 - 361 - ? 0:03 [mpg123]

So it was not even in zombie state - even more interestingly it
was in run-state (shouldn't it have been in sleep state if it
was waiting for io? It surely did not take any CPU).

ES1370 was not module at the time so I couldn't try to rmmod it.
I found no way arounf this - I had to boot in order to be
able to use /dev/dsp again. (I've compiled es1370 as module, so
I can try rmmod it if this happens again).

Anyhow, I guess not being able to kill process counts as
some sort of a bug.

If you are interested in any additional information, I'll
be happy to provide it.

-- v --

v@iki.fi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/