Subject: /etc/daily gets stuck
To: None <port-alpha@netbsd.org>
From: Paul Mather <paul@gromit.dlib.vt.edu>
List: port-alpha
Date: 01/11/2001 09:06:31
For about a month or so, an annoying intermittent problem has plagued my
NetBSD/alpha system.  I'm running 1.5-current (1.5.1_ALPHA, built 1st
Jan. 2001 as of now) on a DEC 3000/300.  The problem is that /etc/daily
never finishes.  The find command to hunt out possible core files never
terminates.  It is flagged as "D" by ps.  Here is a typical output:

# ps alx
 UID  PID PPID CPU PRI NI   VSZ   RSS WCHAN    STAT TT    TIME COMMAND
   0  214    1   0  10  0   320   960 nanoslee Is   ?? 0:00.94 /usr/sbin/cron
[...]
   0 1054  214   0   2  0   320  1000 netio    I    ?? 0:00.01 /USR/SBIN/CRON (
   0 1055 1054   0  10  0  1352   376 wait     Is   ?? 0:00.05 /bin/sh -c /bin/
   0 1056 1055   3  10  0  1424   456 wait     I    ?? 0:00.14 /bin/sh /etc/dai
   0 1057 1055   0   2  0    56   752 netio    I    ?? 0:00.07 tee /var/log/dai
   0 1058 1055   0   2  0  1416  1976 netio    I    ?? 0:00.36 sendmail -t
   0 1063 1056   9  -2  0   264  1136 vnlock   D    ?? 2:15.55 find / (! -fsty
[...]

# fstat -v -p 1063
root     find        1063   wd /         24398 drwxr-xr-x     512 r
root     find        1063    0* unix stream fffffe00000f9080
root     find        1063    1 /tmp       3969 -rw-------       0 w
root     find        1063    2* unix stream fffffe00000e3d80 <-> fffffe00000f9600
root     find        1063    3 /tmp       3968 drwx------     512 r
root     find        1063    4 /tmp       3968 drwx------     512 r
root     find        1063    5 /         24398 drwxr-xr-x     512 r

# fstat -nv -p 1063
root     find        1063   wd  8,0   24398      40755    512 r
root     find        1063    0* unix stream fffffe00000f9080
root     find        1063    1 255,0    3969     100600      0 w
root     find        1063    2* unix stream fffffe00000e3d80 <-> fffffe00000f9600
root     find        1063    3 255,0    3968      40700    512 r
root     find        1063    4 255,0    3968      40700    512 r
root     find        1063    5  8,0   24398      40755    512 r

If I read the above correctly, find has inode 24398 open, which, it
says, is the root directory (/).  However, I'm told that / is inode 2 by
ls:

# ls -lid /
2 drwxr-xr-x  20 root  wheel  1024 Dec 29 16:15 /

I know ls can tell me the inode corresponding to a pathname.  Is there a
command to do the reverse: to tell me the pathname corresponding to an
inode number?

Here are my currently mounted devices:

# mount
/dev/sd0a on / type ffs (local)
mfs:29 on /tmp type mfs (asynchronous, local)
/dev/sd0d on /usr type ffs (NFS exported, local, soft dependencies)
/dev/sd0e on /home type ffs (local, soft dependencies)
/dev/sd1c on /scratch type ffs (local)

Although /usr is flagged as NFS exported, no hosts are currently NFS
mounting it.  (I sometimes mount /usr/src and /usr/pkgsrc on my
DECstation 3100.)

Lastly, what is state "vnlock"?  I'm assuming it is an attempt to lock a
pathname component.  FWIW, before I rebuilt userland recently, I got a
few occasional lockup/panic reboots after going to the 1.5.1_ALPHA
kernel.  When I was able to catch the message, it said: "panic: lockmgr:
sleep/spin mismatch".

Any suggestions??  I'd like to fix this, because it's an annoyance not
to get /etc/daily reports (particularly regarding possible core dumps
lying around).

Cheers,

Paul.

e-mail: paul@gromit.dlib.vt.edu

"Without music to decorate it, time is just a bunch of boring production
 deadlines or dates by which bills must be paid."
        --- Frank Vincent Zappa