Dear SCO Customer, Support Level Supplement (SLS) PTF7052B, the UnixWare 7.0.1 libthread Patch, corrects various problems that may be seen by applications that link against libthread. SLS PTF7052B addresses these issues: 1. The semantics of fork() for multithreaded programs changed in UnixWare 7.0.1 to conform with Posix specified behavior. Fork, instead of creating a copy of each application thread, just created a copy of the thread that invoked fork. Applications not prepared for this behavior could deadlock if the disappearing threads held critical resources. PTF7052B restores the old behavior for fork. Applications that need the Posix behavior can call fork1() directly or define and export a global int called _thread_sys_behavior and set its value to 1. This will cause fork to behave like fork1. 2. Applications that called fork() or fork1() could deadlock if the child process performed any operations involving signal disposition (sigaction(), sigset(), signal()) before calling exec. 3. The thread library was incorrectly setting the signal mask used while a signal was being handled for handlers set via sigaction(). The mask did not include those signals masked by the thread before the signal was received. 4. Applications that invoked lio_listio() could become deadlocked under rare circumstances. 5. Internal thread library data structures could become corrupted in applications that created and then killed large numbers of threads. 6. Calls to sigwait() that selected the signal SIGPOLL might return an error code after a successful invocation and incorrectly set the signal mask. 7. Programs that maintain different priorities for multiplexed threads can deadlock due to internal lock hierarchy problems in libthread. 8. High priority threads in a process can be starved resulting in a process hang. 9. Programs that continuously and rapidly suspend/continue a given thread can deadlock or dump core. 10. Programs that call signal() with a signal number larger than MAXSIG, will corrupt internal libthread data and may dump core. SLS PTF7052B contains: /usr/lib/libthread.so.1 /usr/lib/libthreadT.so.1 /usr/lib/libthread.so (link to /usr/lib/libthread.so.1) /usr/lib/libthreadT.so (link to /usr/lib/libthreadT.so.1) The release notes, displayed prior to installation, can be found in: /var/sadm/pkg/ptf7052/install/ptf7052.txt Software Notes and Recommendations ---------------------------------- SLS PTF7052B should only be installed on: UnixWare 7.0.1 Note: SLS PTF7052B should be installed prior to installing the Java Development Kit (JDK) 1.1.3w for SCO operating systems. Hardware Notes and Recommendations ---------------------------------- This SLS is intended for i486, Pentium, Pentium Pro, Pentium II, and compatible CPUs. Installation Instructions ------------------------- 1. Download the ptf7052b.Z and ptf7052b.txt files to the /tmp directory on your machine. 2. As root, uncompress the file and add the SLS package to your system using these commands: $ su Password: # uncompress /tmp/ptf7052b.Z # pkgadd -d /tmp/ptf7052b # rm /tmp/ptf7052b 3. Reboot the system after installing this SLS package. Removal Instructions -------------------- 1. As root, remove the SLS package using these commands: $ su Password: # pkgrm ptf7052 2. Reboot the system after removing this SLS package. If you have questions regarding this SLS, or the product on which it is installed, please contact your software supplier.