possible deadlock in 2.4.4 sys_getdents ?

2001-06-19 Thread Martin Devera

Hello all,

after weeks of uptime, 2.4.4 kernel freezed several of
my processes. It seems like deadlock.
I typed "whereis perl" and system got frozen. After quick
look I found that I typed the command while "makedb" script
was running. All processes are on down:
budha:~# ps -A -o pid,cmd,eip,wchan|grep down
 1131 find / /dev/pts  400cd923 down
 5740 ls --color /usr/ 400bb923 down
 5738 whereis perl 400bb79e down

budha:~# ls /proc/1131/fd -l
total 0
lr-x--1 root root 64 Jun 19 14:37 0 -> /dev/null
l-wx--1 root root 64 Jun 19 14:37 1 -> pipe:[2577]
l-wx--1 root root 64 Jun 19 14:37 2 -> pipe:[2558]
lr-x--1 root root 64 Jun 19 14:37 3 -> /
lr-x--1 root root 64 Jun 19 14:37 4 -> /usr/share/man/man1

Now see strace output of whereis:
5738  getdents(5, /* 0 entries */, 3933) = 0
5738  close(5)  = 0
5738  stat("/usr/share/man/man1", {st_mode=S_IFDIR|0755, st_size=22528,
...}) = 
0
5738  open("/usr/share/man/man1", O_RDONLY|O_NONBLOCK|0x1) = 5
5738  fstat(5, {st_mode=S_IFDIR|0755, st_size=22528, ...}) = 0
5738  fcntl(5, F_SETFD, FD_CLOEXEC) = 0
5738  getdents(5, 

It stops at getdents. I don't know how to trace it further down ..
I have to reboot machine and probably will not be able to simulate
it again. Only it is evident that it is possible to hang it up 
and kill -9 doesn't work (uninteruptible sleep).

I hope this helps improve stability.
devik

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



possible deadlock in 2.4.4 sys_getdents ?

2001-06-19 Thread Martin Devera

Hello all,

after weeks of uptime, 2.4.4 kernel freezed several of
my processes. It seems like deadlock.
I typed whereis perl and system got frozen. After quick
look I found that I typed the command while makedb script
was running. All processes are on down:
budha:~# ps -A -o pid,cmd,eip,wchan|grep down
 1131 find / /dev/pts  400cd923 down
 5740 ls --color /usr/ 400bb923 down
 5738 whereis perl 400bb79e down

budha:~# ls /proc/1131/fd -l
total 0
lr-x--1 root root 64 Jun 19 14:37 0 - /dev/null
l-wx--1 root root 64 Jun 19 14:37 1 - pipe:[2577]
l-wx--1 root root 64 Jun 19 14:37 2 - pipe:[2558]
lr-x--1 root root 64 Jun 19 14:37 3 - /
lr-x--1 root root 64 Jun 19 14:37 4 - /usr/share/man/man1

Now see strace output of whereis:
5738  getdents(5, /* 0 entries */, 3933) = 0
5738  close(5)  = 0
5738  stat(/usr/share/man/man1, {st_mode=S_IFDIR|0755, st_size=22528,
...}) = 
0
5738  open(/usr/share/man/man1, O_RDONLY|O_NONBLOCK|0x1) = 5
5738  fstat(5, {st_mode=S_IFDIR|0755, st_size=22528, ...}) = 0
5738  fcntl(5, F_SETFD, FD_CLOEXEC) = 0
5738  getdents(5, 

It stops at getdents. I don't know how to trace it further down ..
I have to reboot machine and probably will not be able to simulate
it again. Only it is evident that it is possible to hang it up 
and kill -9 doesn't work (uninteruptible sleep).

I hope this helps improve stability.
devik

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/