Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jun 2017 09:22:53 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 220217] deadlock on enc and pf
Message-ID:  <bug-220217-8-yMQwibPtHj@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-220217-8@https.bugs.freebsd.org/bugzilla/>
References:  <bug-220217-8@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220217

--- Comment #3 from Kristof Provost <kp@freebsd.org> ---
(In reply to vegeta from comment #2)
There is no other thread. We assert that 'rw_wowner(rw) != curthread', so the
thread holding the lock must not be the current thread (trying to acquire the
lock).

That assertion fails, so we are the thread holding the lock, yet we try to lock
again.

That seems to be in tcp_timer_rexmt(). It holds a write lock on the struct
inpcb, so when pf goes to look up the inpcb and tries to get a read lock we run
into this assertion failure. (tcp_output() in fact asserts that the inpcb must
be write locked when it's called.)

I'm not quite sure how to fix this though. In fact, right now I don't
understand how this ever works.

-- 
You are receiving this mail because:
You are the assignee for the bug.


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-220217-8-yMQwibPtHj>