[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lprng
Subject:    Re: LPRng: Printing to HP Laserjet 4simx hangs with ifhp 3.3.11
From:       jjaddiss () mmm ! com
Date:       1999-12-29 21:52:40
[Download RAW message or body]



In order to deploy the ifhp-3.3.11 code into our production network to
resolve any potential Y2K issues with the (very old) verion that I was
running, I was forced to roll it out as is (was?). So I have not tried to
reproduce this problem recently. Ifhp-3.3.11 is working fine with our
printers (although I had to change the waitend to PS for the 4si because of
hangs in the waitend if I was using PJL - seems the 4simx misses the query
and never responds so it waits for the waitend retry timeout which is way
long.) But that's with debugging turned off (debug=0,trace@).

I'll look into this more when I get back into the office in Jan and any
real Y2K issues have been resolved.

- Justus





papowell@astart.com on 12/27/99 09:33:42 PM

Please respond to lprng@lprng.com


To:   lprng@lprng.com
cc:    (bcc: Justus J. Addiss/HI-Healthinfo/3M/US)
Subject:  Re: LPRng: Printing to HP Laserjet 4simx hangs with ifhp 3.3.11




Any progress on this VERY strange issue?

> From lprng@astart2.astart.com Tue Nov 30 13:44:19 1999
> From: jjaddiss@mmm.com
> To: lprng@lprng.com
> Date: Tue, 30 Nov 1999 16:38:25 -0500
> Subject: Re: LPRng: Printing to HP Laserjet 4simx hangs with ifhp 3.3.11
>
>
>
> Well I'm still stumped. Only the 4simx is hanging so it cannot be
something
> simple in the errormsg.c code because that is common to all printers.
I've
> spent a lot of time disassembling the machine code created from the C
> source and as far as I can tell it is handling the 32 vs. 64 bit INT
issue
> correctly. It mostly uses 64 bit numbers in registers but does 32->64 and
> visa-versa as necessary in the appropriate places by sign extending or
> truncating the register as necessary. It's all done in registers so even
if
> there was a problem it should not be clobbering the stack frames. Even
INT
> variables are pushed and popped as quad-words.
>
> HELP. I fear this is a bug in some alarm code that is popping up in the
> middle of stuff and clobbering stack space at some appartently random
> location. It's not even repeatable. I have proven that a hung ifhp
process,
> when aborted and the printer power cycled, will restart and correctly
print
> the document on the second pass with rest of the LPRng queue unchanged.
The
> other documents in the queue will then print fine after the first one is
> done.
>
> Any other ideas?
>
> - Justus
>
> System is Compaq Tru64 4.0E, gcc 2.8.1, HP 4simx printer with Emulex
NetJet
> card printing to lp=laser6@2501.
>
>
>
>
>
> Richard Hart USG <hart@zk3.dec.com> on 11/16/99 03:48:15 PM
>
>
> To:   Justus J. Addiss/HI-Healthinfo/3M/US
> cc:   hart@zk3.dec.com
> Subject:  Re: LPRng: Printing to HP Laserjet 4simx hangs with ifhp 3.3.11
>
>
>
>
> I can't give you a complete fix for your problem, but maybe I
> can help youfind a solution. This sounds like a typical 64bit clean
> problem. That is, the source code may not be 64 bit clean. I cut the
> routines in question out and created a small test file to try:
>
> #include <unistd.h>
> #include <fcntl.h>
> #include <sys/stat.h>
> #include <sys/types.h>
>
> main()
> {
>     int fd, ret;
>     fd = open ("/dev/tty", O_WRONLY, 0);
>     if (fd > 0)
>         ret = Write_fd_str(fd, "This is a test.\n");
> }
>
>
> /*
>  * Write_fd_str( int fd, char *str )
>  */
>
> int Write_fd_str( int fd, char *str )
> {
>         int len;
>         if( str && *str ){
>                 len = strlen( str );
>                 return (Write_fd_len( fd, str, len ) );
>         }
>         return 0;
> }
>
> int Write_fd_len( int fd, char *str, int len )
> {
>         int i;
>         i = 0;
>         if( str && len ){
>                 while( len > 0 ){
>                         i =  write( fd, str, len );
>                         if( i <= 0 ) return(i);
>                         str += i;
>                         len -= i;
>                 }
>         }
>         return i;
> }
>
> I compiled and ran this using both the gcc compiler and the
> Tru64 C compiler. Both compiled and ran with no hang.
>
> I suggest that you try the tru64 C compiler, and use the -check
> option to check for 64 bit problems, among other things. I suspect
> that you have somehow set the int variable i, to generate a
> 32 bit integer, while the write returns a 64 bit int. If this is
> the case, a change as follows might help:
>
>      i = (int)write(fd, str, len);
>
> There is also probably a gcc option to force ints to be 64 bits
> long, but I'm not sure what it is.
>
> I hope this helps,\
> Richard Hart.


---------------------------------------------------------------------------
--
If you need help, send email to majordomo@lprng.com (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 majordomo@lprng.com
with:                           | example:
subscribe LIST <mailaddr>       |  subscribe lprng-digest list@server.com
unsubscribe LIST <mailaddr>     |  unsubscribe lprng myname@host.org

If you have major problems,  send email to papowell@astart.com with the
word
LPRNGLIST in the SUBJECT line.
---------------------------------------------------------------------------
--







-----------------------------------------------------------------------------
If you need help, send email to majordomo@lprng.com (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 majordomo@lprng.com
with:                           | example:
subscribe LIST <mailaddr>       |  subscribe lprng-digest list@server.com
unsubscribe LIST <mailaddr>     |  unsubscribe lprng myname@host.org

If you have major problems,  send email to papowell@astart.com with the word
LPRNGLIST in the SUBJECT line.
-----------------------------------------------------------------------------

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic