Patch Name: PHCO_29111 Patch Description: s700_800 11.22 Pthread library cumulative patch Creation Date: 03/10/09 Post Date: 03/10/13 Hardware Platforms - OS Releases: s700: 11.22 s800: 11.22 Products: N/A Filesets: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP ProgSupport.C2-INC,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP Automatic Reboot?: No Status: General Release Critical: Yes PHCO_29111: ABORT HANG Category Tags: defect_repair general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHCO_29111 Symptoms: PHCO_29111: ( SR:8606329004 CR:JAGae90139 ) In a multi-threaded application,when threads are waiting on a synchronization objects and the last thread is going to block on the synchronization object, and if suspend is pending on that thread, libpthread exits with SIGSEGV. ( SR:8606310839 CR:JAGae73700 ) Mixing the COMPAT mode built objects with MxN mode built objects cause thread creation to generate libpthread internal assertion. ( SR:8606310139 CR:JAGae73013 ) A multi-threaded application hangs when pthread mutex is locked by one thread, unlocked by a different thread and then locked again. ( SR:8606310140 CR:JAGae73014 ) A multi-threaded application hangs when a thread tries to unlock a mutex which has not been locked earlier. ( SR:8606313313 CR:JAGae76111 ) Java processes can hang occasionally during JSP processing. Defect Description: PHCO_29111: ( SR:8606329004 CR:JAGae90139 ) An internal data structure is maintained by pthread library for each synchronization object. A thread trying to acquire the synchronization object and has a pending suspension doesn't release this internal data structure back to the free cache when it comes out of suspension. When the same thread tries to acquire the synchronization object it causes pthread library to generate SIGSEGV. Resolution: Resolution is to release the internal data structure to cache for suspend pending threads which is trying to acquire the synchronization object. ( SR:8606310839 CR:JAGae73700 ) This happens because pthread library doesn't capture the default running mode of the application properly. This results in an attempt to convert main thread to semi bound twice and hence cause internal error. Resolution: A new variable is used to keep track of the mode in which application is executing and pthread library calls the internal conversion routines accordingly. ( SR:8606310139 CR:JAGae73013 ) Need of a mutex type which can be unlocked by a thread that is not its owner. Resolution: A new mutex type PTHREAD_MUTEX_NO_OWNER_NP has been introduced. The mutex of this type can be unlocked by a thread which is not its owner. ( SR:8606310140 CR:JAGae73014 ) Need of a mutex type which can be unlocked by a thread that is not its owner. Resolution: A new mutex type PTHREAD_MUTEX_NO_OWNER_NP has been introduced. The mutex of this type can be unlocked by a thread which is not its owner. ( SR:8606313313 CR:JAGae76111 ) The root cause is the use of pthread_suspend within the JVM. When a thread gets suspended, it could be holding internal pthread resources. In one scenario, the suspender thread could be trying to get the same resource that the suspended thread could be holding, causing a deadlock. Resolution: Fixed pthread_suspend() in pthread library to not suspend a thread while the thread is holding any spinlocks. Enhancement: No SR: 8606310139 8606310140 8606310839 8606313313 8606329004 Patch Files: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux64/libpthread.so.1 /usr/lib/hpux64/libpthread_tr.so.1 OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux32/libpthread.so.1 /usr/lib/hpux32/libpthread_tr.so.1 ProgSupport.C2-INC,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/include/sys/pthread.h what(1) Output: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux64/libpthread.so.1: Pthread Interfaces $Revision: libpthread.so.1: @(#) depot-64em R11.2 2_BL2003_1009_1 PATCH_11.22 PHCO_29111 Thu O ct 9 06:26:48 PDT 2003 $ cond.c $Date: 2003/09/11 06:56:22 $Revision: r11.22/ 1 PATCH_11.22 (PHCO_29111) pthread.c $Date: 2003/09/11 06:57:42 $Revision: r11. 22/1 PATCH_11.22 (PHCO_29111) mutex.c $Date: 2003/09/11 06:57:10 $Revision: r11.22 /2 PATCH_11.22 (PHCO_29111) extension.c $Date: 2003/09/11 06:56:38 $Revision: r1 1.22/1 PATCH_11.22 (PHCO_29111) sleep.c $Date: 2003/09/11 06:58:12 $Revision: r11.22 /1 PATCH_11.22 (PHCO_29111) perf_mutex.c $Date: 97/09/14 13:45:46 $ $Revision: 1.5.106.3 $ HP-UX/General Millicode B.11.20.00 (IPF TOT): (MILLI - 05/01/01) /usr/lib/hpux64/libpthread_tr.so.1: Pthread Interfaces $Revision: libpthread_tr.so.1: @(#) depot-64em R1 1.22_BL2003_1009_1 PATCH_11.22 PHCO_29111 Th u Oct 9 06:27:02 PDT 2003 $ cond.c $Date: 2003/09/11 06:56:22 $Revision: r11.22/ 1 PATCH_11.22 (PHCO_29111) pthread.c $Date: 2003/09/11 06:57:42 $Revision: r11. 22/1 PATCH_11.22 (PHCO_29111) mutex.c $Date: 2003/09/11 06:57:10 $Revision: r11.22 /2 PATCH_11.22 (PHCO_29111) extension.c $Date: 2003/09/11 06:56:38 $Revision: r1 1.22/1 PATCH_11.22 (PHCO_29111) sleep.c $Date: 2003/09/11 06:58:12 $Revision: r11.22 /1 PATCH_11.22 (PHCO_29111) perf_mutex.c $Date: 97/09/14 13:45:46 $ $Revision: 1.5.106.3 $ HP-UX/General Millicode B.11.20.00 (IPF TOT): (MILLI - 05/01/01) OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux32/libpthread.so.1: Pthread Interfaces $Revision: libpthread.so.1: @(#) depot-32em R11.2 2_BL2003_1009_1 PATCH_11.22 PHCO_29111 Thu O ct 9 06:24:14 PDT 2003 $ cond.c $Date: 2003/09/11 06:56:22 $Revision: r11.22/ 1 PATCH_11.22 (PHCO_29111) pthread.c $Date: 2003/09/11 06:57:42 $Revision: r11. 22/1 PATCH_11.22 (PHCO_29111) mutex.c $Date: 2003/09/11 06:57:10 $Revision: r11.22 /2 PATCH_11.22 (PHCO_29111) extension.c $Date: 2003/09/11 06:56:38 $Revision: r1 1.22/1 PATCH_11.22 (PHCO_29111) sleep.c $Date: 2003/09/11 06:58:12 $Revision: r11.22 /1 PATCH_11.22 (PHCO_29111) perf_mutex.c $Date: 97/09/14 13:45:46 $ $Revision: 1.5.106.3 $ HP-UX/General Millicode B.11.20.00 (IPF TOT): (MILLI - 05/01/01) /usr/lib/hpux32/libpthread_tr.so.1: Pthread Interfaces $Revision: libpthread_tr.so.1: @(#) depot-32em R1 1.22_BL2003_1009_1 PATCH_11.22 PHCO_29111 Th u Oct 9 06:24:31 PDT 2003 $ cond.c $Date: 2003/09/11 06:56:22 $Revision: r11.22/ 1 PATCH_11.22 (PHCO_29111) pthread.c $Date: 2003/09/11 06:57:42 $Revision: r11. 22/1 PATCH_11.22 (PHCO_29111) mutex.c $Date: 2003/09/11 06:57:10 $Revision: r11.22 /2 PATCH_11.22 (PHCO_29111) extension.c $Date: 2003/09/11 06:56:38 $Revision: r1 1.22/1 PATCH_11.22 (PHCO_29111) sleep.c $Date: 2003/09/11 06:58:12 $Revision: r11.22 /1 PATCH_11.22 (PHCO_29111) perf_mutex.c $Date: 97/09/14 13:45:46 $ $Revision: 1.5.106.3 $ HP-UX/General Millicode B.11.20.00 (IPF TOT): (MILLI - 05/01/01) ProgSupport.C2-INC,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/include/sys/pthread.h: pthread.h $Date: 2003/09/11 06:57:56 $Revision: r11. 22/2 PATCH_11.22 (PHCO_29111) */ cksum(1) Output: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: 1935195608 1242176 /usr/lib/hpux64/libpthread.so.1 111346773 1388248 /usr/lib/hpux64/libpthread_tr.so.1 OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: 2957515738 1212120 /usr/lib/hpux32/libpthread.so.1 3282726075 1363000 /usr/lib/hpux32/libpthread_tr.so.1 ProgSupport.C2-INC,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: 2431691107 41586 /usr/include/sys/pthread.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: None Patch Package Size: 1800 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_29111 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_29111.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_29111. 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_29111.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_29111.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_29111.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None