netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [syzbot] [net?] WARNING: bad unlock balance in do_setlink
@ 2025-04-07  5:57 syzbot
  2025-04-07  6:37 ` Kuniyuki Iwashima
  0 siblings, 1 reply; 10+ messages in thread
From: syzbot @ 2025-04-07  5:57 UTC (permalink / raw)
  To: andrew+netdev, davem, edumazet, horms, kuba, kuniyu, linux-kernel,
	netdev, pabeni, sdf, syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    8bc251e5d874 Merge tag 'nf-25-04-03' of git://git.kernel.o..
git tree:       net
console+strace: https://syzkaller.appspot.com/x/log.txt?x=1133afb0580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=24f9c4330e7c0609
dashboard link: https://syzkaller.appspot.com/bug?extid=45016fe295243a7882d3
compiler:       Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=1040823f980000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=151d194c580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/a500d5daba83/disk-8bc251e5.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/2459c792199a/vmlinux-8bc251e5.xz
kernel image: https://storage.googleapis.com/syzbot-assets/558655fb055e/bzImage-8bc251e5.xz

The issue was bisected to:

commit dbfc99495d960134bfe1a4f13849fb0d5373b42c
Author: Stanislav Fomichev <sdf@fomichev.me>
Date:   Tue Apr 1 16:34:47 2025 +0000

    net: dummy: request ops lock

bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=13233998580000
final oops:     https://syzkaller.appspot.com/x/report.txt?x=10a33998580000
console output: https://syzkaller.appspot.com/x/log.txt?x=17233998580000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+45016fe295243a7882d3@syzkaller.appspotmail.com
Fixes: dbfc99495d96 ("net: dummy: request ops lock")

=====================================
WARNING: bad unlock balance detected!
6.14.0-syzkaller-12504-g8bc251e5d874 #0 Not tainted
-------------------------------------
syz-executor814/5834 is trying to release lock (&dev_instance_lock_key) at:
[<ffffffff89f41f56>] netdev_unlock include/linux/netdevice.h:2756 [inline]
[<ffffffff89f41f56>] netdev_unlock_ops include/net/netdev_lock.h:48 [inline]
[<ffffffff89f41f56>] do_setlink+0xc26/0x43a0 net/core/rtnetlink.c:3406
but there are no more locks to release!

other info that might help us debug this:
1 lock held by syz-executor814/5834:
 #0: ffffffff900fc408 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_lock net/core/rtnetlink.c:80 [inline]
 #0: ffffffff900fc408 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_nets_lock net/core/rtnetlink.c:341 [inline]
 #0: ffffffff900fc408 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_newlink+0xd68/0x1fe0 net/core/rtnetlink.c:4064

stack backtrace:
CPU: 0 UID: 0 PID: 5834 Comm: syz-executor814 Not tainted 6.14.0-syzkaller-12504-g8bc251e5d874 #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
 print_unlock_imbalance_bug+0x185/0x1a0 kernel/locking/lockdep.c:5296
 __lock_release kernel/locking/lockdep.c:5535 [inline]
 lock_release+0x1ed/0x3e0 kernel/locking/lockdep.c:5887
 __mutex_unlock_slowpath+0xee/0x800 kernel/locking/mutex.c:907
 netdev_unlock include/linux/netdevice.h:2756 [inline]
 netdev_unlock_ops include/net/netdev_lock.h:48 [inline]
 do_setlink+0xc26/0x43a0 net/core/rtnetlink.c:3406
 rtnl_group_changelink net/core/rtnetlink.c:3783 [inline]
 __rtnl_newlink net/core/rtnetlink.c:3937 [inline]
 rtnl_newlink+0x1619/0x1fe0 net/core/rtnetlink.c:4065
 rtnetlink_rcv_msg+0x80f/0xd70 net/core/rtnetlink.c:6955
 netlink_rcv_skb+0x208/0x480 net/netlink/af_netlink.c:2534
 netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]
 netlink_unicast+0x7f8/0x9a0 net/netlink/af_netlink.c:1339
 netlink_sendmsg+0x8c3/0xcd0 net/netlink/af_netlink.c:1883
 sock_sendmsg_nosec net/socket.c:712 [inline]
 __sock_sendmsg+0x221/0x270 net/socket.c:727
 ____sys_sendmsg+0x523/0x860 net/socket.c:2566
 ___sys_sendmsg net/socket.c:2620 [inline]
 __sys_sendmsg+0x271/0x360 net/socket.c:2652
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f8427b614a9
Code: 48 83 c4 28 c3 e8 37 17 00 00 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fff9b59f3a8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007fff9b59f578 RCX: 00007f8427b614a9
RDX: 0000000000000000 RSI: 0000200000000300 RDI: 0000000000000004
RBP: 00007f8427bd4610 R08: 000000000000000c R09: 00007fff9b59f578
R10: 000000000000001b R11: 0000000000000246 R12: 0000000000000001
R13:


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
For information about bisection process see: https://goo.gl/tpsmEJ#bisection

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-07  5:57 [syzbot] [net?] WARNING: bad unlock balance in do_setlink syzbot
@ 2025-04-07  6:37 ` Kuniyuki Iwashima
  2025-04-07  8:13   ` syzbot
  0 siblings, 1 reply; 10+ messages in thread
From: Kuniyuki Iwashima @ 2025-04-07  6:37 UTC (permalink / raw)
  To: syzbot+45016fe295243a7882d3
  Cc: andrew+netdev, davem, edumazet, horms, kuba, kuniyu, linux-kernel,
	netdev, pabeni, sdf, syzkaller-bugs

From: syzbot <syzbot+45016fe295243a7882d3@syzkaller.appspotmail.com>
Date: Sun, 06 Apr 2025 22:57:35 -0700
> Hello,
> 
> syzbot found the following issue on:
> 
> HEAD commit:    8bc251e5d874 Merge tag 'nf-25-04-03' of git://git.kernel.o..
> git tree:       net
> console+strace: https://syzkaller.appspot.com/x/log.txt?x=1133afb0580000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=24f9c4330e7c0609
> dashboard link: https://syzkaller.appspot.com/bug?extid=45016fe295243a7882d3
> compiler:       Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=1040823f980000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=151d194c580000
> 
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/a500d5daba83/disk-8bc251e5.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/2459c792199a/vmlinux-8bc251e5.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/558655fb055e/bzImage-8bc251e5.xz
> 
> The issue was bisected to:
> 
> commit dbfc99495d960134bfe1a4f13849fb0d5373b42c
> Author: Stanislav Fomichev <sdf@fomichev.me>
> Date:   Tue Apr 1 16:34:47 2025 +0000
> 
>     net: dummy: request ops lock
> 
> bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=13233998580000
> final oops:     https://syzkaller.appspot.com/x/report.txt?x=10a33998580000
> console output: https://syzkaller.appspot.com/x/log.txt?x=17233998580000
> 
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+45016fe295243a7882d3@syzkaller.appspotmail.com
> Fixes: dbfc99495d96 ("net: dummy: request ops lock")
> 
> =====================================
> WARNING: bad unlock balance detected!
> 6.14.0-syzkaller-12504-g8bc251e5d874 #0 Not tainted
> -------------------------------------
> syz-executor814/5834 is trying to release lock (&dev_instance_lock_key) at:
> [<ffffffff89f41f56>] netdev_unlock include/linux/netdevice.h:2756 [inline]
> [<ffffffff89f41f56>] netdev_unlock_ops include/net/netdev_lock.h:48 [inline]
> [<ffffffff89f41f56>] do_setlink+0xc26/0x43a0 net/core/rtnetlink.c:3406
> but there are no more locks to release!

#syz test

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index c23852835050..925d634f724e 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -3027,7 +3027,7 @@ static int do_setlink(const struct sk_buff *skb, struct net_device *dev,
 
 	err = validate_linkmsg(dev, tb, extack);
 	if (err < 0)
-		goto errout;
+		return err;
 
 	if (tb[IFLA_IFNAME])
 		nla_strscpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ);

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-07  6:37 ` Kuniyuki Iwashima
@ 2025-04-07  8:13   ` syzbot
  2025-04-07 14:19     ` Stanislav Fomichev
  0 siblings, 1 reply; 10+ messages in thread
From: syzbot @ 2025-04-07  8:13 UTC (permalink / raw)
  To: andrew, davem, edumazet, horms, kuba, kuniyu, linux-kernel,
	netdev, pabeni, sdf, syzkaller-bugs

Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
unregister_netdevice: waiting for DEV to become free

unregister_netdevice: waiting for batadv0 to become free. Usage count = 3


Tested on:

commit:         61f96e68 Merge tag 'net-6.15-rc1' of git://git.kernel...
git tree:       net
console output: https://syzkaller.appspot.com/x/log.txt?x=111c523f980000
kernel config:  https://syzkaller.appspot.com/x/.config?x=f2054704dd53fb80
dashboard link: https://syzkaller.appspot.com/bug?extid=45016fe295243a7882d3
compiler:       Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
patch:          https://syzkaller.appspot.com/x/patch.diff?x=12f3bd98580000


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-07  8:13   ` syzbot
@ 2025-04-07 14:19     ` Stanislav Fomichev
  2025-04-07 16:12       ` Kuniyuki Iwashima
  0 siblings, 1 reply; 10+ messages in thread
From: Stanislav Fomichev @ 2025-04-07 14:19 UTC (permalink / raw)
  To: syzbot
  Cc: andrew, davem, edumazet, horms, kuba, kuniyu, linux-kernel,
	netdev, pabeni, sdf, syzkaller-bugs

On 04/07, syzbot wrote:
> Hello,
> 
> syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> unregister_netdevice: waiting for DEV to become free
> 
> unregister_netdevice: waiting for batadv0 to become free. Usage count = 3

So it does fix the lock unbalance issue, but now there is a hang?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-07 14:19     ` Stanislav Fomichev
@ 2025-04-07 16:12       ` Kuniyuki Iwashima
  2025-04-08  8:11         ` Aleksandr Nogikh
  0 siblings, 1 reply; 10+ messages in thread
From: Kuniyuki Iwashima @ 2025-04-07 16:12 UTC (permalink / raw)
  To: stfomichev
  Cc: andrew, davem, edumazet, horms, kuba, kuniyu, linux-kernel,
	netdev, pabeni, sdf, syzbot+45016fe295243a7882d3, syzkaller-bugs

From: Stanislav Fomichev <stfomichev@gmail.com>
Date: Mon, 7 Apr 2025 07:19:54 -0700
> On 04/07, syzbot wrote:
> > Hello,
> > 
> > syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> > unregister_netdevice: waiting for DEV to become free
> > 
> > unregister_netdevice: waiting for batadv0 to become free. Usage count = 3
> 
> So it does fix the lock unbalance issue, but now there is a hang?

I think this is an orthogonal issue.

I saw this in another report as well.
https://lore.kernel.org/netdev/67f208ea.050a0220.0a13.025b.GAE@google.com/

syzbot may want to find a better way to filter this kind of noise.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-07 16:12       ` Kuniyuki Iwashima
@ 2025-04-08  8:11         ` Aleksandr Nogikh
  2025-04-08 10:44           ` Dmitry Vyukov
  0 siblings, 1 reply; 10+ messages in thread
From: Aleksandr Nogikh @ 2025-04-08  8:11 UTC (permalink / raw)
  To: Kuniyuki Iwashima, Dmitry Vyukov
  Cc: stfomichev, andrew, davem, edumazet, horms, kuba, linux-kernel,
	netdev, pabeni, sdf, syzbot+45016fe295243a7882d3, syzkaller-bugs

On Mon, Apr 7, 2025 at 6:13 PM 'Kuniyuki Iwashima' via syzkaller-bugs
<syzkaller-bugs@googlegroups.com> wrote:
>
> From: Stanislav Fomichev <stfomichev@gmail.com>
> Date: Mon, 7 Apr 2025 07:19:54 -0700
> > On 04/07, syzbot wrote:
> > > Hello,
> > >
> > > syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> > > unregister_netdevice: waiting for DEV to become free
> > >
> > > unregister_netdevice: waiting for batadv0 to become free. Usage count = 3
> >
> > So it does fix the lock unbalance issue, but now there is a hang?
>
> I think this is an orthogonal issue.
>
> I saw this in another report as well.
> https://lore.kernel.org/netdev/67f208ea.050a0220.0a13.025b.GAE@google.com/
>
> syzbot may want to find a better way to filter this kind of noise.
>

Syzbot treats this message as a problem worthy of reporting since a
long time (Cc'd Dmitry who may remember the context):
https://github.com/google/syzkaller/commit/7a67784ca8bdc3b26cce2f0ec9a40d2dd9ec9396

Since v6.15-rc1, we do observe it happen at least 10x more often than
before, both during fuzzing and while processing #syz test commands:
https://syzkaller.appspot.com/bug?extid=881d65229ca4f9ae8c84

-- 
Aleksandr

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-08  8:11         ` Aleksandr Nogikh
@ 2025-04-08 10:44           ` Dmitry Vyukov
  2025-04-08 11:33             ` Eric Dumazet
  0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Vyukov @ 2025-04-08 10:44 UTC (permalink / raw)
  To: Aleksandr Nogikh
  Cc: Kuniyuki Iwashima, stfomichev, andrew, davem, edumazet, horms,
	kuba, linux-kernel, netdev, pabeni, sdf,
	syzbot+45016fe295243a7882d3, syzkaller-bugs

On Tue, 8 Apr 2025 at 10:11, Aleksandr Nogikh <nogikh@google.com> wrote:
>
> On Mon, Apr 7, 2025 at 6:13 PM 'Kuniyuki Iwashima' via syzkaller-bugs
> <syzkaller-bugs@googlegroups.com> wrote:
> >
> > From: Stanislav Fomichev <stfomichev@gmail.com>
> > Date: Mon, 7 Apr 2025 07:19:54 -0700
> > > On 04/07, syzbot wrote:
> > > > Hello,
> > > >
> > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> > > > unregister_netdevice: waiting for DEV to become free
> > > >
> > > > unregister_netdevice: waiting for batadv0 to become free. Usage count = 3
> > >
> > > So it does fix the lock unbalance issue, but now there is a hang?
> >
> > I think this is an orthogonal issue.
> >
> > I saw this in another report as well.
> > https://lore.kernel.org/netdev/67f208ea.050a0220.0a13.025b.GAE@google.com/
> >
> > syzbot may want to find a better way to filter this kind of noise.
> >
>
> Syzbot treats this message as a problem worthy of reporting since a
> long time (Cc'd Dmitry who may remember the context):
> https://github.com/google/syzkaller/commit/7a67784ca8bdc3b26cce2f0ec9a40d2dd9ec9396
>
> Since v6.15-rc1, we do observe it happen at least 10x more often than
> before, both during fuzzing and while processing #syz test commands:
> https://syzkaller.appspot.com/bug?extid=881d65229ca4f9ae8c84

IIUC this error means a leaked reference count on a device, and the
device and everything it references leaked forever + a kernel thread
looping forever. This does not look like noise.

Eric, should know more. Eric fixed a bunch of these bugs and added a
ref count tracker to devices to provide better diagnostics. For some
reason I don't see the reftracker output in the console output, but
CONFIG_NET_DEV_REFCNT_TRACKER=y is enabled in the config.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-08 10:44           ` Dmitry Vyukov
@ 2025-04-08 11:33             ` Eric Dumazet
  2025-04-08 20:16               ` Aleksandr Nogikh
  0 siblings, 1 reply; 10+ messages in thread
From: Eric Dumazet @ 2025-04-08 11:33 UTC (permalink / raw)
  To: Dmitry Vyukov
  Cc: Aleksandr Nogikh, Kuniyuki Iwashima, stfomichev, andrew, davem,
	horms, kuba, linux-kernel, netdev, pabeni, sdf,
	syzbot+45016fe295243a7882d3, syzkaller-bugs

On Tue, Apr 8, 2025 at 12:44 PM Dmitry Vyukov <dvyukov@google.com> wrote:
>
> On Tue, 8 Apr 2025 at 10:11, Aleksandr Nogikh <nogikh@google.com> wrote:
> >
> > On Mon, Apr 7, 2025 at 6:13 PM 'Kuniyuki Iwashima' via syzkaller-bugs
> > <syzkaller-bugs@googlegroups.com> wrote:
> > >
> > > From: Stanislav Fomichev <stfomichev@gmail.com>
> > > Date: Mon, 7 Apr 2025 07:19:54 -0700
> > > > On 04/07, syzbot wrote:
> > > > > Hello,
> > > > >
> > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> > > > > unregister_netdevice: waiting for DEV to become free
> > > > >
> > > > > unregister_netdevice: waiting for batadv0 to become free. Usage count = 3
> > > >
> > > > So it does fix the lock unbalance issue, but now there is a hang?
> > >
> > > I think this is an orthogonal issue.
> > >
> > > I saw this in another report as well.
> > > https://lore.kernel.org/netdev/67f208ea.050a0220.0a13.025b.GAE@google.com/
> > >
> > > syzbot may want to find a better way to filter this kind of noise.
> > >
> >
> > Syzbot treats this message as a problem worthy of reporting since a
> > long time (Cc'd Dmitry who may remember the context):
> > https://github.com/google/syzkaller/commit/7a67784ca8bdc3b26cce2f0ec9a40d2dd9ec9396
> >
> > Since v6.15-rc1, we do observe it happen at least 10x more often than
> > before, both during fuzzing and while processing #syz test commands:
> > https://syzkaller.appspot.com/bug?extid=881d65229ca4f9ae8c84
>
> IIUC this error means a leaked reference count on a device, and the
> device and everything it references leaked forever + a kernel thread
> looping forever. This does not look like noise.
>
> Eric, should know more. Eric fixed a bunch of these bugs and added a
> ref count tracker to devices to provide better diagnostics. For some
> reason I don't see the reftracker output in the console output, but
> CONFIG_NET_DEV_REFCNT_TRACKER=y is enabled in the config.

I think that Kuniyuki patch was fixing the original syzbot report.

After fixing this trivial bug, another bug showed up,
and this second bug triggered "syzbot may want to find a better way to
filter this kind of noise." comment.


-ETOOMANYBUGS.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-08 11:33             ` Eric Dumazet
@ 2025-04-08 20:16               ` Aleksandr Nogikh
  2025-04-08 20:41                 ` Eric Dumazet
  0 siblings, 1 reply; 10+ messages in thread
From: Aleksandr Nogikh @ 2025-04-08 20:16 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Dmitry Vyukov, Kuniyuki Iwashima, stfomichev, andrew, davem,
	horms, kuba, linux-kernel, netdev, pabeni, sdf,
	syzbot+45016fe295243a7882d3, syzkaller-bugs

On Tue, Apr 8, 2025 at 1:33 PM Eric Dumazet <edumazet@google.com> wrote:
>
> On Tue, Apr 8, 2025 at 12:44 PM Dmitry Vyukov <dvyukov@google.com> wrote:
> >
> > On Tue, 8 Apr 2025 at 10:11, Aleksandr Nogikh <nogikh@google.com> wrote:
> > >
> > > On Mon, Apr 7, 2025 at 6:13 PM 'Kuniyuki Iwashima' via syzkaller-bugs
> > > <syzkaller-bugs@googlegroups.com> wrote:
> > > >
> > > > From: Stanislav Fomichev <stfomichev@gmail.com>
> > > > Date: Mon, 7 Apr 2025 07:19:54 -0700
> > > > > On 04/07, syzbot wrote:
> > > > > > Hello,
> > > > > >
> > > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> > > > > > unregister_netdevice: waiting for DEV to become free
> > > > > >
> > > > > > unregister_netdevice: waiting for batadv0 to become free. Usage count = 3
> > > > >
> > > > > So it does fix the lock unbalance issue, but now there is a hang?
> > > >
> > > > I think this is an orthogonal issue.
> > > >
> > > > I saw this in another report as well.
> > > > https://lore.kernel.org/netdev/67f208ea.050a0220.0a13.025b.GAE@google.com/
> > > >
> > > > syzbot may want to find a better way to filter this kind of noise.
> > > >
> > >
> > > Syzbot treats this message as a problem worthy of reporting since a
> > > long time (Cc'd Dmitry who may remember the context):
> > > https://github.com/google/syzkaller/commit/7a67784ca8bdc3b26cce2f0ec9a40d2dd9ec9396
> > >
> > > Since v6.15-rc1, we do observe it happen at least 10x more often than
> > > before, both during fuzzing and while processing #syz test commands:
> > > https://syzkaller.appspot.com/bug?extid=881d65229ca4f9ae8c84
> >
> > IIUC this error means a leaked reference count on a device, and the
> > device and everything it references leaked forever + a kernel thread
> > looping forever. This does not look like noise.
> >
> > Eric, should know more. Eric fixed a bunch of these bugs and added a
> > ref count tracker to devices to provide better diagnostics. For some
> > reason I don't see the reftracker output in the console output, but
> > CONFIG_NET_DEV_REFCNT_TRACKER=y is enabled in the config.
>
> I think that Kuniyuki patch was fixing the original syzbot report.
>
> After fixing this trivial bug, another bug showed up,
> and this second bug triggered "syzbot may want to find a better way to
> filter this kind of noise." comment.

FWIW I've just bisected the recent spike in "unregister_netdevice:
waiting for batadv0 to become free" and git bisect pointed to:

00b35530811f2aa3d7ceec2dbada80861c7632a8
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Feb 6 14:04:22 2025 +0000

    batman-adv: adopt netdev_hold() / netdev_put()

    Add a device tracker to struct batadv_hard_iface to help
    debugging of network device refcount imbalances.


Eric, could you please have a look?

>
>
> -ETOOMANYBUGS.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [syzbot] [net?] WARNING: bad unlock balance in do_setlink
  2025-04-08 20:16               ` Aleksandr Nogikh
@ 2025-04-08 20:41                 ` Eric Dumazet
  0 siblings, 0 replies; 10+ messages in thread
From: Eric Dumazet @ 2025-04-08 20:41 UTC (permalink / raw)
  To: Aleksandr Nogikh, Sven Eckelmann
  Cc: Dmitry Vyukov, Kuniyuki Iwashima, stfomichev, andrew, davem,
	horms, kuba, linux-kernel, netdev, pabeni, sdf,
	syzbot+45016fe295243a7882d3, syzkaller-bugs

On Tue, Apr 8, 2025 at 10:16 PM Aleksandr Nogikh <nogikh@google.com> wrote:
>
> On Tue, Apr 8, 2025 at 1:33 PM Eric Dumazet <edumazet@google.com> wrote:
> >
> > On Tue, Apr 8, 2025 at 12:44 PM Dmitry Vyukov <dvyukov@google.com> wrote:
> > >
> > > On Tue, 8 Apr 2025 at 10:11, Aleksandr Nogikh <nogikh@google.com> wrote:
> > > >
> > > > On Mon, Apr 7, 2025 at 6:13 PM 'Kuniyuki Iwashima' via syzkaller-bugs
> > > > <syzkaller-bugs@googlegroups.com> wrote:
> > > > >
> > > > > From: Stanislav Fomichev <stfomichev@gmail.com>
> > > > > Date: Mon, 7 Apr 2025 07:19:54 -0700
> > > > > > On 04/07, syzbot wrote:
> > > > > > > Hello,
> > > > > > >
> > > > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> > > > > > > unregister_netdevice: waiting for DEV to become free
> > > > > > >
> > > > > > > unregister_netdevice: waiting for batadv0 to become free. Usage count = 3
> > > > > >
> > > > > > So it does fix the lock unbalance issue, but now there is a hang?
> > > > >
> > > > > I think this is an orthogonal issue.
> > > > >
> > > > > I saw this in another report as well.
> > > > > https://lore.kernel.org/netdev/67f208ea.050a0220.0a13.025b.GAE@google.com/
> > > > >
> > > > > syzbot may want to find a better way to filter this kind of noise.
> > > > >
> > > >
> > > > Syzbot treats this message as a problem worthy of reporting since a
> > > > long time (Cc'd Dmitry who may remember the context):
> > > > https://github.com/google/syzkaller/commit/7a67784ca8bdc3b26cce2f0ec9a40d2dd9ec9396
> > > >
> > > > Since v6.15-rc1, we do observe it happen at least 10x more often than
> > > > before, both during fuzzing and while processing #syz test commands:
> > > > https://syzkaller.appspot.com/bug?extid=881d65229ca4f9ae8c84
> > >
> > > IIUC this error means a leaked reference count on a device, and the
> > > device and everything it references leaked forever + a kernel thread
> > > looping forever. This does not look like noise.
> > >
> > > Eric, should know more. Eric fixed a bunch of these bugs and added a
> > > ref count tracker to devices to provide better diagnostics. For some
> > > reason I don't see the reftracker output in the console output, but
> > > CONFIG_NET_DEV_REFCNT_TRACKER=y is enabled in the config.
> >
> > I think that Kuniyuki patch was fixing the original syzbot report.
> >
> > After fixing this trivial bug, another bug showed up,
> > and this second bug triggered "syzbot may want to find a better way to
> > filter this kind of noise." comment.
>
> FWIW I've just bisected the recent spike in "unregister_netdevice:
> waiting for batadv0 to become free" and git bisect pointed to:
>
> 00b35530811f2aa3d7ceec2dbada80861c7632a8
> Author: Eric Dumazet <edumazet@google.com>
> Date:   Thu Feb 6 14:04:22 2025 +0000
>
>     batman-adv: adopt netdev_hold() / netdev_put()
>
>     Add a device tracker to struct batadv_hard_iface to help
>     debugging of network device refcount imbalances.
>
>
> Eric, could you please have a look?
>

My original patch was :
https://lore.kernel.org/netdev/CANn89i+ySFS5C24guM9E9UsPWfQBL69-OoRDbOGfih9vLGxDJg@mail.gmail.com/T/

I think it was correct.

Then Sven added code in it, instead of adding a separate patch.

I guess a fix would be :

diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index f145f96626531053bbf8f58a31f28f625a9d80f9..7cd4bdcee43935b9e5fb7d1696430909b7af67b4
100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -725,7 +725,6 @@ int batadv_hardif_enable_interface(struct
batadv_hard_iface *hard_iface,

        kref_get(&hard_iface->refcount);

-       dev_hold(mesh_iface);
        netdev_hold(mesh_iface, &hard_iface->meshif_dev_tracker, GFP_ATOMIC);
        hard_iface->mesh_iface = mesh_iface;
        bat_priv = netdev_priv(hard_iface->mesh_iface);

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-04-08 20:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-07  5:57 [syzbot] [net?] WARNING: bad unlock balance in do_setlink syzbot
2025-04-07  6:37 ` Kuniyuki Iwashima
2025-04-07  8:13   ` syzbot
2025-04-07 14:19     ` Stanislav Fomichev
2025-04-07 16:12       ` Kuniyuki Iwashima
2025-04-08  8:11         ` Aleksandr Nogikh
2025-04-08 10:44           ` Dmitry Vyukov
2025-04-08 11:33             ` Eric Dumazet
2025-04-08 20:16               ` Aleksandr Nogikh
2025-04-08 20:41                 ` Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).