Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!munnari!otc!metro!basser!natmlab!ditsyda!evans From: evans@ditsyda.oz (Bruce Evans) Newsgroups: comp.os.minix Subject: Re: bug in minix fs/devicce.c (causing deadlock) Message-ID: <1954@ditsyda.oz> Date: 24 Apr 89 19:30:04 GMT References: <443@prles2.UUCP> Organization: CSIRO DIT Sydney, Australia Lines: 26 in article <443@prles2.UUCP>, meulenbr@cst.prl.philips.nl (Frans Meulenbroeks) says: > [fs sometimes sends a CANCEL message which is never replied to] > fix: > The problem can be fixed in several ways: > - always give a reply back on the CANCEL message. > however withing the pc tty driver a warning for races is given in the > do_cancel routine. > - check in the routine rw_dev for the condition described above and deal > with it. > > I've chosen for the second approach. My PC TTY driver fixes it using the 1st approach. The race conditions are avoided by avoiding duplicate cancellations. It is unreasonable for a task not to reply to a sendrec()! The 1.3d printer driver has the same bad behaviour. It only replies to messages it understands. So an ioctl() to the printer will hang the system. > PS: this was a tough one. Same. How can we avoid duplicating the effort of fixing bugs for the PC, the ST, and out of date versions of both? Bruce Evans evans@ditsyda.oz.au