[1258] in testers
decmips 7.2A: auto-update
daemon@ATHENA.MIT.EDU (daemon@ATHENA.MIT.EDU)
Fri Nov 30 08:36:44 1990
Date: Fri, 30 Nov 90 08:36:25 -0500
From: John T Kohl <jtkohl@ATHENA.MIT.EDU>
To: testers@ATHENA.MIT.EDU
System name: quicksilver
Type and version: KN01 7.2A
Display type: PM-MONO
What were you trying to do?
Log in this morning.
What's wrong:
Auto-update had the machine hung. The display was blank, with
just a console-mode cursor. No response to keyboard or mouse.
Here's a process list, and some debugging info on the hung processes:
quicksilver# ps axww
PID TT STAT TIME COMMAND
0 ? D 0:03 swapper
1 ? I 0:00 /etc/init -a
2 ? D 0:02 pagedaemon
73 ? S 0:00 /etc/named /etc/named.boot
81 ? D 0:00
82 ? D 0:09
83 ? D 0:08
84 ? D 0:08
85 ? D 0:07
86 ? D 0:07
115 ? I 0:00 /etc/syslog
198 ? S 0:37 /etc/update -n
202 ? I 0:01 /etc/cron
215 ? IW 0:00 /etc/biod 4
216 ? IW 0:00 /etc/biod 4
217 ? IW 0:00 /etc/biod 4
218 ? IW 0:00 /etc/biod 4
219 ? I 0:00 /etc/inetd
222 ? I 0:00 /etc/portmap
223 ? I 0:01 /etc/mountd
228 ? IW 0:00 /etc/nfsd 4
229 ? IW 0:00 /etc/nfsd 4
230 ? IW 0:00 /etc/nfsd 4
231 ? IW 0:00 /etc/nfsd 4
255 ? S 0:05 /etc/snmpd
256 ? I 0:00 /etc/timed
261 ? I 0:00 /etc/athena/zhm
303 ? IW 0:00 /etc/elcsd
1464 co R 805:29 - /etc/athena/login/config ttyv0 console (dm)
1928 ? S 0:00 telnetd
1929 p0 I 0:00 login -h LYCUS.MIT.EDU -p root
1930 p0 S 0:00 -csh (csh)
1939 p0 R 0:00 ps axww
1468 qf I 0:00 sh /etc/athena/reactivate
1472 qf I 0:00 sh /srvd/auto_update reactivate
1495 qf I 0:01 /bin/sh /srvd/usr/athena/lib/update/do_update
1670 qf I 0:01 track -v -F /srvd -T / -d -W /srvd/etc/athena/lib
quicksilver# dbx -k /vmunix /dev/mem
dbx version 1.31
Type 'help' for help.
reading symbolic information ...
[using memory image in /dev/mem]
(dbx) set $pid=1670
(dbx) where
> 0 swtch.swtch() ["../mips/swtch.c":208, 0x800fa210]
1 sleep(chan = 0x80164448 = "^Q^H", pri = 29) ["../sys/kern_synch.c":470, 0x80078774]
2 ttwrite(tp = (nil), uio = 0x8017bec0) ["../sys/tty.c":2702, 0x80084fa4]
3 ptswrite(dev = 22444, uio = 0x800aeb30) ["../sys/tty_pty.c":261, 0x800875cc]
4 spec_rwgp(gp = 0x80145f30, uiop = (nil), rw = UIO_WRITE, ioflag = 0, cred = 0xc37cef00) ["../specfs/spec_vnodeops.c":259, 0x8006bd9c]
5 rwgp(gp = 0x80194178, uio = 0xa000, rw = UIO_WRITE, ioflag = 0, cred = 0xc37cef00) ["../gfs/gfs_gnodeops.c":239, 0x8003457c]
6 gno_rw(fp = (nil), rw = -1014729728, uio = 0xffff0818) ["../gfs/gfs_gnodeops.c":176, 0x80034384]
7 rwuio(uio = 0xffffdef8, rw = UIO_WRITE) ["../sys/sys_generic.c":202, 0x8007be1c]
8 write() ["../sys/sys_generic.c":134, 0x8007bbd8]
9 trap.syscall(ep = 0xffffdf5c, code = 4, sr = 3, cause = 32) ["../mips/trap.c":1148, 0x800fc0bc]
10 VEC_syscall() ["../mips/locore.s":549, 0x800eee34]
11 entry.start() [0x40a534]
(dbx) set $pid=1464
(dbx) where
0 swtch.swtch() ["../mips/swtch.c":208, 0x800fa210]
1 trap.syscall(ep = 0xffffdf5c, code = 4, sr = 3, cause = 32) ["../mips/trap.c":1185, 0x800fc204]
2 VEC_syscall() ["../mips/locore.s":549, 0x800eee34]
3 entry.start() [0x4022c4]
[comment: code 4 is write(); this process is looping, alternating
between read() and write(). The 0x4022c4 is probably the return address
in user space. ]
All the shells are inside wait().
What should have happened:
The auto-update should have completed properly.
When I killed off the looping dm, it restarted, and the
auto-update seemed to complete (putting stuff into the new console
window, tracing the update process), and then the machine rebooted
(presumably as expected).
Please describe any relevant documentation references:
write(2), wait(2), wait3(2)