Version LPRng-3.8.11 - Thu Apr  4 07:49:30 PST 2002
 
  Subtle problem when a filter fails and produces zero
  length file.  This is now treated as a JABORT level
  error.  The problem is that RFC1179 treats a file
  length as 0 as a 'read until end of file on socket'.
  This means that folks who have filters that WILL produce
  zero length files need to do something to produce at
  least one byte of 'dummy' output.
    (Brought to my attention by:
      Sergij Kovalenko <[EMAIL PROTECTED]>)

> From [EMAIL PROTECTED] Wed Apr  3 01:30:01 2002
> Date: Wed, 03 Apr 2002 10:11:25 +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] 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.
-----------------------------------------------------------------------------

Reply via email to