Patch Name: PHNE_28525 Patch Description: s700_800 11.00 Cumulative STREAMS Patch Creation Date: 04/06/15 Post Date: 04/06/28 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Streams.STREAMS-32ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Streams.STREAMS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Streams.STREAMS-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Streams.STREAMS-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_28525: PANIC HANG PHNE_28524: HANG MEMORY_LEAK PHNE_27902: HANG PHNE_27651: PANIC MEMORY_LEAK HANG PHNE_27424: PANIC HANG PHNE_26906: PANIC PHNE_26526: PANIC HANG PHNE_25440: PANIC MEMORY_LEAK PHNE_25116: PANIC PHNE_24099: PANIC MEMORY_LEAK PHNE_23121: HANG PHNE_22381: HANG PANIC PHNE_22129: HANG PHNE_21676: PANIC PHNE_21584: PANIC PHNE_21398: HANG PHNE_20316: PANIC HANG MEMORY_LEAK CORRUPTION PHNE_20008: PANIC HANG PHNE_18972: PANIC HANG PHNE_18075: PANIC PHNE_17904: PANIC HANG PHNE_17051: PANIC PHNE_16732: PANIC PHNE_16290: HANG PANIC PHNE_15612: HANG PANIC PHNE_14706: PANIC PHNE_14192: CORRUPTION Category Tags: defect_repair enhancement general_release critical panic halts_system corruption memory_leak Path Name: /hp-ux_patches/s700_800/11.X/PHNE_28525 Symptoms: PHNE_28525: 1. System panic with the following stack trace. JAGae65651 post_hndlr+0xc50 vm_hndlr+0x360 bubbledown prf+0x1a20 printf+0xa0 kmem_arena_panic+0x450 kfree+0x160 q_free+0xa0 osr_pop_subr+0x8c0 osr_close_alive_subr+0x670 dmodsw_set_alive+0x220 sad_wput+0x1550 putnext+0x100 wait_iocack+0x100 str_trans_ioctl+0x6b0 hpstreams_ioctl_int+0x220 hpstreams_ioctl+0xa0 spec_ioctl+0x480 vno_ioctl+0x2d0 ioctl+0x160 syscall+0x1990 2. System panics due to memory corruption in the STREAMS message block structure(b_datap = 0) with the following stack trace. JAGae75384 kmem_arena_panic+0x2e0 kmem_chk_poison+0x110 allocb_dupb+0xaf0 tcp_wput+0xa80 putnext+0x100 streams_write_uio+0x1250 sosend+0x4320 sendit+0x610 send+0xb0 3. Multithreaded STREAMS UP emulated driver hangs on thread exit with the following stack trace. JAGae65088 _switch+0xc4 thread_exit+0x1e8 thread_process_suspend+0x188 issig+0x2a4 syscall+0x8f0 syscallinit+0x554 4. NFS client hangs with the following stack trace when it accesses an mmap'd memory. JAGae80111 _swtch+0xc4 _sleep_one+0x3d0 ksleep_one+0x168 hp_cv_timedwait_sig+0x70 clnt_cots_kcallit+0x6bc rfscall+0x27c rfs3call+0x78 nfs3_getattr_otw+0x8c nfs3getattr+0x148 nfs3_getattr+0x88 nfs_pagein+0x108 virtual_fault+0x164 vfault+0x14c trap+0x5e4 thandler+0xd20 copyin+0x80 hpstreams_write_int+0x288 hpstreams_write+0x2c spec_rdwr+0x160 vno_rw+0x1ac write+0x108 syscall+0x750 syscallinit+0x554 5. System panic for unaligned destination address with the following stack trace. JAGae32875 panic+0x6c pdexchange_pages+0x310 luserremap+0x794 remapout+0x11c hpstreams_read_int+0xb84 streams_read_uio+0x28 soreceive+0x97c soo_rw+0x40 rwuio+0xe4 readv+0xe0 syscall+0x204 syscallinit+0x554 6. System panics with the following stack trace when a UP LAN driver is linked under an IP Multiplexor. JAGae79895 panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 kgdb_pre_int+0x1d8 skip_int_save_crs2_0+0x38 put_release2+0xc8 ip_rput_local+0x7bc ip_rput+0x184 putnext+0xcc putnext2+0x48 hp_dlpi_mblk_fast_in+0x408 hp_dlpi_mblk_intr_put+0x91c streams_put+0xdc streams_put2+0x58 hp_dlpi_mblk_intr+0x190 gelan_receive_pkts+0x21c gelan_isr+0xc4 sapic_interrupt+0x2c mp_ext_interrupt+0x26c kgdb_pre_int+0x158 skip_int_save_crs2_0+0x38 pset_idle_loop+0x874 idle+0x114 swidle_exit+0x0 7. Potential panic or hang in kernel subsystems using poll() path. JAGae98364 PHNE_28524: 1. Memory leak if a stream is processing an IOCTL and a second, unexpected M_PCPROTO message arrives at the stream head before the first one is processed. JAGae50568 2. Application hang in _csq_acquire() with following stack trace. JAGae54549 _swtch+0xc4 _sleep+0x3f0 _csq_acquire+0x88 streams_mpsleep+0x584 SV_WAIT+0x24 tcp_close+0x650 close_wrapper+0x38 csq_protect+0x11c osr_pop_subr+0x218 osr_close_subr+0xe00 hpstreams_close_int+0x300 streams_close+0x14 soclose+0xec soo_close+0x90 closef+0x64 close+0x90 syscall+0x62c $syscallrtn+0x0 PHNE_27902: 1. NFS client hangs with the following stack trace when it accesses an mmap'd file by writing to the controlling terminal and the NFS server is not responding. _swtch+0xd4 _sleep+0x154 _csq_acquire+0xdc hpstreams_option1+0x48c prf_putchar+0x2a0 prf+0xd70 uprintf+0x50 rfscall+0x538 rfs3call+0x78 nfs3read+0xf4 nfs3_do_bio+0xf0 nfs_strat_map+0x3c nfs_strategy+0x3cc nfs3_strategy+0x1c asyncpageio+0xb0 syncpageio+0x84 nfspgin_io+0xf8 nfs_pagein+0x57c virtual_fault+0x1b4 vfault+0x118 trap+0x664 nokgdb+0x8 copyin+0x7c hpstreams_write_int+0x634 hpstreams_write+0x2c spec_rdwr+0x180 vno_rw+0x1d4 write+0x104 syscall+0x6f8 $syscallrtn+0x0 JAGae47252 2. t_accept() returns TBADSEQ instead of TLOOK in some situations when a connect or disconnect indication is pending on the listen endpoint. This can cause nfsd to terminate after writing the following message to syslog: "All transports have been closed with errors. Exiting." JAGae31270 PHNE_27651: 1. Potential memory leak or deadlock in t_klook(). This can cause a system hang or panic because the system is out of memory or data structure locks are held too long. JAGae13713 2. Enhancement is needed in t_ksndrel() to bypass data queue flow-control in non-blocking mode. This will enable future improvements in the close() system call. JAGae14955 3. Memory leak is observed when dupb() and pullupmsg() is done on an unaligned message. JAGae34924 4. rpcinfo command hangs when specified without options. JAGad30091 PHNE_27424: 1. CPU hang in str_timeout() with following stack trace. streams_untimeout+0x98 J3525_F_StopPort+0xbc J3525_F_Stop+0xc0 hd_stop+0x44 wanwput+0xf24 csq_turnover_with_lock+0x84 streams_put+0x258 wan_disconnect+0xec J3525_F_VHSI_ModemLineTimeOut+0xd04 str_timeout+0xb8 invoke_callouts_for_self+0xc0 sw_service+0xb0 JAGae29704. 2. Data page fault panic with following stack trace. panic+0x4d0 bad_news+0x580 bubbledown+0x0 tioctl_sleep+0x144 tcp_wput_proto+0x180 tcp_wput+0x1a30 csq_turnover_with_lock+0xf0 puthere+0x240 JAGae25712. 3. System hangs in hpstreams_option1() with following stack trace. hpstreams_option1+0x664 prf_putchar+0x31c prf+0xb4c uprintf+0x50 vx_common_msgprint+0x374 vx_umsgprint+0x84 vx_nospace+0xc0 vx_zero_alloc+0x468 vx_alloc_clear+0x33c vx_write1+0x700 vx_rdwr+0x168 JAGad41710 PHNE_26906: 1. System panics when a NULL pointer is dereferenced in hpstreams_select(). JAGae28460 PHNE_26526: 1. UP emulation stream panics in streams_uniput() due to race condition in STREAMS close path. JAGae16121 panic+0x14 report_trap_or_int_and_panic+0x4c interrupt+0x1ec $ihndlr_rtn+0x0 streams_uniput+0x6c invoke_callouts_for_self+0xac sw_service+0x94 mp_ext_interrupt+0x108 ivti_patch_to_nop3+0x0 2. In a multi-threaded socket application, a thread doing soaccept() hangs forever. JAGae14249 PHNE_25440: 1. STREAMS tty M_HANGUP message is not UNIX95 compliant. JAGad84809 2. System hangs due to memory starvation when t_klisten() fails due to error conditions. JAGae01950 3. System panics when patch PHNE_25116 is used with non-socket drivers, such as systems running the SNAplus2 HP-to-IBM Networking software. JAGae09306 panic+0x14 report_trap_or_int_and_panic+0x84 trap+0x4b8 nokgdb+0x8 sth_rput+0x1cc putnext+0xcc 4. One file has incorrect file permissions. JAGad77575 PHNE_25116: 1. System panic caused by memory corruption when two instances of freeb() free the same block of kernel allocated memory. JAGad50215 PHNE_24099: 1. System panics due to race condition in the unweld path. JAGad40848 2. poll() times out immediately when timeout arg is set to INT_MAX. JAGad56971 3. Potential memory leak in hpstreams_option1(). This did not cause any external symptoms. JAGad45190 4. Inclusion of evp_kernel.h in streams header file could cause the build to fail. JAGad69198 5. Missing first telnet prompt while telnet'ing to the BSD 4.3 Server. JAGad39478 6. Enhancement to enable dequeueing of poll_s structures for future improvements to the select(2) system call. JAGad15265 7. A process running in the background gets terminated intermittently when it reads from dtterm. JAGad25743 8. A process running in the background gets terminated when it writes to dtterm. This requires "tostop" terminal setting ON. JAGad57981 PHNE_23714: 1. Added support for new Event Port driver. JAGad65762 PHNE_23121: 1. remsh(1) hangs in shutdown(2) when the stream is flow-controlled. JAGad36101 PHNE_22566: 1. Some 3rd-party streams modules cannot recognize _IOR ioctls(). JAGad28107 2. poll() returns an unexpected non-zero value when connect() had been called for a socket in non-blocking mode and the connection has not yet been established. This causes a subsequent call to connect() to set errno to EALREADY unexpectedly. JAGad43870 PHNE_22381: 1. Some of the NFS threads loop indefinitely on streams_poll() even when data is available at the stream head. JAGad15958 2. Pass third argument to fo_select due to a FS patch. JAGad27893 3. System panic with data page fault in canput(). JAGad21578 PHNE_22129: 1. When a broadcast storm occurs on 4 or more Gigabit ports the system hangs. JAGad09699 2. When two user processes open the same device number at the same time, the driver may be given different stream head addresses when it is expecting the same stream head address for both. JAGad00967 3. Spinlock held too long is detected in processing per stream SPU queue of STREAMS. This is a performance problem and may result in Service Guard time-out. JAGad16470 PHNE_21676: 1. When using select() with a large number of BSD socket file descriptors, performance degradation is observed. JAGac59693 2. When using poll() with a large number of BSD socket file descriptors, performance degradation is observed. JAGad11793 3. Network performance degradation is observed on systems with multiple CPUs and only one network card. JAGac56997 4. When the MSG_PEEK flag is set in recv(), recvmsg(), and recvfrom() system calls, less data may be returned than is actually available. JAGac78642 5. A system panic occurs in unweldq_exec(). JAGab15582 PHNE_21584: 1. hpstreams_clone_open() panics the system with IPF (instruction page fault) if minor number is above 255. JAGab73803 2. severe spinlock contention on the str_to_lck. JAGad00981 PHNE_21398: 1. IOCTLs TCGETX and TCSETX are not passed through to the driver. JAGad00969 PHNE_20316: 1. The system runs out of dynamic major numbers for DLKM STREAMS. JAGab00251 2. When Connection Caching is on, tcp ports may not be freed after an application exits. This may be determined with the aid of netstat. JAGab21075 3. The ioctl command I_STACKALIVE can cause a 256 byte memory corruption which may result in a system panic. JAGab12970 4. An application may hang when polling for OOB data. JAGab41375 5. A memory leak occurs when an application polling more than 64 file descriptors is sent a kill signal. The memory leak is only significant when the above happens often. JAGab83796 PHNE_20008: 1. SCA:Boot Panic: up_binding: attempt to UP bind on multi-node platform JAGab73422 2. TL_driver panic. Panic at tl_unitdata+0x314 JAGab68611 3. read_sleep()/read_bufcall() data page fault panic Memory corruption when waking up from read_sleep(). JAGab15932 4. hpstreams_option1() race panic. Data page fault occurs when file system is full on any logical volume. JAGab15459 5. schedule_csq_release() failed to remove an element from the synchronization queue leading to a hang. JAGab75315 6. _csq_acquire() / qenable() race leading to a hang. JAGab43884 PHNE_18972: 1. Thread based applications may receive invalid errno's when using the XTI library call t_rcv(). JAGab39647 2. The XTI library call t_rcv() with the flag T_MORE set returns corrupted data to an application making multiple calls to receive large packets. JAGab46803, 1653-310698 3. System hangs when a socket is closed and the SO_LINGER option is set. JAGaa94558 4. Data Page Fault occurs when an error condition allows an osr to run out of order. JAGab45580 PHNE_18486: 1. System panic because of 256 byte bucket memory leak in freeb_pullupmsg(). 2. 4-way Prelude panicked while running netperf and vmtrace. PHNE_18075: 1. System panics with data page fault. 2. When the application has eight connections waiting, but repeated calls to select never return 'readable' for the TCP listen FD. JAGaa94326 3. System panics with data page fault. 4. During system boot-up time, DLKM fails with the message "resolved symbol streams_get_sleep_lock()". 5. Select() will return READABLE on a socket with urgent data only. 6. V-Class panic (data page fault) 100BT with promiscuous PHY & netperf PHNE_17904: 1. Panic csq_release: sqh_refcnt is less than or equal to 0. 2. Panic - Instruction page fault if STREAMS-based pipe option is enabled. 3. Panic - Data Page Fault Intermittent system panic due to memory corruption in 128-bytes bucket. 4. Panic db_ref wraparound in dupbn, allocb_dupb 5. Hang System hangs upon starting OTS which runs an inbound thread as a driver/module in UP emulation mode on an MP system. 6. Panic - kalloc() "uprintf()" err msg causes huge amount of STREAMS mesg. allocation. PHNE_17794: 1. SpecWeb Performance Enhancement. PHNE_17051: 1. With 'mult_sqh' lock being held throughout K_STHINERT ioctl, performance got affected greatly. 2. Stack caching enhancement is added to boost SpecWeb96 performance through soaccept(). PHNE_16732: 1. System Panic with data page fault caused by a race condition between the ioctl() issued by nettl and a socket close made by one of oracles processes. 2. Sockets do not select TRUE on exceptions of out-of -band data is available. FIX to support detecting Out-of-band data from streams_select2() STREAMS function. PHNE_16290: When the callers of dupb() duplicate more than 254 mblks to the same datab, the 255th dupb() will cause db_ref counter to be rounded to 0 since db_ref is an unsigned char. This will cause freeb() to free the datab buffer even there are still mblks dup'ed to it. This behavior caused data page fault which leaded to system panics. We have seen this on few 16-way V-class systems. The fix is to return NULL to caller of the dupb() if db_ref is already 255. ARPA Transport code will call copyb() first if the return value from dupb() is NULL. PHNE_15612: 1. Changes made to str_plumb_ioctl() to not set F_OSR_NEED_MULT_SQH bit in osr_flag. This change resolved the X.25 and ATM processes hang problem. 2. Changes made to init_pipe_sth() to initialize 32-64bit mapping functions which prevents page fault panic. 3. Changes made to tl_do_pcproto() to have t_getname to support loop back transport. 4. Performance enhancements have been added, one of which also prevents a hang in low memory situations. PHNE_14706: 1. Change str_dev_lookup_name() to pass correct arguments. 2. t_look does not return T_GODATA and T_GOEXDATA. 3. Memory corruption - in-memory copy of a file become corrupted. 4. System hang from putpmsg with band 1 message on pty file descriptor. 5. System panic with data page fault with faulty osr pointer in hpstreams_option1(). 6. System panic with data page fault in sth_muxid_lookup. 7. System panic with data page fault in putbq (via hpstreams_read_int). PHNE_14192: When a readv is done with multiple iovec's and the buffer size is greater than a page and both the source (kernel) and destination (user) buffers are page-aligned, then the iovec accounting is done incorrectly making it appear that the iovec's are not properly filled. Defect Description: PHNE_28525: 1. When a stream head is to be kept alive (reused), the system frees the q_bandp without initializing the pointer to null. When this stream head is reused there is a stale pointer in it. This causes a panic if the stale pointer is used. JAGae65651 Resolution: Null the pointer in q_bandp if the message is freed. 2. On a multi-processor system, if a thread running freeb() decrements the db_ref count before it disassociates a STREAMS message block from the data block, then the duplicated message block which is being freed by the other thread could end up freeing both the original and duplicate message blocks. This in turn, results in memory corruption causing system panic. JAGae75384 Resolution: Implemented a strong store ordering to ensure that the data block is always disassociated from a STREAMS message block before the db_ref count is decremented. 3. STREAMS does not release kernel binding when it returns from a syscall for a UP stream. This can lead to a thread hang or a system panic. JAGae65088 Resolution: UP binding is released before returning from the streams framework if it was bound in the framework. 4. The SQ_IN_STREAMS flag is set when a thread enters the NFS subsystem through copyin() from STREAMS. This causes the NFS client thread to deadlock if it puts a request onto its data queue. JAGae80111 Resolution: Unset the SQ_IN_STREAMS flag before calling copyin(), copyout() and uiomove() in STREAMS. 5. In hpstreams_read_int(), the address used to check a page boundary is not the same as the address to be remapped to. JAGae32875 Resolution: Added a check, to check if the address is page aligned before doing remap. 6. When a plumb operation is done on a UP LAN driver, STREAMS does not update the UP emulation processor information in all the streams that are linked under the IP Multiplexor. This causes a thread to dereference uninitialized data and results in a system panic. JAGae79895 Resolution: When a UP driver is plumbed, STREAMS sets the UP emulation processor in all the streams that are linked under an MP-aware STREAMS multiplexor. 7. The TSSEL flag does not get reset before returning to the caller from poll(), this can result in a hang or panic in kernel subsystems. JAGae98364 Resolution: The TSSEL flag is reset before returning from poll(). PHNE_28524: 1. Stream head read put procedures do not free the old message in the stream head ioctl buffer before overwriting it with the new message for the ioctl buffer. JAGae50568 Resolution: Free the old message in the ioctl buffer before overwriting it with the new message in the stream head put procedures. 2. In schedule_csq_turnover() SQ_INUSE flag is not unset when the first message on the synchronization queue is a sq_wrapper entry. This leads to a deadlock for a thread that tries to acquire the synchronization queue (having a sq_wrapper as its first element) through csq_acquire(), after waking up from sleep() in streams_mpsleep(). JAGae54549 Resolution: Schedule the entry on the synchronization queue in schedule_csq_turnover() so that if the first entry is a sq_wrapper entry on the synchronization queue, SQ_INUSE gets unset and the deadlock is avoided. PHNE_27902: 1. STREAMS does not allow the same thread to re-acquire the controlling terminal sync queue through a different OSR in hpstreams_option1(). This causes the thread to hang. JAGae47252 Resolution: Record the thread id in the stream head sync queue of the controlling terminal when the stream head sync queue is acquired. hpstreams_option1() does not re-acquire the controlling terminal sync queue if the current thread id matches the recorded thread id. 2. t_accept() set t_errno to TBADSEQ instead of TLOOK in some situations when a connect or disconnect indication was pending on the listen endpoint. Consequently, applications did not know to call t_listen() or t_rcvdis() in order to read the corresponding T_CONN_IND or T_DISCON_IND message. This might cause subsequent XTI calls to fail because of an unexpected message on the stream. JAGae31270 Resolution: If t_accept() receives a T_ERROR_ACK message after sending the T_CONN_RES message downstream, t_accept() now sets t_errno to TLOOK if there is a T_CONN_IND or T_DISCON_IND message on the stream. PHNE_27651: 1. For M_DATA messages, t_klook() does not release the allocated memory and fails to release the ownership of the queue. This can cause a system hang or panic because the system is out of memory or the data structure lock is held too long. JAGae13713 Resolution: Allocated memory is freed and the ownership of the queue is released for all messages in t_klook(). 2. t_ksndrel() does not provide a mechanism to bypass data queue flow-control in non-blocking mode. JAGae14955 Resolution: A new flag is provided in the t_ksndrel() interface to allow the kernel caller to bypass flow-control when non-blocking mode is specified. This enables future improvements in the close() system call. 3. Memory leak happened when a STREAMS module or driver uses following sequence of operations 1) m1 = allocb(size) 2) m2 = dupb(m1) 3) free(m1) 4) pullupmsg(m2) where b_rptr is unaligned. JAGae34924 Resolution: Set b_datap to NULL in freeb when reference count is decremented which will free the memory during pullupmsg. 4. The sequence number generated in tl driver uses a structure address. Since it's held in a 32-bit variable, the first 4 bytes of the address are lost. During comparison, a full 64-bit structure address is compared to a truncated 32-bit sequence number, so in this case they will never match. JAGad30091 Resolution: A unique integer sequence number is created. PHNE_27424: 1. streams_untimeout() busy waits for str_timeout() to finish which can cause a deadlock to occur in corner case. JAGae29704. Resolution: Remove timeout entry from active timeout queue before calling module's timeout function. This avoids deadlock when streams untimeout is called while executing the module's timeout handler. 2. When an ioctl that performs an atomic blocking stream head insert operation is in progress and it is interrupted by a signal, a stream can be closed too early. If sleep exits due to a signal and the stream is closed before TCP sees the downstream message, TCP would later access the stale queue pointer that can cause the panic with data page fault. JAGae25712 Resolution: In the ioctl that performs an atomic blocking stream head insert operation, if we must wait, then sleep in non-interruptible mode else sleep in interruptible mode. 3. When a thread calling uprintf() is put in TSSTOP state while holding a file system lock and another thread is blocked while trying to acquire that lock a deadlock could occur. JAGad41710 Resolution: The problem is fixed by preventing the thread doing uprintf() from entering the TSSTOP state. This fix requires PHKL_23406,PHKL_23407, PHKL_23408, PHKL_23409. PHNE_26906: 1. In hpstreams_select(), a pointer is first being dereferenced and later a check made to see if it is NULL. JAGae28460 Resolution: Changes made to dereference only a non-NULL pointer. PHNE_26526: 1. STREAMS does not remove the pending timeout requests from the callout table in the close path for UP emulation streams running on multi-processor systems. This causes system panic, if the pending timeout request is executed after the stream is closed. JAGae16121 Resolution: Panic is fixed by enqueuing the UP module's streams_put() request onto the UP emulation processor queue. The STREAMS framework removes all the posted per processor requests in the close path. 2. In a multi-threaded socket application, when soaccept() and getsockopt() or setsockopt() operations are done on the same socket, the thread doing soaccept() hangs. JAGae14249 Resolution: Provided a new ioctl that performs an atomic stream head insert operation. PHNE_25440: 1. UNIX95 standard requires the SIGHUP to be sent to the process group upon receiving M_HANGUP message for STREAMS tty. JAGad84809 Resolution: SIGHUP is sent to process group on receiving M_HANGUP for STREAMS tty. 2. t_klisten() does not release allocated memory when exiting from an error. This may consume a lot of memory and cause a system hang if there are many instances of t_klisten() exiting with errors. JAGae01950 Resolution: The memory leak is fixed by freeing the osr_s structure when an error occurs. 3. In PHNE_25116, sth_rput() used an uninitialized data structure variable, which caused non socket drivers to take a wrong code path and panic. JAGae09306 Resolution: Initialize the data structure variable. 4. Change file permissions. JAGad77575 Resolution: This fixes a file permissions problem. PHNE_25116: 1. When duplicated messages that are pulled up (coalesced) into a single block by using msgpullup() are freed, there is a timing window where two instances of freeb() can free the same message twice. This will result in memory corruption which will cause a panic later when the memory is used again. JAGad50215 Resolution: Added a spinlock in the function that frees pulled up messages so only one instance of freeb() can operate on a pulled up message at a time. This prevents a second instance of freeb() from operating on the same message at the same time. PHNE_24099: 1. When both the ends of the welded queue are closed simultaneously, a race in the welded close path leads to a panic. JAGad40848 $call_trap+0x38 spinlock+0x10 _csq_acquire+0xe4 osr_pop_subr+0x35c osr_close_subr+0xc0c hpstreams_close_int+0x30c Resolution: Modified unweld-mechanism to eliminate the race condition in that path. 2. poll() times out immediately when timeout arg is set to INT_MAX. JAGad56971 Resolution: Cast the timeout value to avoid making it negative. 3. hpstreams_option1() does not release the allocated memory upon an error exit from ioctl_sleep_until_first(). This causes memory leak in hpstreams_option1(). This happens in a very rare case and has not been reported by any customer. JAGad45190 Resolution: The memory leak is fixed by freeing the structures osr_s and tiocoption1. 4. Inclusion of evp_kernel.h in streams header file could cause the build to fail. JAGad69198 Resolution: Included the evp_kernel.h in the C-files where ever needed. 5. Missing first telnet prompt. JAGad39478 Resolution: In the inbound path for sockets a wakeup was missed when normal data follows OOB data. The fix was to catch the missed wakeup in the inbound path. 6. There is no way currently to dequeue a poll_s structure from the wake-up list when a thread exits select(2). JAGad15265 Resolution: A new kernel function is being provided to enable future improvements to select(2). 7. When the background job tries to read from the dtterm, STREAMS sends SIGTTIN and does a sleep(). When it comes out of the sleep, not due to an interrupt, the read function exits out intermittently without retry or further processing. JAGad25743 Resolution: Continue processing the read on a SIGCONT. 8. When the background job tries to write to the dtterm, STREAMS sends SIGTTOU and does a sleep(). When it comes out of the sleep, not due to an interrupt, the write function exits out without retry or further processing. JAGad57981 Resolution: Continue processing the write on a SIGCONT. PHNE_23714: 1. This patch contains enhancements required to support the HP-UX Event Port driver. JAGad65762 Resolution: Modified streams to support the polling of streams based fd's using Event Port driver. PHNE_23121: 1. remsh(1) hangs in shutdown(2) when the stream is flow-controlled. JAGad36101 Resolution: Provide a version of streams_putmsg() which unconditionally does the putnext(). PHNE_22566: 1. An _IOR ioctl was passed in an M_IOCTL message with ioc_count set to zero and b_cont set to NULL. JAGad28107 Resolution: In the M_IOCTL message, if IOC_PARMLEN(cmd) is non-zero, ioc_count is set to IOC_PARMLEN(cmd), and b_cont points to an allocated message block. If IOC_PARMLEN(cmd) is zero, ioc_count is set to TRANSPARENT, and the message block that b_cont points to contains the ioctl "arg" parameter. 2. poll() returns successfully, instead of waiting for the connection to be established, because poll() was looking only at the stream state, not also at the socket state. JAGad43870 Resolution: Instead of calling hpstreams_poll(), which looks only at the stream, pollscan() calls the socket select function, which looks at both the socket and stream states. PHNE_22381: 1. Some of the NFS threads loop indefinitely on streams_poll() even when data is available at the stream head. JAGad15958 Resolution: The race in the wakeup path when data arrives at the stream head and the poll_s struct being enqueued at the same stream head which caused the hang has been eliminated. 2. Pass third argument to fo_select due to a FS patch. JAGad27893 Resolution: A third argument is now passed to the fo_select function pointer calls in streams to be consistent with the changes made in the File System code. 3. This is a race condition when one side of a streams pipe closes. The closing side breaks the streams pointers before the other side is ready to be closed. JAGad21578 Resolution: Added a check in canput to detect a NULL pointer. If the pointer is NULL, return zero to indicate that the stream is flow controlled and a put cannot be done. PHNE_22129: 1. When a broadcast storm occurs on 4 or more Gigabit ports the system hangs. JAGad09699 Resolution: DLPI checks the synchronization queue. If there are too many messages in the queue, DLPI would drop messages. 2. When two user processes open the same device number at the same time, the driver may be given different stream head addresses when it is expecting the same stream head address for both. JAGad00967 Resolution: Serialize all opens for the same major device number. 3. Spinlock held too long is detected in processing per stream SPU queue of STREAMS. This is a performance problem and may result in a Service Guard time-out. JAGad16470 Resolution: The problem is fixed by avoiding the buildup of the long per-cpu queues. PHNE_21676: 1. When using select() with a large number of BSD socket file descriptors, performance degradation is observed. JAGac59693 Resolution: Internal changes were made to enable performance improvements when using select() with a large number of BSD socket file descriptors. 2. When using poll() with a large number of BSD socket file descriptors, performance degradation is observed. JAGad11793 Resolution: Performance improvement related changes have been made. 3. On a system with multiple CPUs, but only one network interface card, all of the processing of incoming data packets is done on one CPU. This can lead to an inefficient use of the CPUs in some cases. JAGac56997 Resolution: Internal changes enable changes in the ARPA Transport product to shift some of the inbound processing to another CPU, when appropriate. 4. If the available data for the socket is stored internally in multiple STREAMS messages, only the data in first message is returned. JAGac78642 Resolution: Internal changes enable a fix in the recv(), recvmsg(), and recvfrom() system calls to retrieve all of the data when using the MSG_PEEK flag. 5. When a driver is welded, the use of per-major locking in some code paths causes a race condition in the unweld and close paths, which can lead to a panic. JAGab15582 Resolution: A kernel variable global_weldq_synch selects the use of global or per-major locking in specific code paths. Generally, per-major locking is safe to use; it is the default because it provides better performance. Products that use weld (e.g. ASU) might need to set the kernel variable to 1 in order to select global locking. This avoids the race condition at the expense of some performance degradation for all streams. PHNE_21584: 1. hpstreams_clone_open is not checking for invalid minor number. JAGab73803 Resolution: A check is added for valid clone minor number in hpstreams_clone_open() 2. str_timeout and streams_untimeout, would continue traversing a linked list until we reach the end even if it found what it is looking for. JAGad00981 Resolution: Modified the str_timeout() and streams_untimeout() to break off the for loop on finding a "sqe" on the active timeout queue PHNE_21398: 1. All IOCTLs of class 'X' were processed as streams XTI IOCTLs. Resolution: Process IOCTLs with command numbers less than 50 as tty IOCTLs. PHNE_20316: 1. Dynamic major numbers for DLKM STREAMS were not recycled properly. Resolution: The C_DYN_MAJOR flag was added to the cdevsw structure for DLKM STREAMS. 2. When Connection Caching is on, the socket is always bound. This allows data to be forced into a closed and cached socket. The Stream Head may then fill up with data. Resolution: We determine whether a stack is cached before we determine the message type in the stream head. 3. When the stream head's osr structure is in use, a new osr structure is dynamically allocated. This osr is then freed twice. Resolution: We removed one call to free. 4. OOB data is not handled by the FREAD flag in select. Resolution: The select flag is set to 0 which handles OOB data. 5. When a poll on more than 64 file descriptors is interrupted, the memory allocated for the descriptors is not freed. Resolution: The data structures are freed when poll is interrupted. PHNE_20008: 1. Description: The multi-node system panicked during the initialization of the NFS core subsystem in the boot-up process. Resolution: Changed the TL driver, which is used by NFS, from UP driver to MP driver. 2. Description: The TL driver is a UP driver. The UP emulation mechanism is broken. Thus the globals in the TL driver are not protected, and race occurs. The fix is in osr_open to fix the broken UP emulation mechanism. Resolution: The logic has been corrected. 3. Description: We need to reacquire 'osr->osr_sth->sth_read_osrq.osrq_lock' after waking up from sleep, and release it at the end. Resolution: A spinlock/spinunlock has been added for protection. 4. Description: When the slave side telnetd process goes away, the parent process does not cleanup the device number in its proc struct's p_ttyp/p_ttyd fields. This can lead to uprintf using it. Resolution: We now check for p_ttyp at the beginning of hpstreams_close_int() and set tp->t_dev = NODEV. 5. Description: When schedule_csq_release encountered an sqe with sq_flags = SQ_HOLD, it did not remove the element from the synchronization queue before it calls wakeup. Resolution: schedule_csq_release() now calls remque() when it encounters an sqe with sq_flags = SQ_HOLD. 6. Description: This is a module/driver hang that may lead to memory exhaustion. Resolution: We modified _csq_acquire() to prevent the race by moving a spinlock. PHNE_18972: 1. Description: Thread based applications may receive invalid errno's when using the XTI library call t_rcv(). Resolution: The following define has been added to the build rules. -D_POSIX_C_SOURCE=199506L 2. Description: There is a problem when a single message with the T_MORE flag set is read by the application by calling t_rcv() more than 2 times for that single message. In these circumstances the T_MORE flag will not be set correctly and may result in what appears to be silent data corruption to the application user. Resolution: The code change for SR 4701-320978 was brought forward to HP-UX 11.0. 3. Description: The problem is caused by the delay between the last send() and close() when the SO_LINGER option is used. Resolution: Resolve the deadlock if putnext() is called and the FIN mblk is sent down after tcp_linger() calls streams_mpsleep(). 4. Description: str_istr_ioctl(), str_trans_ioctl(), etc., call ioctl_dequeue_osr_wakeup() when an error is returned by ioctl_sleep_until_first(). This may result in an osr that is not first on the ioctl_osrq being woken up. If this osr is sleeping in ioctl_sleep_until_first() we are ok because it will check to see if it is first or not. If it sleeping somewhere else, then it will think it is first. We now have two osr's that think they are first: The one that is first and the one we just woke. This leads to a corruption of the ioctl_osrq. Resolution: ioctl_dequeue_osr_wakeup() has been changed so that it checks to see if the current osr is first. If the current osr is first, then it is dequed and the next osr becomes first and is woken up. If the current osr is not first, then it is dequed and no osr is woken up. PHNE_18486: 1. The memory leak is caused by freeb_pullupmsg() not doing the (mh== (MHP) bp) check. Resolution: Add the (mh== (MHP) bp) check to freeb_pullupmsg() to avoid the memory leak. 2. This is a 256 byte memory corruption problem. The problem is caused by the Streams illegally using spl5 to acquire the global spl_lock. Resolution: In unbufcall and str_mem_daemon, use the spinlock to replace spl. PHNE_18075: 1. Description: The function osr_free was moved beyond our check for F_STH_ISATTY. osr_free was then called regardless of the result of osr_run and osr_open. That causes "assertion failed: (ksp->ks_inuse>=0) at L793 streams/str_scalls.c". Resolution: Introduced a flag so that the osr structure must be freed when osr_run returns 0 or >0, and the osr structure must be freed when osr_open returns 0. 2. Description: This only happens on V-class machines. When the user process is waiting for t_accept() to return an accept for a connection request TCP can return another T_CONN_IND, or T_DISCON_IND for a different connection, or getmsg can return EINTR. These cases are not handled correctly and the user process will get an error and the T_OK_ACK remains on the stream head.. Resolution: Changed t_chk_ack() so that 1) we get next message if the current getmsg returned EINTR; 2) retry if we got another connection request while awaiting for an ACK from the previous one; 3) if it is a disconnect for some other sequence number then ignore it. 3. Description: In one of the STREAMS' header files, the DUPB macro doesn't set the pointer to null if db_ref > 255. That causes the macro returns invalid pointer. Resolution: Added the "new_bp = nilp(MBLKP);" line in the DUPB macro to make the new_bp a null pointer if db_ref > 255. 4. Description: The optimization (Procelim) in the Production/ Performance kernel removes the streams_get_sleep_lock function. That causes the system not be able to find the function, and the system stop booting. Resolution: Changed str_init.c to reference streams_get_sleep_lock so that DLKM can find it. 5. Description: The TCP out-of-band data (OOB) were not detected correctly when we process all the 'mblks' currently in the streams queue. Resolution: The fix is to search through all received data for OOB data, rather than just the first portion of the received data. 6. Description: A race condition. If a message is duplicated (through dupb()), then is pulled up (through pullupmsg()), we sometimes see a race condition in freeb() which causes data page fault, of course, then panic. The symptoms are mostly seen when fast links are involved (like 100BT). Resolution: Fixed freeb() and freeb_pullupmsg() to close the race window. PHNE_17904: 1. A race condition within streams which causes the global lock to be released instead of the per-major lock. 2. A race condition with STREAMS-based pipes if the application uses fattach() and fdetach() heavily. It happens while detaching a pipe far end vnode(s) because the near end is closing & the simultaneous detaching the vnode explicitly. 3. The osr_free has been done too early causing a freed sq pointer to be passed to csq_acquire. 4. db_ref counter wraparound to "0" which causes freeb() to prematurely frees a message block that still has duplicated messages somewhere. 5. DLPI calls streams_put_release with a target spu of -1. This is the case of IPS off and the packet is supposed to be processed on the current CPU(ISR stack). However, in QUPMODE, target_spu is getting reset to the CPU on which OTS is bound to. Unfortunately, OTS thread UP emulation binding spu is not the current CPU. Hence, starting OTS behaves as if IPS is turned ON. The packet gets queued on the streams scheduling queue of the CPU on which ISR is running; while software interrupt runs on the CPU to which OTS is bound to. Also, streams_put_release is not setting 'qp->busy' to 'zero' before calling timeout_on_spu for UP emulation queue. This results to any other queue's packets (such as IP) getting queued at streams scheduling queue because qp->busy is 1. 6. If the file system becomes full in an HFS LVM, the HFS kernel code will generate an error message via: uprintf("\n%s: write failed, file system is full\n", fs->fs_fsmnt); uprintf() will determine the associated process controlling tty and push the "/logs: write failed, file system is full" message out to it one(1) character at a time. Since the controlling tty is a STREAMS-based PTY in this case, these one(1) character transfers end up becoming separate message blocks that point to 1 character data blocks ---- consuming a 256 byte kernel memory allocation for each one. Resolution: 1. Modified the LOCKs mechanism. Remove unnecessary re- leases of global locks in 'osr_link' and 'osr_pipe'. Also, created a separate 'osr_popup_subr' routine to segregate the behavior of 'osr_pop' from 'osr_close'. 2. Fix in fattach() and fdetach() associated with spipe. And in FSYNC. 3. Fix in 'pse_open routine' of str_scalls.c. Delay the osr_free to the end of the pse_open routine. 4. Fix in 'allocb_dupb()' and 'dupbn()' to ensure that the db_ref counters are less than or equal to 255 (maximum for unsigned short). 5. Fix in 'streams_put_release()'. Set the target_spu correctly if MP and q_flag is QUPMODE. Also, set qp->busy to 'zero' before calling timeout_on_spu for UP emulation queue. 6. Fix in 'hpstreams_option1()'. Send message downstream if it is High_Priority or there's room in "ldterm" WQ; otherwise, set "error", free the 'mp', and leave the function. PHNE_17794: 1. Enhancement for SpecWEB Performance. Resolution: 1. Added new function prototypes and new IOCTL definitions to enhance SpecWEB Performance. PHNE_17051: 1. Added new K_STHINSERT2 ioctl instead of using 'mult_ sqh' lock to improve SpecWeb96 performance. 2. Stack caching enhancement is added to boost SpecWeb96 performance through soaccept(). PHNE_16732: 1. System Panic with data page fault caused by a race condition between the ioctl() issued by nettl and a socket close made by one of oracles processes. 2. Sockets do not select TRUE on exceptions of out-of -band data is available. select() functionality for TCP sockets is handled inside STREAMS stack since 11.0; but the existing STREAMS implementation does not account for TPI T_EXDATA_IND messages. PHNE_16290: The system hits data page fault panic if a subsystem dupb()'s more than 255 mblk to a same datab. This typically happens on high end mutli-way systems. PHNE_15612: 1. The ATM and X.25 products were all hanging on either 32-bit or 64-bit system with 11.0 plus installed. The cause of this is that the STREAMS system holds a mult_sqh lock without releasing it. 2. The 64-bit system with 11.0 plus panicked because the streams head structures containing 32-64bit mapping functions were not initialized. 4. The hang was caused by stress on memory. If there was a lot of NFS traffic, then vhand would attempt to recover memory by flushing the buffer cache. Flushing NFS buffers required a network connection to write the buffer and generating that connection required synchronization through a global sync point. However, that could have been held by a thread waiting for memory, causing a deadlock. The global sync element was split to prevent this deadlock. PHNE_14706: 1. str_dev_lookup_name() should call the lookupname as: lookupname(device_name, UIOSEG_KERNEL, FOLLOW_LINK, (struct vnode **)0L, &vp); 2. t_snd() was not setting flag after TFLOW for t_look to know that has been a TFLOW condition. 3. In hpstream_read_int(): an check should be added to see whether the streams buffer is cachebuf vs. regular memory. No rmapout should be performed if is cachebuf; use uiomove instead. 4. streams canput() checks only QFULL without checking QB_FULL. canput should be flow-controlled if any band is blocked. 5. An "osr" pointer is referenced after it has been already freed. 6. This was caused by an update to a stale pointer. 7. This was caused by a mishandling of a message when a copyout error occurred part way through a read. PHNE_14192: The problem is in the streams read code. There is a performance path that attempts to remap the page instead of copying it if both the source (kernel buffer) and the destination (user buffer) are larger than a page and are page-aligned. If these conditions were met, the pages were remapped, but the accounting was done incorrectly making the readv fail to work properly. Enhancement: No (superseded patches contained enhancements) PHNE_23714: Support for Event Port driver was added as an enhancement. PHNE_17794: Enhancement added for SpecWeb Performance improvement. PHNE_17051: Stack caching enhancement is added to boost SpecWeb96 performance through soaccept(). PHNE_15612: Performance enhancements have been added, one of which also prevents a hang in low memory situations. SR: 1653250332 1653252882 1653256198 1653256974 5003431122 5003431130 5003437541 1653284307 1653265603 5003455352 4701411280 4701418335 5003455568 1653310698 8606131817 8606140332 8606146615 8606158563 8606152239 8606158777 8606180995 8606166814 8606145929 8606156405 8606170214 8606171584 8606175950 8606188765 8606196559 8606200012 4701423590 4701429985 4701430561 5003454801 8606101175 8606102684 8606105387 8606105621 8606106321 8606111683 8606113237 8606126432 8606126852 8606127841 8606131819 8606131831 8606142445 8606147127 8606174624 8606215628 8606232720 8606242052 8606208389 8606249735 8606247849 8606264131 8606265386 8606261390 8606172450 8606247273 8606248557 8606270688 8606160771 8606187762 8606283300 8606267026 8606286629 8606290703 8606302292 8606312568 8606301642 8606317550 8606268637 8606317334 8606337356 8606343593 8606343596 Patch Files: Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/include/sys/stream.h /usr/conf/h/stream.h /usr/include/sys/stropts.h /usr/conf/h/stropts.h Streams.STREAMS-32ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/lib/libnsl_s.a /usr/lib/libxti.a Streams.STREAMS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/lib/libnsl_s.2 /usr/lib/libxti.2 Streams.STREAMS-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/lib/pa20_64/libxti.a Streams.STREAMS-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/lib/pa20_64/libxti.2 Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libstream.a Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libstream.a OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libdebug.a(streams.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libdebug.a(streams.o) what(1) Output: Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libstream.a: tl.c $Date: 2002/08/05 11:15:00 $Revision: r11ros/7 PATCH_r11ros (PHNE_27651) str_util.c $Date: 2003/07/17 11:15:00 $Revision: r11 ros/29 PATCH_11.00 (PHNE_28525) str_synch.c $Date: 2002/12/19 11:15:00 $Revision: r1 1ros/12 PATCH_11.00 (PHNE_27902) str_subr.c $Date: 2003/10/28 11:15:00 $Revision: r11 ros/12 PATCH_11.00 (PHNE_28525) str_shead.c $Date: 2003/02/05 14:45:00 $Revision: r1 1ros/11 PATCH_11.00 (PHNE_28524) STREAMS: Date: 2003/11/17 09:45:00 Revision: r11ros PATCH_11.00 (PHNE_28525) str_scalls.c $Date: 2003/11/26 14:45:00 $Revision: r 11ros/85 PATCH_11.00 (PHNE_28525) str_osr.c $Date: 2003/10/28 11:15:00 $Revision: r11r os/20 PATCH_11.00 (PHNE_28525) str_memory.c $Date: 2003/07/08 11:15:00 $Revision: r 11ros/15 PATCH_r11ros (PHNE_28525) str_env.c $Date: 2002/12/19 11:15:00 $Revision: r11r os/6 PATCH_11.00 (PHNE_27902) str_debug.c $Date: 2002/12/19 11:15:00 $Revision: r1 1ros/1 PATCH_11.00 (PHNE_27902) Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libstream.a: tl.c $Date: 2002/08/05 11:15:00 $Revision: r11ros/7 PATCH_r11ros (PHNE_27651) str_util.c $Date: 2003/07/17 11:15:00 $Revision: r11 ros/29 PATCH_11.00 (PHNE_28525) str_synch.c $Date: 2002/12/19 11:15:00 $Revision: r1 1ros/12 PATCH_11.00 (PHNE_27902) str_subr.c $Date: 2003/10/28 11:15:00 $Revision: r11 ros/12 PATCH_11.00 (PHNE_28525) str_shead.c $Date: 2003/02/05 14:45:00 $Revision: r1 1ros/11 PATCH_11.00 (PHNE_28524) str_scalls.c $Date: 2003/11/26 14:45:00 $Revision: r 11ros/85 PATCH_11.00 (PHNE_28525) STREAMS: Date: 2003/11/17 09:45:00 Revision: r11ros PATCH_11.00 (PHNE_28525) str_osr.c $Date: 2003/10/28 11:15:00 $Revision: r11r os/20 PATCH_11.00 (PHNE_28525) str_memory.c $Date: 2003/07/08 11:15:00 $Revision: r 11ros/15 PATCH_r11ros (PHNE_28525) str_env.c $Date: 2002/12/19 11:15:00 $Revision: r11r os/6 PATCH_11.00 (PHNE_27902) str_debug.c $Date: 2002/12/19 11:15:00 $Revision: r1 1ros/1 PATCH_11.00 (PHNE_27902) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libdebug.a(streams.o): streams.c $Date: 2003/12/04 14:55:04 $Revision: r11r os/1 PATCH_11.0 (PHNE_28525) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libdebug.a(streams.o): streams.c $Date: 2003/12/04 14:55:04 $Revision: r11r os/1 PATCH_11.0 (PHNE_28525) Streams.STREAMS-32ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/lib/libnsl_s.a: STREAMS: Revision: B.11.00 $Date: 2003/01/02 15:00: 00 $ Streams.STREAMS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/lib/libnsl_s.2: STREAMS: Revision: B.11.00 $Date: 2003/01/02 15:00: 00 $ Streams.STREAMS-32ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/lib/libxti.a: STREAMS: Revision: B.11.00 $Date: 2003/01/02 15:00: 00 $ Streams.STREAMS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/lib/libxti.2: STREAMS: Revision: B.11.00 $Date: 2003/01/02 15:00: 00 $ Streams.STREAMS-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/lib/pa20_64/libxti.a: STREAMS: Revision: B.11.00 $Date: 2003/01/02 15:00: 00 $ Streams.STREAMS-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/lib/pa20_64/libxti.2: STREAMS: Revision: B.11.00 $Date: 2003/01/02 15:00: 00 $ Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/include/sys/stream.h: stream.h: $Revision: 1.9.118.14 $ $Date: 98/04/22 11 :57:43 $ Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/conf/h/stream.h: stream.h: $Revision: 1.9.118.14 $ $Date: 98/04/22 11 :57:43 $ Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/include/sys/stropts.h: stropts.h: $Revision: 1.14.105.4 $ $Date: 97/06/26 1 4:02:06 $ Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/conf/h/stropts.h: stropts.h: $Revision: 1.14.105.4 $ $Date: 97/06/26 1 4:02:06 $ cksum(1) Output: Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 2319089542 1347418 /usr/conf/lib/libstream.a Streams.STREAMS2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 3348566623 669840 /usr/conf/lib/libstream.a OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 977040898 198968 /usr/conf/lib/libdebug.a(streams.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 4064583476 156984 /usr/conf/lib/libdebug.a(streams.o) Streams.STREAMS-32ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: 3526786025 158636 /usr/lib/libnsl_s.a Streams.STREAMS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 408222540 122880 /usr/lib/libnsl_s.2 Streams.STREAMS-32ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: 430982555 161116 /usr/lib/libxti.a Streams.STREAMS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 3363350022 126976 /usr/lib/libxti.2 Streams.STREAMS-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: 77530133 297566 /usr/lib/pa20_64/libxti.a Streams.STREAMS-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: 768391318 119416 /usr/lib/pa20_64/libxti.2 Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 1832411441 32882 /usr/include/sys/stream.h Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 1832411441 32882 /usr/conf/h/stream.h Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 208914717 23299 /usr/include/sys/stropts.h Streams.STREAMS-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 208914717 23299 /usr/conf/h/stropts.h Patch Conflicts: None Patch Dependencies: s700: 11.00: PHNE_17662 PHKL_23406 PHKL_23407 PHKL_23408 PHKL_23409 s800: 11.00: PHNE_17662 PHKL_23406 PHKL_23407 PHKL_23408 PHKL_23409 Hardware Dependencies: None Other Dependencies: This patch can resolve a race condition and a panic in the Terminal I/O subsystem. However, on multiprocessor systems it can introduce performance degradation. The performance degradation can be slight to severe, depending on the use of the system. We recommend that you install the Terminal I/O patch PHNE_19616 or a superseding patch together with this patch. The performance degradation results from binding child processes of "rlogin" and "remsh" to a single CPU. Supersedes: PHNE_14192 PHNE_14706 PHNE_15612 PHNE_16290 PHNE_16732 PHNE_17051 PHNE_17794 PHNE_17904 PHNE_18075 PHNE_18486 PHNE_18972 PHNE_20008 PHNE_20316 PHNE_21398 PHNE_21584 PHNE_21676 PHNE_22129 PHNE_22381 PHNE_22566 PHNE_23121 PHNE_23714 PHNE_24099 PHNE_25116 PHNE_25440 PHNE_26526 PHNE_26906 PHNE_27424 PHNE_27651 PHNE_27902 PHNE_28524 Equivalent Patches: None Patch Package Size: 1280 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_28525 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_28525.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_28525. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false 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_28525.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_28525.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_28525.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None