(Illustration by Gaich Muramatsu)
On Wed, Jul 12, 2000 at 06:32:36PM +0200, System V wrote: > tail -f /usr/coda/etc/venus.log > [ W(25) : 0000 : 18:20:25 ] WAITING((0x7f000000.0x1.0x1)): level = RD, > readers = 0, writers = 1 > [ W(26) : 0000 : 18:20:34 ] WAITING((0x7f000000.0x1.0x1)): level = RD, > readers = 0, writers = 1 > [ W(27) : 0000 : 18:20:36 ] WAITING((0x7f000000.0x1.0x1)): level = RD, > readers = 0, writers = 1 > [ W(28) : 0000 : 18:20:41 ] WAITING((0x7f000000.0x1.0x1)): level = RD, > readers = 0, writers = 1 > [ W(29) : 0000 : 18:20:45 ] WAITING((0x7f000000.0x1.0x1)): level = RD, > readers = 0, writers = 1 Brian Noble at one point identified a kernel problem that can cause this situation. Upcalls from the kernel to venus are aborted when the process triggering the upcall receives a ^C, this also happens for CLOSE upcalls. In that case venus cannot correctly decrement the readers/writers. > 18:30:26 /usr/coda/LOG validated at size 0x509200 > 18:30:26 /usr/coda/DATA validated at size 0x14232e0 > log_recover failed. > do_rvm_options failed > 18:30:26 fatal error -- Recov_InitRVM: RVM_INIT failed, internal error > Current time before last recorded - check kernel date > 18:30:26 Fatal Signal (11); pid 1696 becoming a zombie... > 18:30:26 You may use gdb to attach to 1696 This is a different problem, your system clock is returning a time that is before the last run of venus. This should never happen. Clocks running `backwards' also tend to mess up building sourcecode, checking for new email, etc. > I'll just keep rebooting :-( I don't reboot that often; killall -9 venus # kill all processes that have their cwd in /coda. umount /coda venus & > Ps. is there a posability to work directly on the server, eg cache > size= 0 ?? No, Coda does not intercept kernel read/write calls, on the open call the file is fetched into the cache, then we return it's device/ino to the kernel and attach the containerfile inode to the coda inode. All read/write calls go directly to the container file. That is a lot more efficient because every upcall takes at least 2 context switches (process->venus->process) and doing this for every read and write would slow down the system tremendously. JanReceived on 2000-07-12 15:04:38