On Wed, Mar 10, 2004 at 10:23:21AM -0700, Mark Tamisiea wrote:
> Hi,
> 
> We're using LPRng-3.8.26 and ifhp-3.5.17 on RHE 3.0 (both are compiled
> from source so that we could run both cups and lprng.)  Everything works
> well when jobs are submitted from localhost, including both samba and
> cups submissions that print through lprng.  However, jobs submitted via
> lpr/lp from external hosts (running both Tru64 and Solaris) stall
> temporarily with the following information in status.pr:
> 
> hp: Set_hold_file: LOGIC ERROR- no HF_NAME in job information - [EMAIL PROTECTED]
> cftransfername=cfmyclient.Colorado.EDU
> D=2004-03-09-16:50:19.680
> datafile_count=0
> file_hostname=myclient.Colorado.EDU
> H=myclient.Colorado.EDU
> hold_time=0x0
> job_time=0x404e583b
> job_time_usec=0xa58bc
> Q=hp
> remotehost=myclient.Colorado.EDU
> remoteport=0x3ff
> size=0
> unixsocket=0x0
> update_time=2004-03-09-16:50:19.680 at 2004-03-09-16:50:19.680 ## A=<NULL> number=0 
> pro
> cess=2555
> waiting for subserver to exit at 2004-03-09-16:57:48.102 ## A=<NULL> number=0 
> process=2
> 572
> subserver pid 2579 starting at 2004-03-09-16:57:48.102 ## [EMAIL PROTECTED] number
> =834 process=2579
> 
> As you can see from the last line, eventually, the job does print
> normally.   Any advice on the cause or fix of this temporary failure
> would be greatly appreciated.
> 
> Thanks,
> Mark
> 

It WAS a logic error.  I was checking the wrong value
in src/lpd_rcvjob.c.  Try the following patch:

*** common/lpd_rcvjob.c 2004/02/24 19:37:33     1.68
--- common/lpd_rcvjob.c 2004/03/12 18:26:09
***************
*** 358,364 ****
                if( filetype == CONTROL_FILE ){
                        DEBUGF(DRECV2)("Receive_job: receiving new control file, old 
job.info.count %d, old files.count %d",
                                job.info.count, files.count );
!                       if( job.info.count ){
                                /* we received another control file, finish this job 
up */
                                if( !discarding_large_job ){
                                        if( Check_for_missing_files(&job, &files, 
error, errlen, 0, hold_fd) ){
--- 358,364 ----
                if( filetype == CONTROL_FILE ){
                        DEBUGF(DRECV2)("Receive_job: receiving new control file, old 
job.info.count %d, old files.count %d",
                                job.info.count, files.count );
!                       if( hold_fd > 0 ){
                                /* we received another control file, finish this job 
up */
                                if( !discarding_large_job ){
                                        if( Check_for_missing_files(&job, &files, 
error, errlen, 0, hold_fd) ){
***************
*** 434,460 ****
  
        DEBUGF(DRECV2)("Receive_job: eof on transfer, job.info.count %d, files.count 
%d",
                job.info.count, files.count );
!       if( !discarding_large_job ){
!               if( Check_for_missing_files(&job, &files, error, errlen, 0, hold_fd) ){
!                       goto error;
!               }
!               Set_str_value(&job.info,INCOMING_TIME,0);
!       } else {
!               SNPRINTF( error, errlen)
!                       _("size %0.3fK exceeds %dK"),
!                       jobsize/1024, Max_job_size_DYN );
!               Set_str_value(&job.info,ERROR,error);
!               Set_nz_flag_value(&job.info,ERROR_TIME,time(0));
!               Set_str_value(&job.info,INCOMING_TIME,0);
!               error[0] = 0;
!               if( (status = Set_hold_file( &job, 0, hold_fd )) ){
!                       SNPRINTF( error,errlen)
!                               "Error setting up hold file - %s",
!                               Errormsg( errno ) );
!                       goto error;
                }
-               if( Lpq_status_file_DYN ){ unlink(Lpq_status_file_DYN); }
-               discarding_large_job = 0;
        }
  
   error:
--- 434,462 ----
  
        DEBUGF(DRECV2)("Receive_job: eof on transfer, job.info.count %d, files.count 
%d",
                job.info.count, files.count );
!       if( hold_fd ){
!               if( !discarding_large_job ){
!                       if( Check_for_missing_files(&job, &files, error, errlen, 0, 
hold_fd) ){
!                               goto error;
!                       }
!                       Set_str_value(&job.info,INCOMING_TIME,0);
!               } else {
!                       SNPRINTF( error, errlen)
!                               _("size %0.3fK exceeds %dK"),
!                               jobsize/1024, Max_job_size_DYN );
!                       Set_str_value(&job.info,ERROR,error);
!                       Set_nz_flag_value(&job.info,ERROR_TIME,time(0));
!                       Set_str_value(&job.info,INCOMING_TIME,0);
!                       error[0] = 0;
!                       if( (status = Set_hold_file( &job, 0, hold_fd )) ){
!                               SNPRINTF( error,errlen)
!                                       "Error setting up hold file - %s",
!                                       Errormsg( errno ) );
!                               goto error;
!                       }
!                       if( Lpq_status_file_DYN ){ unlink(Lpq_status_file_DYN); }
!                       discarding_large_job = 0;
                }
        }
  
   error:

-- 
Patrick Powell                 Astart Technologies
[EMAIL PROTECTED]            6741 Convoy Court
Network and System             San Diego, CA 92111
  Consulting                   858-874-6543 FAX 858-751-2435
LPRng - Print Spooler (http://www.lprng.com)

-----------------------------------------------------------------------------
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