UNIX domain sockets MFC's

Robert Watson rwatson at FreeBSD.org
Tue May 8 12:31:47 UTC 2007


Dear all,

I have just completed the merge of a significant number of UNIX domain socket 
bug fixes and cleanups from HEAD to RELENG_6.  While my hope is that these are 
generally low-risk, and should improve UNIX domain socket stability and 
performance under load, there were quite a few changes involved.  As such, 
please keep an eye out for any new problems with UNIX domain sockets, and drop 
me an e-mail if you run into any.  The changes in the recent MFC spree 
include:

- Additional MAC check for UNIX domain socket connect().

- Cleanup of structure, comments, white space, and consolidation of
   uipc_proto.c into uipc_usrreq.c.  Removal of redundant code.

- Fixed races involving simultaneous bind() and connect() between two threads
   or processes on the same UNIX domain socket.

- Reduced period of overlapped acquisition of socket buffer mutexes during
   send/receive, which should lower lock contention under load.

Right now I am tracking two known issues with UNIX domain sockets in RELENG_6:

- Reported NULL point derference in unp_connect(), which occurs due to the
   dropping of locks around sonewconn().  This is fixed in HEAD, and I am
   preparing an MFC of this patch.

- Reported UNIX domain socket connection leak.  This is not yet fully
   diagnosed.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-stable mailing list