Bug 5835
| Summary: | Remote printing problem with lpd | ||
|---|---|---|---|
| Product: | [Retired] Red Hat Linux | Reporter: | marinell |
| Component: | lpr | Assignee: | Bill Nottingham <notting> |
| Status: | CLOSED ERRATA | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.1 | CC: | brown9, eloranta, rvokal, steveh |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | i386 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 1999-10-20 19:46:12 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
marinell
1999-10-11 15:08:59 UTC
Can you try the lpr RPMs at http://people.redhat.com/notting/lpr/ -or- ftp://people.redhat.com/notting/lpr/ and let me know if they work for you? OK, silly question; lpr was restarted after install, correct? Are there stale print files hanging around in the queue on the clients? What does the /etc/printcap on the clients look like? What sort of print server is the main server? I had the same problem, upgrading with the RPM listed below worked. *** Bug 5697 has been marked as a duplicate of this bug. *** with lpr-0.41-2 package distributed with rh6.1 the network printing does not work. The jobs go to the queue on the server but never come out (most likely due to corrupt control files originating from the client - see below). It appears that the problem is in lpd/printjob.c in function sendit(). The bug is somehow related to the creation of the control file copy. If I remove the control file copy code (which is forced in the current version) then the printing begins to work. ------- Additional Comments From notting 10/07/99 17:33 ------- Could you try the lpr package from Raw Hide (ftp://ftp.redhat.com/pub/rawhide/) and let us know if that works better for you? Remote printing works OK here... ------- Additional Comments From 10/08/99 03:54 ------- I had the same problem printing from a 6.1 box to a 6.0 box. after downgrading lpr to the package in 6.0, everything works. I use hosts.equiv authorization on the server. ------- Additional Comments From eloranta 10/08/99 03:58 ------- Using lpr-0.41-3 from rawhide solves the problem here. ------- Additional Comments From stoty 10/08/99 04:07 ------- I confirm, lpr-0.41-3 solves this problem for me, too. ------- Additional Comments From steveh.edu 10/08/99 04:15 ------- lpr-0.41-3 only partially fixes the problem. The current solution will not work for multiple copies. ------- Additional Comments From steveh.edu 10/08/99 04:19 ------- Here is what I think is a more elegant solution to the problem. I'm not sure I can paste a patch on this little box on the bugtraq web page, but here goes... (I'm also submitting a similar patch to Debian lpr, which is also based off of Redhat's 0.41 lpr; I'm actually a Debian user <grin>). If this doesn't paste well and you're interested in it, email me privately and I'll resend it. --- ../lpr-0.41/lpd/printjob.c Wed Sep 29 13:05:11 1999 +++ lpd/printjob.c Fri Oct 8 03:45:14 1999 @@ -756,7 +756,6 @@ sendit(file) int ifchild, pid; int sendresult; int tmpmask; - int numcopies=0; int ii; @@ -875,16 +874,22 @@ sendit(file) strcpy(last, line); /* handle multiple copies */ - while (i = getline(cfp)) + while (i = getline(cfp)) { + if (dup_cfp) + fprintf(dup_cfp, "%s\n", line); if (strcmp(last, line)) break; - else - numcopies++; + } /* msf - here is where we hack in IF support */ /* will only run the IF, no other filters */ /* will be run. */ + /* This hack will work for multiple files only */ + /* if the 'f' lines are separated by at least */ + /* one non-'f' line (i.e. a U or N line) due to */ + /* the multiple copies getline() while loop */ + /* right above this comment. */ if (IF != NULL && last[0] == 'f') { memcpy(tmpfile, last+1, 7); @@ -895,11 +900,6 @@ sendit(file) /* Nasty trick of the day, to attempt * to be RFC compliant */ rename(last+1,tmpfile); - /* we make a new f and U entry for remote cfp */ - - for (;numcopies>0;numcopies--) - fprintf(dup_cfp, "f%s\n",last+1); - fprintf(dup_cfp, "U%s\n",last+1); fi = open(tmpfile, O_RDONLY); ifi = open (last+1,O_WRONLY|O_CREAT|O_TRUNC, 0664); @@ -918,11 +918,6 @@ sendit(file) /* wait on it to finish */ waitpid(ifchild, NULL, 0); } - else - { - if (dup_cfp) - fprintf(dup_cfp, "%s\n", line); - } sendresult = sendfile('\3', last+1); ------- Additional Comments From notting 10/08/99 13:37 ------- OK, could you try the lpr-0.42-1 RPMs at ftp://people.redhat.com/notting/lpr/ -or- http://people.redhat.com/notting/lpr/ to make sure it still works for everyoone? It checks out fine here... ------- Additional Comments From eloranta 10/09/99 11:23 ------- lpr-0.42-1 works ok here. ------- Additional Comments From 10/14/99 06:45 ------- I had the same problem. lpr-0.42-1 seems to fix it. This should be fixed in the lpr-0.43-2 errata release. I'm also experiencing problems printing from an RH 6.0 -> 6.1 upgraded
system to a centralized Windows NT print server providing lpd
services.
Upgraded to lpr-0.43-2 with no success. Downgraded to lpr RPM shipped
on RH 6.0 CD with no success either. Installed 0.43-2 again, removed
all entries from /etc/printcap and deleted all files and dirs in
/var/spool/lpd. Used printtool to create new queue for remote printer
that worked before upgrade. Print jobs still refuse to move from
local system to remote system.
lpq returns:
brown9@splat:~ $ lpq
splat.niehs.nih.gov: Warning: no daemon present
Rank Owner Job Files Total
Size
1st root 0 ... 16408
bytes
Windows NT LPD Server
Printer \\157.98.XX.YY\bigelow
Owner Status Jobname Job-Id Size Pages
Priority
----------------------------------------------------------------------------
and
/var/log/messages receives:
Oct 19 13:27:53 splat lpd[29888]: restarting lp
Oct 19 13:27:53 splat lpd[29888]: lp: status: Permission denied
when I use lpc to restart the queues.
What's the permissions on the spool directory? Permissions and ownership are as follows: /var/spool/lpd: drwxrwxr-x 3 root daemon 1024 Oct 19 13:27 lpd/ /var/spool/lpd/* drwxr-xr-x 2 root lp 1024 Oct 19 13:27 lp/ -rw-r--r-- 1 root root 6 Oct 19 13:27 lpd.lock Are there any lpd processes running at all? What happens if you do /etc/rc.d/init.d/lpd restart, as opposed to restarting with lpc? ------- Additional Comments From 10/19/99 18:07 ------- here are the cf spool files on a remote system that the redhat system is spooling to. 35 works 41 and 43 do not. notice the missing H from the non-working control files. according to rfc1179 this is a required field. hummmm... 35 -------- Hbaur Pecb Jprintcap Cbaur Lecb K1 O -oBSDJprintcap -oBSDCbaur FdfA025baur fdfA025baur UdfA025baur N/etc/printcap 41 ------ Proot Jprintcap UdfA006 N/etc/printcap 43-1 ----- Proot Jtestpage.asc B K1 O -oBSDJtestpage.asc FdfA005 fdfA005 UdfA005 N/usr/lib/rhs/rhs-printfilters//testpage.asc Grr. Arrg. Typo. Fixed in lpr-0.43-3. Running /etc/rc.d/init.d/lpd restart gets the same error 'lpc restart
all':
from /var/log/messages:
Oct 20 07:40:25 splat lpd: lpd shutdown succeeded
Oct 20 07:40:26 splat lpd: lpd startup succeeded
Oct 20 07:40:29 splat lpd[15972]: restarting lp
Oct 20 07:40:29 splat lpd[15972]: lp: status: Permission denied
Immediately after the restart lpq shows:
brown9@splat:/var/spool/lpd $ lpq
splat.niehs.nih.gov: sending to print.niehs.nih.gov
Rank Owner Job Files Total
Size
1st brown9 1 foo 1201
bytes
Windows NT LPD Server
Printer \\157.98.XX.YY\bigelow
Owner Status Jobname Job-Id Size Pages
Priority
----------------------------------------------------------------------------
and then it shows:
brown9@splat:/var/spool/lpd $ lpq
splat.niehs.nih.gov: Warning: no daemon present
Rank Owner Job Files Total
Size
1st brown9 1 foo 1201
bytes
Windows NT LPD Server
Printer \\157.98.XX.YY\bigelow
Owner Status Jobname Job-Id Size Pages
Priority
----------------------------------------------------------------------------
Please disregard my last update. I just installed lpr-0.44-1 from
updates.redhat.com and am now getting the following when I
'/etc/rc.d/init.d/lpd restart'
/var/log/messages gets:
Oct 20 07:57:36 splat lpd: lpd shutdown succeeded
Oct 20 07:57:36 splat lpd: lpd startup succeeded
and lpq now reports:
brown9@splat:~ $ lpq
splat.niehs.nih.gov: Warning: lp is down: sending to
print.niehs.nih.gov
splat.niehs.nih.gov: Warning: no daemon present
Rank Owner Job Files Total
Size
1st brown9 1 foo 1201
bytes
2nd brown9 2 netscape.ps 27479
bytes
Windows NT LPD Server
Printer \\157.98.XX.YY\bigelow
Owner Status Jobname Job-Id Size Pages
Priority
----------------------------------------------------------------------------
The cf* files now have a proper 'H' line.
Running /etc/rc.d/init.d/lpd restart gets the same error 'lpc restart
all':
from /var/log/messages:
Oct 20 07:40:25 splat lpd: lpd shutdown succeeded
Oct 20 07:40:26 splat lpd: lpd startup succeeded
Oct 20 07:40:29 splat lpd[15972]: restarting lp
Oct 20 07:40:29 splat lpd[15972]: lp: status: Permission denied
Immediately after the restart lpq shows:
brown9@splat:/var/spool/lpd $ lpq
splat.niehs.nih.gov: sending to print.niehs.nih.gov
Rank Owner Job Files Total
Size
1st brown9 1 foo 1201
bytes
Windows NT LPD Server
Printer \\157.98.XX.YY\bigelow
Owner Status Jobname Job-Id Size Pages
Priority
----------------------------------------------------------------------------
and then it shows:
brown9@splat:/var/spool/lpd $ lpq
splat.niehs.nih.gov: Warning: no daemon present
Rank Owner Job Files Total
Size
1st brown9 1 foo 1201
bytes
Windows NT LPD Server
Printer \\157.98.XX.YY\bigelow
Owner Status Jobname Job-Id Size Pages
Priority
----------------------------------------------------------------------------
Hmm... could you strace -f the running lpd process and see what happens when it tries to restart to send the data? Sent email to notting containing output of 'strace -f -pLPDPID'. |