[comp.unix.xenix] Bug in spooler on Xenix

jbayer@ispi.COM (Jonathan Bayer) (08/17/90)

There is a bug I have seen mentioned in the Xenix spooler recently. 
This is that the spooler seems to stop working on a random basis.  This
is caused by a race condition in the spooler.  SCO gave me a workaround
to this a while ago:

1.	Create a dummy printer, make it the default printer.  DO NOT USE
	THIS PRINTER FOR PRINTING.

2.	Add the following line to /etc/profile:

		LPDEST=printer; export LPDEST

	replace "printer" with what you want your default printer to be.
	

3.	Add the following line to /etc/cshrc:

		setenv LPDEST printer

	Again, replace "printer" with what you want your default printer
	to be.

4.	Shut down the spooler using "/usr/lib/lpshut".

5.	Kill any existing processes that have the name "lpsched"

6.	Restart the spooler using "/usr/lib/lpsched".


This will fix the problem.


JB
-- 
Jonathan Bayer		Intelligent Software Products, Inc.
(201) 245-5922		500 Oakwood Ave.
jbayer@ispi.COM		Roselle Park, NJ   07204    

aryeh@eddie.mit.edu (Aryeh M. Weiss) (08/19/90)

In article <1672@ispi.COM> jbayer@ispi.COM (Jonathan Bayer) writes:
>
>There is a bug I have seen mentioned in the Xenix spooler recently. 
>This is that the spooler seems to stop working on a random basis.  This
>is caused by a race condition in the spooler.  SCO gave me a workaround
>to this a while ago:

Sorry, I just don't believe that this will cure the problem in the
long term.  I have a theory that the real problem is lpsched failing
to remove a certain lockfile, /usr/spool/lpd/lock.  This file gets
created when lpsched has started a specific print job, and gets
removed when that job is done.  (I can accept that a race condition
will result in this file not getting removed.)  It seems that when the
job at the top of the queue gets canceled, lpsched *sometimes* hangs.
I have had the experience of shutting down and restarting lpsched,
only to have it remain hung.  Unfortunately I didn't know about this
lockfile: I had been looking for a lockfile in /usr/spool/lp.  (The
rc.d scripts remove this file --- thus rebooting the system solves the
problem!)

--