syzbot


possible deadlock in dev_uc_sync_multiple (2)

Status: auto-obsoleted due to no activity on 2023/02/11 03:42
Reported-by: syzbot+eccabf1916bbd7a9961b@syzkaller.appspotmail.com
First crash: 1058d, last: 771d
Similar bugs (8)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream possible deadlock in dev_uc_sync_multiple (3) net 1 1543d 1539d 0/28 auto-closed as invalid on 2020/12/31 04:17
linux-4.14 possible deadlock in dev_uc_sync_multiple (3) 1 645d 645d 0/1 upstream: reported on 2023/02/17 11:15
linux-4.19 possible deadlock in dev_uc_sync_multiple (3) C error 7 658d 838d 0/1 upstream: reported C repro on 2022/08/08 00:40
linux-4.19 possible deadlock in dev_uc_sync_multiple (2) 11 976d 1156d 0/1 auto-closed as invalid on 2022/07/21 03:12
upstream possible deadlock in dev_uc_sync_multiple net 1 2080d 2079d 0/28 auto-closed as invalid on 2019/09/11 09:05
upstream possible deadlock in dev_uc_sync_multiple (2) net 26 1597d 1608d 15/28 fixed on 2020/07/20 08:03
linux-4.19 possible deadlock in dev_uc_sync_multiple 1 1559d 1559d 0/1 auto-closed as invalid on 2020/12/15 01:55
linux-4.14 possible deadlock in dev_uc_sync_multiple 4 1311d 1544d 0/1 auto-closed as invalid on 2021/08/19 17:04

Sample crash report:
bridge0: port 3(team0) entered forwarding state
audit: type=1800 audit(1665718893.921:60): pid=12892 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.2" name="bus" dev="sda1" ino=14214 res=0
8021q: adding VLAN 0 to HW filter on device team0
============================================
WARNING: possible recursive locking detected
4.14.295-syzkaller #0 Not tainted
--------------------------------------------
syz-executor.5/12867 is trying to acquire lock:
 (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c5e5db>] netif_addr_lock_nested include/linux/netdevice.h:3714 [inline]
 (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c5e5db>] dev_uc_sync_multiple+0x10b/0x1c0 net/core/dev_addr_lists.c:574

but task is already holding lock:
 (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] spin_lock_bh include/linux/spinlock.h:322 [inline]
 (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] netif_addr_lock_bh include/linux/netdevice.h:3719 [inline]
 (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] dev_set_rx_mode net/core/dev.c:6729 [inline]
 (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] __dev_open+0x21b/0x310 net/core/dev.c:1375

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&vlan_netdev_addr_lock_key#2/2);
  lock(&vlan_netdev_addr_lock_key#2/2);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

4 locks held by syz-executor.5/12867:
 #0:  (rtnl_mutex){+.+.}, at: [<ffffffff85c85a4d>] rtnl_lock net/core/rtnetlink.c:72 [inline]
 #0:  (rtnl_mutex){+.+.}, at: [<ffffffff85c85a4d>] rtnetlink_rcv_msg+0x31d/0xb10 net/core/rtnetlink.c:4317
 #1:  (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] spin_lock_bh include/linux/spinlock.h:322 [inline]
 #1:  (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] netif_addr_lock_bh include/linux/netdevice.h:3719 [inline]
 #1:  (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] dev_set_rx_mode net/core/dev.c:6729 [inline]
 #1:  (&vlan_netdev_addr_lock_key#2/2){+...}, at: [<ffffffff85c4ef2b>] __dev_open+0x21b/0x310 net/core/dev.c:1375
 #2:  (&dev_addr_list_lock_key#2/1){+...}, at: [<ffffffff85c5e0cb>] netif_addr_lock_nested include/linux/netdevice.h:3714 [inline]
 #2:  (&dev_addr_list_lock_key#2/1){+...}, at: [<ffffffff85c5e0cb>] dev_mc_sync+0x10b/0x1c0 net/core/dev_addr_lists.c:765
 #3:  (rcu_read_lock){....}, at: [<ffffffff83d3a600>] team_set_rx_mode+0x0/0x1e0 drivers/net/team/team.c:514

stack backtrace:
CPU: 1 PID: 12867 Comm: syz-executor.5 Not tainted 4.14.295-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
Call Trace:
 __dump_stack lib/dump_stack.c:17 [inline]
 dump_stack+0x1b2/0x281 lib/dump_stack.c:58
 print_deadlock_bug kernel/locking/lockdep.c:1800 [inline]
 check_deadlock kernel/locking/lockdep.c:1847 [inline]
 validate_chain kernel/locking/lockdep.c:2448 [inline]
 __lock_acquire.cold+0x180/0x97c kernel/locking/lockdep.c:3491
 lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998
 _raw_spin_lock_nested+0x30/0x40 kernel/locking/spinlock.c:362
 netif_addr_lock_nested include/linux/netdevice.h:3714 [inline]
 dev_uc_sync_multiple+0x10b/0x1c0 net/core/dev_addr_lists.c:574
 team_set_rx_mode+0xb8/0x1e0 drivers/net/team/team.c:1793
 __dev_set_rx_mode+0x191/0x2a0 net/core/dev.c:6724
 dev_mc_sync+0x17a/0x1c0 net/core/dev_addr_lists.c:768
 vlan_dev_set_rx_mode+0x38/0x80 net/8021q/vlan_dev.c:486
 __dev_set_rx_mode+0x191/0x2a0 net/core/dev.c:6724
 dev_set_rx_mode net/core/dev.c:6730 [inline]
 __dev_open+0x223/0x310 net/core/dev.c:1375
 __dev_change_flags+0x43f/0x540 net/core/dev.c:6802
 dev_change_flags+0x7e/0x130 net/core/dev.c:6868
 vlan_device_event+0x1261/0x1ad0 net/8021q/vlan.c:454
 notifier_call_chain+0x108/0x1a0 kernel/notifier.c:93
 call_netdevice_notifiers_info net/core/dev.c:1667 [inline]
 call_netdevice_notifiers net/core/dev.c:1683 [inline]
 __dev_notify_flags+0xdf/0x260 net/core/dev.c:6840
 dev_change_flags+0xe6/0x130 net/core/dev.c:6873
 do_setlink+0x83f/0x2bf0 net/core/rtnetlink.c:2092
 rtnl_group_changelink net/core/rtnetlink.c:2512 [inline]
 rtnl_newlink+0xc9d/0x1830 net/core/rtnetlink.c:2668
 rtnetlink_rcv_msg+0x3be/0xb10 net/core/rtnetlink.c:4322
 netlink_rcv_skb+0x125/0x390 net/netlink/af_netlink.c:2454
 netlink_unicast_kernel net/netlink/af_netlink.c:1296 [inline]
 netlink_unicast+0x437/0x610 net/netlink/af_netlink.c:1322
 netlink_sendmsg+0x648/0xbc0 net/netlink/af_netlink.c:1893
 sock_sendmsg_nosec net/socket.c:646 [inline]
 sock_sendmsg+0xb5/0x100 net/socket.c:656
 ___sys_sendmsg+0x6c8/0x800 net/socket.c:2062
 __sys_sendmsg+0xa3/0x120 net/socket.c:2096
 SYSC_sendmsg net/socket.c:2107 [inline]
 SyS_sendmsg+0x27/0x40 net/socket.c:2103
 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
 entry_SYSCALL_64_after_hwframe+0x46/0xbb
RIP: 0033:0x7f4ab1f585a9
RSP: 002b:00007f4ab08cb168 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007f4ab2078f80 RCX: 00007f4ab1f585a9
RDX: 0000000000000000 RSI: 0000000020000100 RDI: 0000000000000003
RBP: 00007f4ab1fb3580 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007ffcf6b25c1f R14: 00007f4ab08cb300 R15: 0000000000022000
chnl_net:chnl_net_open(): err: Unable to register and open device, Err:-19
caif:caif_disconnect_client(): nothing to disconnect
chnl_net:chnl_flowctrl_cb(): NET flowctrl func called flow: CLOSE/DEINIT
chnl_net:chnl_net_open(): state disconnected
A link change request failed with some changes committed already. Interface caif0 may have been left with an inconsistent configuration, please check.
audit: type=1800 audit(1665718894.691:61): pid=12899 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.2" name="bus" dev="sda1" ino=14214 res=0
audit: type=1800 audit(1665718894.691:62): pid=12899 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.2" name="bus" dev="sda1" ino=14214 res=0
mkiss: ax0: crc mode is auto.
audit: type=1800 audit(1665718894.901:63): pid=12944 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.2" name="bus" dev="sda1" ino=14214 res=0
IPv6: ADDRCONF(NETDEV_CHANGE): vcan0: link becomes ready
audit: type=1800 audit(1665718894.931:64): pid=12944 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.2" name="bus" dev="sda1" ino=14214 res=0
chnl_net:chnl_net_open(): err: Unable to register and open device, Err:-19
caif:caif_disconnect_client(): nothing to disconnect
chnl_net:chnl_flowctrl_cb(): NET flowctrl func called flow: CLOSE/DEINIT
chnl_net:chnl_net_open(): state disconnected
A link change request failed with some changes committed already. Interface caif0 may have been left with an inconsistent configuration, please check.
print_req_error: I/O error, dev loop2, sector 0
UBIFS error (pid: 13017): cannot open "u", error -22
NILFS (loop2): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
IPv6: ADDRCONF(NETDEV_CHANGE): vcan0: link becomes ready
chnl_net:chnl_net_open(): err: Unable to register and open device, Err:-19
NILFS (loop2): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
caif:caif_disconnect_client(): nothing to disconnect
chnl_net:chnl_flowctrl_cb(): NET flowctrl func called flow: CLOSE/DEINIT
chnl_net:chnl_net_open(): state disconnected
A link change request failed with some changes committed already. Interface caif0 may have been left with an inconsistent configuration, please check.
NILFS (loop2): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
IPv6: ADDRCONF(NETDEV_CHANGE): vcan0: link becomes ready
chnl_net:chnl_net_open(): err: Unable to register and open device, Err:-19
caif:caif_disconnect_client(): nothing to disconnect
chnl_net:chnl_flowctrl_cb(): NET flowctrl func called flow: CLOSE/DEINIT
chnl_net:chnl_net_open(): state disconnected
A link change request failed with some changes committed already. Interface caif0 may have been left with an inconsistent configuration, please check.
NILFS (loop2): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
netlink: 28 bytes leftover after parsing attributes in process `syz-executor.0'.
netlink: 28 bytes leftover after parsing attributes in process `syz-executor.0'.
MTD: Attempt to mount non-MTD device "/dev/loop4"
romfs: Mounting image 'rom 5f663c08' through the block layer
netlink: 28 bytes leftover after parsing attributes in process `syz-executor.4'.
netlink: 28 bytes leftover after parsing attributes in process `syz-executor.0'.
netlink: 28 bytes leftover after parsing attributes in process `syz-executor.0'.
MTD: Attempt to mount non-MTD device "/dev/loop4"
romfs: Mounting image 'rom 5f663c08' through the block layer
l2tp_ppp: tunl 2: set debug=7665642f
netlink: 28 bytes leftover after parsing attributes in process `syz-executor.4'.
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
overlayfs: upper fs needs to support d_type.
overlayfs: upper fs does not support xattr.
MTD: Attempt to mount non-MTD device "/dev/loop4"
romfs: Mounting image 'rom 5f663c08' through the block layer
netlink: 28 bytes leftover after parsing attributes in process `syz-executor.4'.
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
squashfs: SQUASHFS error: unable to read id index table
overlayfs: upper fs needs to support d_type.
overlayfs: upper fs does not support xattr.
squashfs: SQUASHFS error: unable to read id index table
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
overlayfs: failed to create directory ./bus/work (errno: 2); mounting read-only
squashfs: SQUASHFS error: unable to read id index table
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
overlayfs: failed to create directory ./bus/work (errno: 2); mounting read-only
squashfs: SQUASHFS error: unable to read id index table
device lo entered promiscuous mode
input: syz1 as /devices/virtual/input/input5
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
Y4`Ҙ: renamed from lo
overlayfs: upper fs needs to support d_type.
overlayfs: upper fs does not support xattr.
input: syz1 as /devices/virtual/input/input6
input: syz1 as /devices/virtual/input/input7
input: syz1 as /devices/virtual/input/input8
device lo entered promiscuous mode
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
Y4`Ҙ: renamed from lo
device lo entered promiscuous mode
overlayfs: upper fs needs to support d_type.
overlayfs: upper fs does not support xattr.
device lo entered promiscuous mode
Y4`Ҙ: renamed from lo
Y4`Ҙ: renamed from lo
bridge0: port 3(team0) entered blocking state
bridge0: port 3(team0) entered disabled state
device team0 entered promiscuous mode
device team_slave_0 entered promiscuous mode
device team_slave_1 entered promiscuous mode
bridge0: port 3(team0) entered blocking state
bridge0: port 3(team0) entered forwarding state
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
overlayfs: upper fs needs to support d_type.
overlayfs: upper fs does not support xattr.
overlayfs: fs on './file0' does not support file handles, falling back to index=off.
overlayfs: upper fs needs to support d_type.
overlayfs: upper fs does not support xattr.
audit: type=1804 audit(1665718901.472:65): pid=13621 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.3" name="/root/syzkaller-testdir1128757605/syzkaller.Gupbs5/108/file0" dev="sda1" ino=14265 res=1
F2FS-fs (loop2): Insane cp_payload (2097152 > 510)
F2FS-fs (loop2): Can't find valid F2FS filesystem in 1th superblock
F2FS-fs (loop2): Found nat_bits in checkpoint
F2FS-fs (loop2): Mounted with checkpoint version = 753bd00b
F2FS-fs (loop2): Insane cp_payload (2097152 > 510)
F2FS-fs (loop2): Can't find valid F2FS filesystem in 1th superblock
F2FS-fs (loop2): Found nat_bits in checkpoint

Crashes (9):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2022/10/14 03:41 linux-4.14.y 9d5c0b3a8e1a 4954e4b2 .config console log report info [disk image] [vmlinux] ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2022/07/11 22:22 linux-4.14.y 1048779a1d7d da3d6955 .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2022/05/25 07:49 linux-4.14.y 501eec4f9e13 647c0e27 .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2022/05/09 12:46 linux-4.14.y e3a56aaade89 8b277b8e .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2022/05/08 06:31 linux-4.14.y e3a56aaade89 e60b1103 .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2022/05/07 23:48 linux-4.14.y e3a56aaade89 e60b1103 .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2022/05/03 19:29 linux-4.14.y e3a56aaade89 dc9e5259 .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2022/02/17 20:47 linux-4.14.y a35d65bedfbc 3cd800e4 .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
2021/12/30 22:31 linux-4.14.y a6ca7c65b137 36bd2e48 .config console log report info ci2-linux-4-14 possible deadlock in dev_uc_sync_multiple
* Struck through repros no longer work on HEAD.