Re: rtnl_mutex deadlock?
From: Jiri Pirko <jiri@resnulli.us>
Date: 2015-08-05 07:43:33
Wed, Aug 05, 2015 at 07:31:30AM CEST, cwang@twopensource.com wrote:
On Tue, Aug 4, 2015 at 8:48 AM, Linus Torvalds [off-list ref] wrote:quoted
Sorry for the spamming of random rtnetlink people, but I just resumed my laptop at PDX, and networking was dead. It looks like a deadlock on rtnl_mutex, possibly due to some error path not releasing the lock. No network op was making any progress, and as you can see from the attached sysrq-w, it all seems to be hung in rtnl_lock(). The call trace from NetworkManager looks different from the others, and looks to me like it might actually be a recursive invocation of rtnetlink_rcv(), but since I have a fairly light configuration on this laptop and don't have frame pointers enabled, I'm not sure how reliable that stack trace is. It might be just stale entries. But if they aren't stale, then that would certainly explain the deadlock.You are right, looks like kernel received a GETLINK netlink message from NetworkManager and then replied back but accidentally sent the reply to itself, seems something wrong with NETLINK_CB(skb).portid.
Indeed. Most probably, NETLINK_CB(skb).portid got zeroed. Linus, are you able to reproduce this or is it a one-time issue? Thanks!