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: sparc
    NOTE: 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.
