Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!nike!ucbcad!ucbvax!gouldsd.UUCP!mjranum From: mjranum@gouldsd.UUCP (Marcus J. Ranum) Newsgroups: mod.computers.laser-printers Subject: (none) Message-ID: <8608261811.AA04140@gouldsd.uucp> Date: Tue, 26-Aug-86 14:11:24 EDT Article-I.D.: gouldsd.8608261811.AA04140 Posted: Tue Aug 26 14:11:24 1986 Date-Received: Wed, 27-Aug-86 20:31:39 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 49 Approved: laser-lovers@washington.arpa >We're having a problem with postscript printers hanging >several times a day while printing (usually trivial one >page) troff output. We're running Transcript 2.0 on a >Vax 780 running 4.2bsd. The problem was observed on a >Qms800, but we recently substituted a LaserWriter with >the same results. >From the log we observe the following psif: done sending waiting e0 i0 0 0 >>%%[ Error: undefined; OffendingCommand: BP ]%% >>%%[ Flushing: rest of job (to end-of-file) will be ignored ]%% psif: listener saw eof, signaling psif: FA 0 2 0 psif: FA 0 2 0 ad infinitum We had a problem similar to yours. The problem was cleared up after the proper error-handler routine was installed. As far as I know, you should have gotten that with Postscript. Make sure it's downloaded every time the printer is booted. Put it in crontab. The error handler (to the best of my knowledge) makes sure the filters exit properly in an error condition. It should be named ehandler.pro - it's nice in that it dumps a hardcopy of your current stack et al to the printer. Most importantly, it sends an exit code to the filters telling them to go away. As to what's causing the error: Our .pro files are different, so this doesn't apply 100%, but we had a similar problem with the .pro files we used. Look at the definition for BP in pscat.pro /BP{save/catsv exch def 0 ... etc This is saving an object off the stack, named catsv, and putting it in a dictionary area. EP (end page) then tries to pop it back off. When last page tries to restore it, it's already popped, and bombs. What you have to do is as follows: change the definition (in pscat.pro) of EP so that it checks to see if BP is saved before trying to pop it off the stack. the new definition for EP should look like this: /EP{/catsv where {catsv restore showpage}if }def This tells it to Look for catsv and to only restore it if it is really there. If that doesn't work, try taking a patch cord and hooking it to a terminal and the laserwriter, and snooping on what gets sent. I think you'll find that on the last page EP is called twice in a row. Good luck. mjr