Patch-ID# 100784-01 Keywords: ipc, lock, msg, timer Synopsis: SunOS 4.1.2, 4.1.3: System V msgq code can become deadlocked under extreme load. Date: Jul/14/93 Solaris Release: 1.0.1 1.1 SunOS Release: 4.1.2 4.1.3 Unbundled Product: Unbundled Release: BugId's fixed with this patch: 1045223 Relevant Architectures: sun4 sun4c sun4m Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Files included with this patch: ipc_msg.o Problem Description: Incorrect logic of the MSGLOCK and MSGUNLOCK macros in the case where processes have set interval timers running before making a msgsnd or a msgrcv system call. The problem with MSG_LOCK is that the sleep has PCATCH set and if the sleep returns non zero because the process was signaled, the code clears the MSG_LOCKWAIT bit. The problem appears when more than one process are sleeping on the queue then the only first process is signalled and rest stay in sleeping state until signalled. Note: This patch is compatible with DBE 1.2 and 1.3, just make sure that DBE is installed first, then install this patch. Patch Installation Instructions: -------------------------------- mv /sys/`arch -k`/OBJ/ipc_msg.o /sys/sun4m/`arch -k`/ipc_msg.o.FCS cp `arch -k`/{OS Release}/ipc_msg.o /sys/`arch -k`/OBJ Config and build a new kernel and boot with the new kernel. Special Install Instructions: ----------------------------- None.