Patch Name: PHNE_25075 Patch Description: s700_800 11.04 (VVOS) Streams Pty cumulative patch Creation Date: 01/10/09 Post Date: 01/10/22 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Streams-TIO.STRTIO-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_25075: PANIC Based on HP-UX Patch PHNE_25385: PANIC Based on HP-UX Patch PHNE_24100: PANIC PHNE_22824: PANIC MEMORY_LEAK HANG Based on HP-UX Patch PHNE_22086: MEMORY_LEAK Based on HP-UX Patch PHNE_21433: PANIC HANG PHNE_21203: MEMORY_LEAK Based on HP-UX Patch PHNE_19616: MEMORY_LEAK PHNE_19242: PANIC Based on HP-UX Patch PHNE_18878: PANIC Category Tags: defect_repair enhancement general_release critical panic halts_system memory_leak Path Name: /hp-ux_patches/s700_800/11.X/PHNE_25075 Symptoms: PHNE_25075: Repackaged HP-UX patch PHNE_25385 for VVOS Based on HP-UX patch PHNE_25385: System panics in ldtty_intimeout: the message is panic in ldtty_intimeout+0x18 Based on HP-UX patch PHNE_24100: System panics in ldtty_intimeout: the message is panic in ldtty_intimeout+0x18 : an ldtty timer deferenced a closed queue PHNE_22824: Repackaged HP-UX patch PHNE_22086 for VVOS Based on HP-UX patch PHNE_22086: System hangs due to memory starvation when using pckt module. Based on HP-UX patch PHNE_21433: 1) System hangs during shutdown. 2) System panic when an application is transfering large amount of data under raw mode. PHNE_21203: Repackaged HP-UX patch PHNE_20094 for VVOS Based on HP-UX patch PHNE_20094: When 32bit user application on 64bit platform uses getmsg() on Streams Pty, a 64bit data structure is returned instead of expected 32bit data structure. Based on HP-UX patch PHNE_19616: 1) Streams pty causes memory leak when end-user does not follow the operation procedure of master/slave pair. 2) Streams pty in UP Emulation mode leads worse performance to applicatons based on Streams Pty, such as rlogind. 3) System winds-down to what appears to be a complete system hang. PHNE_19242: Repackaged HP-UX patch PHNE_18878 for VVOS Based on HP-UX patch PHNE_18878: Streams pty will panic under race conditions between master and slave drivers on MP systems. Based on HP-UX patch PHNE_14976: Streams pty did not work in UTF8 environment. This patch is an enhancement that provides UTF8 support Based on HP-UX patch PHNE_16155: System panic type 15 in pckt_rsrv in the Streams pty code. Defect Description: PHNE_25075: Repackaged HP-UX patch PHNE_25385 for VVOS Based on HP-UX patch PHNE_25385: Race window between ldtty_close and ldtty_intimeout Based on HP-UX patch PHNE_24100: A timer was left active after a close. PHNE_22824: Repackaged HP-UX patch PHNE_22086 for VVOS Based on HP-UX patch PHNE_22086: Memory leak when processing M_FLUSHR message in pckt module. Resolution: Free the undeallocated message used in processing M_FLUSHR message in pckt module. Based on HP-UX patch PHNE_21433: 1) Application may hang in ldtty close if there is some data inside ldtty module to drain. Shutdown thread is blocked and hangs when it tries to access the driver under ldtty module. 2) Race condition in ldtty module causes ldtty_sendraw to reuse a message block that has already been freed. Resolution: 1) Inside ldtty close routine, we add a call to service routine to drain outstanding data. 2) When a possible race condition is detected, ldtty_sendraw makes sure that it won't use the old message buffer which may have already been freed. PHNE_21203: Repackaged HP-UX patch PHNE_20094 for VVOS Based on HP-UX patch PHNE_20094: When transparent ioctl is called, a M_IOCTL message is forwarded to Streams Pty master side. The first message block of M_IOCTL message, which contains iocblk data structure, is of different size on 32 and 64bit platform. Resolution: Add a register function in ptm driver. At STH, when a 32bit application is detected on 64bit platform, the registered function is called to convert 64bit iocblk data structure to 32bit in M_IOCTL msg. Based on HP-UX patch PHNE_19616: 1) When the slave driver is opened before the master driver, a preallocated message block (eof_msg_mp) is not freed before return error code. 2) UP Emulation mode of Streams Pty Driver binds Streams Pty based applications to monarch processor and causes performance problem. 3) High priority messages are queued in PCKT module by mistake. When this message are not processed in time, the module begins consuming huge memory. Resolution: 1) Check existence of master driver as soon as we try to open slave driver. Allocate eof_msg_mp only if master is already opened. 2) Streams Pty module now runs at QueuePair sync level, using shared/exclusive lock to protect critical data structure shared among master/slave drivers. 3) Process high priority msg in pckt_rput() function. PHNE_19242: Repackaged HP-UX patch PHNE_18878 for VVOS Based on HP-UX patch PHNE_18878: The panic was caused by the master and slave drivers running on different processors and trying to access the same data structure. Resolution: The fix was to mutually exclude the master and slave drivers so that they cannot run at the same time and thus avoid the race condition. Based on HP-UX patch PHNE_14976: This patch is an enhancement for UTF8 support for STREAMS pty line discipline. Based on HP-UX patch PHNE_16155: The type 15 panic was caused the b_rptr pointer in the mblk being overwritten by a bad value when M_FLUSH was being processed and the system ran out of memory. SR: 8606207776 4701402487 4701402693 5003429548 5003448738 5003427641 8606103315 8606128396 8606134024 8606152552 8606187489 Patch Files: Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libstrtio.a Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libstrtio.a Streams-TIO.STRTIO-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64, v=HP: /usr/conf/strtio/pty.h /usr/include/sys/eucioctl.h OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(strtio.o) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(strtio.o) what(1) Output: Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libstrtio.a: PATCH_11.00: pty.o 1.6.118.4 00/03/29 PHNE_21433 PATCH_11.00: pckt.o 1.4.118.5 00/07/25 PHNE_22086 PATCH_11.00: ldtty_euc.o 1.5.118.2 98/05/08 PHNE_1 4976 ldtty.c $Date: 2001/09/26 13:36:18 $Revision: r11ros /10 PATCH_11.00 (PHNE_25385) Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libstrtio.a: PATCH_11.00: pty.o 1.6.118.4 00/03/29 PHNE_21433 PATCH_11.00: pckt.o 1.4.118.5 00/07/25 PHNE_22086 PATCH_11.00: ldtty_euc.o 1.5.118.2 98/05/08 PHNE_1 4976 ldtty.c $Date: 2001/09/26 13:36:18 $Revision: r11ros /10 PATCH_11.00 (PHNE_25385) Streams-TIO.STRTIO-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64, v=HP: /usr/conf/strtio/pty.h: None /usr/include/sys/eucioctl.h: eucioctl.h 1.1 8/31/90 OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(strtio.o): None OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(strtio.o): None cksum(1) Output: Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 2259497368 90956 /usr/conf/lib/libstrtio.a Streams-TIO.STRTIO2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 4103956710 195422 /usr/conf/lib/libstrtio.a Streams-TIO.STRTIO-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64, v=HP: 1608656746 15146 /usr/conf/strtio/pty.h 3341160391 2931 /usr/include/sys/eucioctl.h OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 1147625056 86052 /usr/conf/lib/libhp-ux.a(strtio.o) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 3295844886 105712 /usr/conf/lib/libhp-ux.a(strtio.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_19242 PHNE_21203 PHNE_22824 Equivalent Patches: PHNE_25385: s700: 11.00 s800: 11.00 Patch Package Size: 530 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 PHNE_25075 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_25075.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_25075. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHNE_25075.depot WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHNE_25075.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_25075.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_25075.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None