[Bug 238789] panic: mutex so_rcv not owned at /usr/src/sys/kern/uipc_socket.c:2359
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Jun 24 12:41:43 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238789
Bug ID: 238789
Summary: panic: mutex so_rcv not owned at
/usr/src/sys/kern/uipc_socket.c:2359
Product: Base System
Version: 12.0-STABLE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: greg at codeconcepts.com
If the call to sblock() in soreceive_stream() returns non-zero we 'goto out',
but since we have not yet acquired the sockbuf lock we trip the
SOCKBUF_LOCK_ASSERT() at the "out" label.
The following patch seems to work for me, but neglects to make the checks that
are done under the sockbuf lock after the "out" label.
$ svnlite diff sys/kern/uipc_socket.c
Index: sys/kern/uipc_socket.c
===================================================================
--- sys/kern/uipc_socket.c (revision 349288)
+++ sys/kern/uipc_socket.c (working copy)
@@ -2196,7 +2196,7 @@
/* Prevent other readers from entering the socket. */
error = sblock(sb, SBLOCKWAIT(flags));
if (error)
- goto out;
+ return error;
SOCKBUF_LOCK(sb);
/* Easy one, no space to copyout anything. */
svnlite info
Path: .
Working Copy Root Path: /usr/src
URL: https://svn.freebsd.org/base/stable/12
Relative URL: ^/stable/12
Repository Root: https://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 349288
Node Kind: directory
Schedule: normal
Last Changed Author: gjb
Last Changed Rev: 349232
Last Changed Date: 2019-06-20 09:34:45 -0500 (Thu, 20 Jun 2019)
[greg at sm1 src]
$ svnlite status
? sys/amd64/conf/SM1
M sys/kern/uipc_socket.c
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list