Patrick Powell wrote: > > From [EMAIL PROTECTED] Tue Apr 2 01:53:54 2002 > > Date: Tue, 02 Apr 2002 10:50:07 +0200 > > From: Sergij Kovalenko <[EMAIL PROTECTED]> > > To: [EMAIL PROTECTED] > > Subject: Re: LPRng: Bug: blocking in queue whith filter producing no output > > > > Patrick Powell wrote: > > > > > > From [EMAIL PROTECTED] Wed Mar 20 05:59:18 2002 > > > > Date: Wed, 20 Mar 2002 14:00:27 +0100 > > > > From: Sergij Kovalenko <[EMAIL PROTECTED]> > > > > To: [EMAIL PROTECTED] > > > > Subject: LPRng: Bug: blocking in queue whith filter producing no output > > > > > > > > Hello Patrick, > > > > > > > > Text files are sent in a bounce queue in which they are processed using a >filter, then files are > > > > sent in other queue. > > > > If the filter in bounce queue produces no output, lpd tries to send this >printing job, which > > > > includes zero length data file, to the next queue. Transmition of zero >length data file causes > > > > blocking of this queue. > > > > > > > > 2 functions are involved in this blocking: Link_send() and Link_file_read() . > > > > > > > > Link_send() > > > > 1. transmits 0 bytes with 'ack', it seems there no actions in depth of TCP/IP. > > > > 2. waits to read 'ack'. > > > > > > > > Link_file_read(): > > > > 1. waits to read 0 bytes. > > > > > > > > > > > > Thanks, > > > > > > > > Sergiy Kovalenko > > > > Firmengruppe Dr. Gueldener > > > > > > You are correct. Now the problem is: > > > > > > When a filter produces 0 bytes of output, is this an error? > > > > > > OR is it correct operation and the job should be discarded? > > > > > > OR just the file in the job should be discarded? > > > > > > I suggest treating this as a catastrophic error and abort the job with > > > a fatal (JABORT) status. > > > > > > > It would be better to treat operation as correct and just the file in the job >should be discarded. If > > all files produces no output, is it correct operation and the job should be >discarded. > > For example in some cases we have a job with 3 files, but only 1 file produces >output. Other files > > are needed by filter to process the main file. > > May be for other people it would be useful to treat the job as fatal. A >configuration flag for > > queue/lpd could be used to distinguish different requirements. > > > > Hmm... this is a bit difficult to do, especially if you have sent > the control file to the other end. Now you have some zero length files > to send. You cannot 'unsend' the control file and replace it. > You CAN abort the sending of the job. > > I spent quite a while thinking about this, and plan to > implement the following: > > a) :lpd_bounce flag set > This causes all filter output to be concatenated to a single file. > If the output file is 0 length, terminate operation with > a JABORT. > > b) :lpd_bounce flag not set > Individual files are processed. If any one of them is zero length, > terminate operation with a JABORT. > > This appears to be in agreement with your suggestions.
It is OK! Best regards, Sergiy Kovalenko Firmengruppe Dr. Gueldener ----------------------------------------------------------------------------- YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST The address you post from MUST be your subscription address If you need help, send email to [EMAIL PROTECTED] (or lprng-requests or lprng-digest-requests) with the word 'help' in the body. For the impatient, to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED] with: | example: subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED] unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED] If you have major problems, send email to [EMAIL PROTECTED] with the word LPRNGLIST in the SUBJECT line. -----------------------------------------------------------------------------
