Patch Name: PHCO_16106 Patch Description: s700_800 10.20 lpspool subsystem cumulative patch Creation Date: 98/08/05 Post Date: 98/08/10 Warning: 98/08/24 - This Critical Warning has been issued by HP. - PHCO_16106 can cause print requests to fail if the file to be printed is removed before the request is processed by the lp spooler. The print failures may also result in the destination printer being disabled. - The problem is known to affect printing from SAP, and may affect printing from other applications as well. - The problem is due to a change in the way requests are placed in the spool directory. The print request files are created as symbolic links instead of hard links. Thus, if the target of the symbolic link is removed before the request is processed the file does not exist and the request fails. - It is recommended that PHCO_16106 be removed from all systems on which it has been installed. If the patch cannot be removed, as workaround the '-c' option can be used with lp(1) to force lp(1) to copy the file request to the spool directory instead of using symbolic links. It may not be possible to implement this workaround when printing from applications, like SAP. - Patch PHCO_14431 will be re-released until a replacement patch is available. Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: PrinterMgmt.LP-SPOOL Automatic Reboot?: No Status: General Superseded With Warnings Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHCO_16106 Symptoms: PHCO_16106: lpsched deadlocks on remote printers when remote system is down. PHCO_14431: 1. LP spooler needs to support P405 and HP5000D640 model printers. 2. The value of LANG env variable is improperly passed to the model script PHCO_14029: 1. If you submit more than 52 files lp does not remove those above 52. 2. lpsched -v writes strange strings in log file if LANG is set. 3. lpsched -v intermittently stops by SIGSEGV in catgets if LANG is set. PHCO_13133: 1)incomplete lpstat output when -a/-p option used with printer name and class 2)After PHCO_11462, moving request with lpalt leaves data file in req dir PHCO_12894: 1. Jobs submitted to a LP remote printer that points to a "disabled" remote HPDPS printer are discarded. 2. When more than one jobs, whose job sequence numbers are the same, are simultaneously submitted from the same host to the same remote printer through RFC1179 protocol, rlpdaemon(1M) fails to spool the jobs on the remote system due to data/control file name collision. 3. All jobs from any HPDPS printers are spooled under the /usr/spool/lp/request/PDRequest by rlpdaemon(1M). This single PDRequest directory increases the chance of file name collision due to simultaneous job submission. PHCO_11462: 1. Cancelling a lp job with empty control file clears the whole queue. 2. Printer gets disabled on cancelling a printing job. PHCO_10891: 1. "lpstat -i -o" doesn't inhibit the reporting of the remote status if a HPDPS printer name is specified. This problem happens only when the HPDPS patch, PHCO_10608, is installed on the system. Because of this, CDE print manager doesn't work correctly for HPDPS printers. PHCO_10749: 1. LP-spool hang or qstatus corrupt when /var full log says:Bogus request 2. Parent lpsched hangs when lpalt is used to move a request. 3. Model scripts does not handle SIGTERM any more. 4. lpsched introduced 5 sec delay between prints at 10.20 PHCO_8488: 1. lpsched hangs under FIFO full condition 2. Printers go idle even when requests are present in the queue 3. Jobs not printed when remote host(IBM) immediately saps connection. 4. If a BSD system spooler sends a '\001' to rlp(1) after the control file has been sent, rlp(1) simply ignores the '\001' and removes the entry. 5. lp, cancel, and lpstat hang when forwarding jobs or requests to HPDPS. 6. Implicit requirement that a rlpdeamon client's remote printer name must be the same as its local pseudo name. Defect Description: PHCO_16106: lpsched used to hang intermittently for remote requests when remote printer/system was down. PHCO_14431: 1. The model scripts corresponding to P405, HP5000D640 were not there. 2. Since the LANG variable was incorrectly passed to the control file, the "Invalid options" error message was appearing on the banner. PHCO_14029: 1. Spooler was only deleting the data files whose names start with "d". 2. with LANG set, lpsched was improperly handling repeated calls to catgets(). 3. Due to sharing of same fd's of catalogue message files between parent and child processes in lpsched, a SIGSEGV used to cause coredumps intermittently. PHCO_13133: 1) lpstat was not giving the correct output for certain sequences of printer/class lists due to incorrect referencing of both pstatus and qstatus files. 2) lpsched was not clearing the data files present in the spooler directory due to descripencies in the names of these files, caused by the lpalt. PHCO_12894: 1. Jobs submitted to a LP remote printer that points to a "disabled" remote HPDPS printer are discarded. 2. When more than one jobs, whose job sequence numbers are the same, are simultaneously submitted from the same host to the same remote printer through RFC1179 protocol, rlpdaemon(1M) fails to spool the jobs on the remote system due to data/control file name collision. 3. All jobs from any HPDPS printers are spooled under the /usr/spool/lp/request/PDRequest by rlpdaemon(1M). This single PDRequest directory increases the chance of file name collision due to simultaneous job submission. PHCO_11462: 1. Cancelling a lp job with empty control file clears the whole queue. 2. Printer gets disabled on cancelling a printing job. PHCO_10891: 1. "lpstat -i -o" doesn't inhibit the reporting of the remote status if a HPDPS printer name is specified. This problem happens only when the HPDPS patch, PHCO_10608, is installed on the system. Because of this, CDE print manager doesn't work correctly for HPDPS printers. PHCO_10749: 1. LP-spool hang or qstatus corrupt when /var full log says:Bogus request 2. Parent lpsched hangs when lpalt is used to move a request. 3. Model scripts does not handle SIGTERM any more. 4. lpsched introduced 5 sec delay between prints at 10.20 PHCO_8488: 1. lpsched hangs under FIFO full condition 2. Printers go idle even when requests are present in the queue 3. Jobs not printed when remote host(IBM) immediately snaps connection. 4. If a BSD system spooler sends a '\001' to rlp(1) after the control file has been sent, rlp(1) simply ignores the '\001' and removes the entry. 5. lp, cancel, and lpstat hang when forwarding jobs or requests to HPDPS. 6. Implicit requirement that a rlpdeamon client's remote printer name must be the same as its local pseudo name. SR: 4701387050 4701383828 1653245696 1653248195 1653248153 1653235002 1653232694 1653233296 5003347351 4701356097 4701350769 5003359760 1653198119 1653203109 1653208504 5003330688 1653172023 4701323964 5003318188 4701334128 1653261974 Patch Files: /usr/lib/lp/model/HPP405 /usr/lib/lp/model/PCL4 /usr/lib/lp/model/PCL5 /usr/lib/lp/model/colorlaserjet /usr/lib/lp/model/deskjet1600CM /usr/lib/lp/model/hp5000c30 /usr/lib/lp/model/hpC1208a /usr/lib/lp/model/hpd640 /usr/lib/lp/model/laserjet /usr/lib/lp/model/laserjet4 /usr/lib/lp/model/laserjet4Si /usr/lib/lp/model/laserjet4v /usr/lib/lp/model/laserjet5Si /usr/lib/lp/model/laserjetIIISi /usr/lib/lp/model/paintjet /usr/lib/lp/model/paintjetXL300 /usr/lib/lp/model/rmodel /usr/bin/cancel /usr/bin/disable /usr/bin/enable /usr/bin/lpstat /usr/sbin/lpmove /usr/bin/lp /usr/bin/lpalt /usr/lbin/rwrite /usr/sbin/lpadmin /usr/sbin/lpsched /usr/sbin/rcancel /usr/sbin/rlpdaemon /usr/sbin/rlp what(1) Output: /usr/lib/lp/model/HPP405: None /usr/lib/lp/model/PCL4: None /usr/lib/lp/model/PCL5: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/colorlaserjet: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/deskjet1600CM: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/hp5000c30: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/hpC1208a: None /usr/lib/lp/model/hpd640: $Header: hpd640,v 82.1 98/02/24 15:51:13 ssa Exp $ HP-UX 10.x /usr/lib/lp/model/laserjet: None /usr/lib/lp/model/laserjet4: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/laserjet4Si: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/laserjet4v: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/laserjet5Si: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/laserjetIIISi: $Header: PCL5,v 76.2.1.4 98/04/27 19:20:27 ssa Exp $ /usr/lib/lp/model/paintjet: None /usr/lib/lp/model/paintjetXL300: None /usr/lib/lp/model/rmodel: $Header: rmodel,v 72.3.1.2 97/04/28 19:49:14 ssa Exp $ /usr/bin/cancel: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o cancel.o 98/08/05 /usr/bin/disable: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o disable.o 98/08/05 /usr/bin/enable: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o enable.o 98/08/05 /usr/bin/lpstat: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o lpstat.o 98/08/05 /usr/sbin/lpmove: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o lpmove.o 98/08/05 /usr/bin/lp: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o lp.o 98/08/05 /usr/bin/lpalt: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o lpalt.o 98/08/05 /usr/lbin/rwrite: PATCH_10_20: rwrite.o 98/08/05 /usr/sbin/lpadmin: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o lpadmin.o 98/08/05 /usr/sbin/lpsched: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o lpsched.o 98/08/05 /usr/sbin/rcancel: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o rcancel.o 98/08/05 /usr/sbin/rlpdaemon: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o rlpdaemon.o 98/08/05 /usr/sbin/rlp: $Revision: 78.29.1.46 $ PATCH_10_20: hpux_rel.o rlp.o 98/08/05 cksum(1) Output: 483369663 35251 /usr/lib/lp/model/HPP405 3092667237 23718 /usr/lib/lp/model/PCL4 2678772530 51661 /usr/lib/lp/model/PCL5 2678772530 51661 /usr/lib/lp/model/colorlaserjet 2678772530 51661 /usr/lib/lp/model/deskjet1600CM 2678772530 51661 /usr/lib/lp/model/hp5000c30 4158767097 39056 /usr/lib/lp/model/hpC1208a 3155102849 71817 /usr/lib/lp/model/hpd640 3092667237 23718 /usr/lib/lp/model/laserjet 2678772530 51661 /usr/lib/lp/model/laserjet4 2678772530 51661 /usr/lib/lp/model/laserjet4Si 2678772530 51661 /usr/lib/lp/model/laserjet4v 2678772530 51661 /usr/lib/lp/model/laserjet5Si 2678772530 51661 /usr/lib/lp/model/laserjetIIISi 1439765765 6373 /usr/lib/lp/model/paintjet 1811378279 46204 /usr/lib/lp/model/paintjetXL300 332041795 5287 /usr/lib/lp/model/rmodel 3962740454 40960 /usr/bin/cancel 1060851222 24576 /usr/bin/disable 2966312482 16384 /usr/bin/enable 1661107651 49152 /usr/bin/lpstat 140625548 28672 /usr/sbin/lpmove 3605127366 45056 /usr/bin/lp 1252700724 36864 /usr/bin/lpalt 1633516108 16384 /usr/lbin/rwrite 272160486 45056 /usr/sbin/lpadmin 349492933 49152 /usr/sbin/lpsched 1017091771 32768 /usr/sbin/rcancel 943776594 73728 /usr/sbin/rlpdaemon 1722481099 24576 /usr/sbin/rlp Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_8488 PHCO_10749 PHCO_10891 PHCO_11462 PHCO_12894 PHCO_13133 PHCO_14029 PHCO_14431 Equivalent Patches: None Patch Package Size: 820 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHCO_16106 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_16106.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHCO_16106.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHCO_16106. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHCO_16106.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_16106.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None