Patch Name: PHCO_30543 Patch Description: s700_800 11.23 Pthread library cumulative patch Creation Date: 04/06/04 Post Date: 04/07/29 Hardware Platforms - OS Releases: s700: 11.23 s800: 11.23 Products: N/A Filesets: OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP Automatic Reboot?: No Status: General Release Critical: Yes PHCO_30543: HANG Category Tags: defect_repair general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHCO_30543 Symptoms: PHCO_30543: ( SR:8606342667 CR:JAGaf03561 ) Duplicate ( SR:8606343625 CR:JAGaf04477 ) If pthread_cond_timedwait() is called in one thread and pthread_cond_signal() in the other repeatedly, the application may hang. pthread_mutex_lock() may return incorrect ETIMEDOUT if it is called just after pthread_cond_timedwait() and pthread_cond_signal() happens simultaneously with timer expiration of pthread_cond_timedwait(). PHCO_30476: ( SR:8606313694 CR:JAGae76486 ) JAVA profiling does not work with unbound threads. Defect Description: PHCO_30543: ( SR:8606342667 CR:JAGaf03561 ) Duplicate ( SR:8606343625 CR:JAGaf04477 ) Pthread library is not appropriately handling the scenario where the timer is expired for pthread_cond_timedwait() and another thread calls pthread_cond_signal() at the same time. The internal mechanism (that handles user space sleep timeouts) is waking up the sleeping thread at the wrong time. Because of this: If pthread_cond_timedwait() and pthread_cond_signal() are called repeatedly in separate threads, the internal mechanism will wakeup the thread which is in a different pthread_cond_timedwait() call than the intended. Also, it does not cleanup the associated data structures. Subsequently, the internal data structures are corrupted causing the application hang. If a thread calls pthread_cond_timedwait() followed by pthread_mutex_lock()(on the mutex that is already locked), the thread is wokenup when it is sleeping in pthread_mutex_lock(). Hence, pthread_mutex_lock() returns ETIMEDOUT. Resolution: pthread library code is modified so that only one of the internal mechanism (that handles user space sleep timeouts) or pthread_cond_signal() will process the internal data structures associated with the time based sleep in user space and wakeup the sleeping thread appropriately. PHCO_30476: ( SR:8606313694 CR:JAGae76486 ) Thread profiling data provided for unbound threads by Pthread library is insufficient when compared to the data provided for bound threads. Resolution: All the necessary information for JAVA application profiling are being provided by Pthread library. Enhancement: No SR: 8606313694 8606342667 8606343625 Patch Files: OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/lib/hpux64/libpthread.so.1 /usr/lib/hpux64/libpthread_tr.so.1 OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/lib/hpux32/libpthread.so.1 /usr/lib/hpux32/libpthread_tr.so.1 ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/include/sys/pthread.h what(1) Output: OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/lib/hpux64/libpthread.so.1: $Revision: libpthread.so.1: R11.23_BL2004_0604_1 Fri Jun 4 09:00:36 PDT 2004 $ Pthread Interfaces debug.c $Date: 2004/03/03 04:23:28 $Revision: r11.23 /1 PATCH_11.23 (PHCO_30543) callout.c $Date: 2004/05/25 02:34:27 $Revision: r11. 23/2 PATCH_11.23 (PHCO_30543) sleep.c $Date: 2004/05/31 04:37:23 $Revision: r11.23 /2 PATCH_11.23 (PHCO_30543) callout_server.c $Date: 2004/03/03 04:20:53 $Revisio n: r11.23/1 PATCH_11.23 (PHCO_30543) /usr/lib/hpux64/libpthread_tr.so.1: $Revision: libpthread_tr.so.1: R11.23_BL2004_0604 _1 Fri Jun 4 09:09:43 PDT 2004 $ Pthread Interfaces debug.c $Date: 2004/03/03 04:23:28 $Revision: r11.23 /1 PATCH_11.23 (PHCO_30543) callout.c $Date: 2004/05/25 02:34:27 $Revision: r11. 23/2 PATCH_11.23 (PHCO_30543) sleep.c $Date: 2004/05/31 04:37:23 $Revision: r11.23 /2 PATCH_11.23 (PHCO_30543) callout_server.c $Date: 2004/03/03 04:20:53 $Revisio n: r11.23/1 PATCH_11.23 (PHCO_30543) OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/lib/hpux32/libpthread.so.1: $Revision: libpthread.so.1: R11.23_BL2004_0604_1 Fri Jun 4 08:59:57 PDT 2004 $ Pthread Interfaces debug.c $Date: 2004/03/03 04:23:28 $Revision: r11.23 /1 PATCH_11.23 (PHCO_30543) callout.c $Date: 2004/05/25 02:34:27 $Revision: r11. 23/2 PATCH_11.23 (PHCO_30543) sleep.c $Date: 2004/05/31 04:37:23 $Revision: r11.23 /2 PATCH_11.23 (PHCO_30543) callout_server.c $Date: 2004/03/03 04:20:53 $Revisio n: r11.23/1 PATCH_11.23 (PHCO_30543) /usr/lib/hpux32/libpthread_tr.so.1: $Revision: libpthread_tr.so.1: R11.23_BL2004_0604 _1 Fri Jun 4 09:05:12 PDT 2004 $ Pthread Interfaces debug.c $Date: 2004/03/03 04:23:28 $Revision: r11.23 /1 PATCH_11.23 (PHCO_30543) callout.c $Date: 2004/05/25 02:34:27 $Revision: r11. 23/2 PATCH_11.23 (PHCO_30543) sleep.c $Date: 2004/05/31 04:37:23 $Revision: r11.23 /2 PATCH_11.23 (PHCO_30543) callout_server.c $Date: 2004/03/03 04:20:53 $Revisio n: r11.23/1 PATCH_11.23 (PHCO_30543) ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/include/sys/pthread.h: pthread.h $Date: 2004/03/02 20:43:27 $Revision: r11. 23/4 PATCH_11.23 (PHCO_30476) cksum(1) Output: OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: 1484688777 955912 /usr/lib/hpux64/libpthread.so.1 2050748830 1160008 /usr/lib/hpux64/libpthread_tr.so.1 OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: 82982940 925192 /usr/lib/hpux32/libpthread.so.1 1200469796 1128688 /usr/lib/hpux32/libpthread_tr.so.1 ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: 3829347481 41706 /usr/include/sys/pthread.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_30476 Equivalent Patches: None Patch Package Size: 1560 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_30543 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_30543.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_30543. 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 PHCO_30543.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_30543.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_30543.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None