2011/3/11 Amit Kulkarni <[email protected]>:
> I tried to do a similar thing, Ctrl + C on a fsck, kill -9 the fsck
> pid. But the process is not able to be killed. Finally found out that
> I/O stuff can't be killed in OpenBSD. Since you do I/O to COM port,
> and try to kill it... I don't know if its a bug though.

Any I/O will be finished somewhen, or must be interrupted by kernel
after some timeout. In my situation this I/O will not finished and as
we see kernel will not try to break or stop it.
If some process can catch COM port in a way that noone can use the
port and noone can kill that process - it is wrong situation.

With help from mikeb@ I trace down target process and found this:

# ps xal|fgrep \(ct|fgrep -v grep
    0  8525 30605   0   4   0   280   588 ttyout  IE+   p0    0:00.01 (ct)

ddb> trace /p 0x214d
sleep_finish(c0,d08b9e99,0,d9911ba4,d9911ba4) at sleep_finish+0x99
sleep_finish(d9911ba4,1,11a,d09c05f6,80) at sleep_finish+0x99
tsleep(d158d448,11a,d09c05f6,0,d158d400) at tsleep+0x9d
ttysleep(d158d400,d158d448,11a,d09c05f6,0) at ttysleep+0x36
ttywait(d158d400,7fffffff,d5b1f148,d03e3450,d1568000) at ttywait+0x8e
ttywflush(d158d400,0,d9911c6c,d02cccce,d158d400) at ttywflush+0x17
ttylclose(d158d400,3,d5b1f148,d03f9176,80) at ttylclose+0x2b
comclose(882,3,2000,d5b1f148,d5b1f148) at comclose+0x6e
spec_close(d9911cf8,20000,d9911cdc,d041772a,d9911ccc,20042,0,d5b9f038) at spec_
close+0x102
ufsspec_close(d9911cf8,20042,d5b1f148,d050962c,d5ba0628) at ufsspec_close+0xdc
VOP_CLOSE(d5b9f038,3,d5d45230,d5b1f148,d158d400) at VOP_CLOSE+0x30
vn_close(d5b9f038,3,d5d45230,d5b1f148,882,4004667f,d9911e84,3,d5b1f148,20002,d5
b1f148,0,19,d5b9f038,d9911dac,d04172dc) at vn_close+0x4f
vn_closefile(d5b4bc08,d5b1f148,d9911e84,3,d5d45230) at vn_closefile+0x80
closef(d5b4bc08,d5b1f148,d9911dfc,2,d5d3a948) at closef+0x5d
fdfree(d5b1f148,1,d9911e2c,d03e1025,d5d3a940) at fdfree+0x52
exit1(d5b1f148,2,1,0,d5b1f148) at exit1+0x14b
sigexit(d5b1f148,2,1,d5b1f148,d9911ea4) at sigexit+0x3f
postsig(2,d9911f64,d9911f84,d9911fa8,d9911fa8) at postsig+0x255
syscall() at syscall+0x25e
--- syscall (number 8000) ---
0x2:


-- 
antonvm

Reply via email to