Dear SCO Customer, Support Level Supplement (SLS) ptf7096p, the UnixWare 7.0.1 Virtual Memory and STREAMS Performance Supplement, updates various OS packages on your system. Read this document completely before installing this SLS. SLS ptf7096p contains modifications to the Base System (base) and OS Multiprocessor Support (osmp) packages of UnixWare 7. If you are preparing to install any of these packages, discontinue the installation of SLS ptf7096p, install those packages first, and then install SLS ptf7096p. SLS ptf7096p replaces all versions of these SLSs: ptf7037 ptf7038 ptf7065 ptf7057 Remove all versions of SLSs ptf7037, ptf7038, ptf7065 and ptf7057 from your system prior to installing SLS ptf7096p. SLS ptf7096p replaces all previous versions of SLS ptf7096. It is not necessary to remove any older versions prior to installing SLS ptf7096p. SLS ptf7096p is dependent upon the presence of ptf7068c or later. SLS ptf7068c should be installed prior to installing ptf7096p. Note: If an earlier version of ptf7068 is installed on the system, then installation of ptf7096p will fail with this error message: UX:pkginstall: ERROR: unknown dependency type specified: X You must remove SLS ptf7096p before UnixWare 7.1.0 can be installed. SLS ptf7096p contains these files: /etc/conf/pack.d/pse/stubs.c /etc/conf/pack.d/pse/Driver_atup.o /etc/conf/pack.d/pse/Driver_mp.o /etc/conf/pack.d/segdev/Driver_atup.o /etc/conf/pack.d/segdev/Driver_mp.o /etc/conf/pack.d/ipc/Driver_atup.o /etc/conf/pack.d/ipc/Driver_mp.o /etc/conf/pack.d/segshm/Driver_atup.o /etc/conf/pack.d/segshm/Driver_mp.o /etc/conf/pack.d/specfs/Driver_atup.o /etc/conf/pack.d/specfs/Driver_mp.o /etc/conf/pack.d/proc/Driver_atup.o /etc/conf/pack.d/proc/Driver_mp.o /etc/conf/pack.d/proc/space.c /etc/conf/dtune.d/proc /etc/conf/mtune.d/proc /etc/conf/pack.d/memfs/Driver_atup.o /etc/conf/pack.d/memfs/Driver_mp.o /etc/conf/pack.d/s5/Driver_atup.o /etc/conf/pack.d/s5/Driver_mp.o /etc/conf/pack.d/util/Driver_atup.o /etc/conf/pack.d/util/Driver_mp.o /etc/conf/pack.d/vxfs/Driver_atup.o /etc/conf/pack.d/vxfs/Driver_mp.o /etc/conf/pack.d/fs/Driver_atup.o /etc/conf/pack.d/fs/Driver_mp.o /etc/conf/pack.d/fs/space.c /etc/conf/mtune.d/fs /etc/conf/pack.d/kernel/Driver_atup.o /etc/conf/pack.d/kernel/Driver_mp.o /etc/conf/pack.d/sfs/Driver_atup.o /etc/conf/pack.d/sfs/Driver_mp.o /etc/conf/pack.d/io/Driver_atup.o /etc/conf/pack.d/io/Driver_mp.o /etc/conf/pack.d/log/Driver_atup.o /etc/conf/pack.d/log/Driver_mp.o /etc/conf/pack.d/osm/Driver_atup.o /etc/conf/pack.d/osm/Driver_mp.o /etc/conf/pack.d/namefs/Driver_atup.o /etc/conf/pack.d/namefs/Driver_mp.o /etc/conf/pack.d/sad/Driver_atup.o /etc/conf/pack.d/sad/Driver_mp.o /etc/conf/pack.d/svc/Driver_atup.o /etc/conf/pack.d/svc/Driver_mp.o /etc/conf/pack.d/mem/Driver_atup.o /etc/conf/pack.d/mem/Driver_mp.o /etc/conf/pack.d/mem/space.c /etc/conf/dtune.d/mem /etc/conf/mtune.d/mem /usr/include/sys/vmparam.h /usr/include/sys/cmn_err.h /usr/include/sys/strlog.h /usr/include/sys/file.h /usr/include/sys/vnode.h /usr/include/sys/sad.h /usr/include/sys/strsubr.h /usr/lib/drf/autopush.dy /sbin/autopush /usr/sbin/autopush /usr/sbin/crash /etc/conf/pack.d/vol/Driver_atup.o /etc/conf/pack.d/vol/Driver_mp.o /etc/conf/pack.d/log SLS ptf7096p addresses all of the issues listed below. SLS ptf7096e addressed these issues: - If a system with more than 4GB of physical memory is configured to use the memory above 4GB, there may be random memory corruption. This was due to the way 36-bit physical addresses were handled in the I/O and mem drivers. This fix was originally supplied in SLSs ptf7037a and ptf7038a (now superseded). - Multi-threaded applications using the socket interface with a receive thread blocked in select() while another thread successfully calls close() on the socket, leaves the receive thread blocked in select(). This behavior is undesirable as it does not allow the receive thread to exit. This fix was first included in the now superseded ptf7038b; a further fix has also been made to correct a complication generated by the original fix. - The system can hang waiting for putbuf_lock when handling NMI. - Syslogd can miss cmn_err messages at panic. - Autopush does not work for ddi8 STREAMS drivers. These fixes, first introduced in the now superseded ptf7038b, were later found to cause kma corruption resulting in spurious panics. A subsequent fix to the sad driver was supplied in ptf7096b to resolve this issue. - linkcycle() does not return unique major numbers from ddi8 drivers. - recv sometimes concludes a socket is not a socket. - select would return 'writeable' before a connection had been established on a socket. - A problem was found in ptf7038b where an init 6 or 0 would hang the system. - If doing a non-blocking write to a socket and the socket cannot accept data, write should return -1 and set errno to EAGAIN, regardless of whether O_NONBLOCK or O_NDELAY were specified. This fix was originally supplied in ptf7057a (now superseded). - A problem was found in the now superseded ptf7038c that caused VxVM to fail. - There is a panic in munlink() during shutdown to init 1. - A VxFS filesystem sized at 131105MB or greater cannot be mounted if it was created using a 1KB blocksize. The initial symptom was first reported as diskadd failing if you tried to create a filesystem size of 131105MB or greater. - Processes hang with at least one process in pvn_getdirty. A new tunable, SENDV_FORCE_RCOPY, was added and defaulted to 1 to avoid this problem. - A small number of mprotect(2) system calls used a large amount of kernel virtual memory on large shared memory segments configured as PSE (Page Size Extension) mapped memory. - A panic occurs in freectty() when using a DDI 8 serial driver. - An MPIO failover causes system hangs and panics. Note that these MPIO solutions will also require ptf7036c or later to be fully effective. MPIO, "sdipath -o repair" can successfully mark a disk as repaired without a signature, but I/O does not happen as before. buf_breakup() (and similar) panics can occur after MPIO paths have been failed. - Changing states from init 1 to init 3 can cause the system to panic. - Credential structure cached referenced counts were being mismanaged resulting in kma corruption and thus, spurious machine panics. - Various Virtual Memory performance enhancements and fixes have been backported from UnixWare 7.1.0. - Panics occur in pae_hat_unload(), specific to having PAE enabled. - Panics occur in page_sortodd() from pvn_getdirty(). - The HAT resource lock can be held for very long periods when the address range is large. This can lead to apparent system hangs, poor sharing of system resources, and clock drift. - The latest crash binary is included to enable crash to work with the VM enhancements backported from UnixWare 7.1.0. - Panics occur in pae_hat_loadpte, also specific to having PAE enabled. SLS ptf7096f addressed these issues: - A problem with the zoned bit map (ZBM) code could result in a system hang while allocating kernel virtual memory, due to excessive KVM fragmentation. - Poll or select on a udp socket could incorrectly report 'writeable'. SLS ptf7096g addressed this issue: - A problem with VM page_anonpageout involving time loss and machine hangs was fixed. SLS ptf7096h addressed these issues: - A problem where the DPT DDI8 driver max was set to 64KB, but 128KB was still being transferred, was fixed. - Panics may occur in sv_signal() called from hat_asunload(), on cpu 0 of an 8*MP Saber system. - Possible hangs can occur while two CPUs looping alternately in hat_load(). - The algorithm to distribute jobs fairly across CPUs by making changes in hat_load() was changed. SLS ptf7096i addressed this issue: - cpio cannot create a volume greater than 2GB on the tape device when the blocksize is set to 5120, resulting in this error: UX: CPIO: HALT: Cannot write to device This SLS allows you to create volumes up to 4GB in size on tapes. SLS ptf7096j addressed this issue: - A correction to the fix in ptf7096i was added. SLS ptf7096k addressed these issues: - System deadlock in canput() occurs due to locked stream. - buf_breakup can panic with fixed-blocks greater than 512 bytes. - Some actions can consume the whole of memory, forcing the system to start swapping. SLS ptf7096l addressed these issues: - There is a kma corrupting issue with do_strategy(), do_biostart(), and spec_open(). - Security holes in the usage of /tmp involving linking or symbolic linking of well-known temporary filenames to critical system files exist. The fix is implemented as additional restrictions on link, rename (mv) and symbolic linking on directories that have the sticky bit set. - A system PANIC occurs in streams routines (the eE DDI8 driver). The panic appears on any one of three system calls used in the transmit side of the driver: msgscgth(), msgpullup_physreq(), or getq(). - A security problem has been eliminated by disallowing core dumps if there is already a corefile (or any other object) of the same name in the current directory. - A security problem has been eliminated by disallowing core dumps of setgid processes (processes running with an effective group ID different from the user's real group ID). An administrator may now select old-style corefile naming, whereby the process-ID suffix normally attached to every corefile name is eliminated and every corefile is just named "core". This is intended to address situations in which it is unacceptable for a disk to fill up with corefiles. It is recommended that administrators remain with the current default behavior, however. The tunable that controls this behavior is named COREFILE_PIDS. - There is a problem with s5 filesystem device node major/minor number corruption. This problem was originally addressed by SLS ptf7065a (now superseded). SLS ptf7096m addressed these issues: - Address space of privileged processes was accessible by regular users. Privileged processes could then be traced opening several security holes. This has been fixed by making address space inaccessible to regular users. - Privileged processes could core dump. Sensitive data is often located inside the core files of privileged processes. This has been fixed by no longer allowing privileged processes to core dump. SLS ptf7096n addressed this issue: - Machine hangs may occur if syslogd is enabled. SLS ptf7096o addressed these issues: - The vxfs driver caused a kma paranoid panic due to not checking for vnode softcounts before kmem_free()ing the vx_biginode. - Various small bugs in the memfs and proc drivers were fixed. SLS ptf7096p now additionally addresses these issues: - A bug in the vx_rename() routine of the VxFS driver that caused a kernel panic was fixed. - A panic in logcons() at logcons+75 was fixed. Software Notes and Recommendations ---------------------------------- SLS ptf7096p should only be installed on: UnixWare 7 Release 7.0.1 To find out what release your system is running, use the command: # uname -sv The command will return "UnixWare 7.0.1" if this release is installed. To determine if the SLS ptf7068c (or later) prerequisite patch is installed, type the command: # pkginfo -l ptf7068 | grep VERSION If SLS ptf7068c is installed, this command will return "VERSION: c". Installation Instructions ------------------------- 1. Download the ptf7096p.Z file 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/ptf7096p.Z # pkgadd -d /tmp/ptf7096p # rm /tmp/ptf7096p 3. Shut down and reboot the system after installing the SLS package. Note: A system reboot is required following installation of this SLS for the kernel sections to take effect. However, if you have not already installed any other SLS that you need, you should do so before rebooting. The release notes displayed prior to installation can be found in: /var/sadm/pkg/ptf7096/install/ptf7096.txt Removal Instructions -------------------- 1. As root, remove the SLS package using these commands: $ su Password: # pkgrm ptf7096 2. Shut down and reboot the system after removing the SLS package. If you have questions regarding this SLS, or the product on which it is installed, please contact your software supplier.