Closed cpaasch closed 4 years ago
Even with the change that adds mptcp_clear_token
I am still able to trigger this crasher here.
Repro'd on top of:
c004f2d61be9 ("Squash-to: "mptcp: refactor token container."") (HEAD -> netnext_mptcp_all) (13 minutes ago) <Paolo Abeni>
2ce39af1418f ("mptcp: Enable MPTCP when IPPROTO_MPTCP is set") (13 minutes ago) <Christoph Paasch>
f29baf817fb1 ("Cleanup") (13 minutes ago) <Christoph Paasch>
644b0c37d9dd ("Paolos pastebin") (13 minutes ago) <Christoph Paasch>
1b4a0e116b05 ("FIX inet_csk_prepare_for_destroy_sock") (13 minutes ago) <Christoph Paasch>
1ee018877415 ("net: mptcp: improve fallback to TCP") (13 minutes ago) <Davide Caratti>
26bf539be27f ("mptcp: add receive buffer auto-tuning") (13 minutes ago) <Florian Westphal>
7840fd98f417 ("[DO-NOT-MERGE] mptcp: enabled by default") (13 minutes ago) <Matthieu Baerts>
3ae48bf92e11 ("mptcp: introduce token KUNIT self-tests") (13 minutes ago) <Paolo Abeni>
7531bc083b93 ("mptcp: move crypto test to KUNIT") (13 minutes ago) <Paolo Abeni>
3ed93a4e608c ("mptcp: refactor token container.") (2 hours ago) <Paolo Abeni>
c8328b91815c ("mptcp: add __init annotation on setup functions") (2 hours ago) <Paolo Abeni>
1806c13dc253 ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net") (netnext/master, netnext_net) (18 hours ago) <David S. Miller>
Still no clue here. What I observe:
When the issue/race is triggered, at mptcp_close() time an MPTCP listener socket is 'hashed' (that is !!sk_node.pprev, supposedly inserted into the token container), but can't be found into the relevant bucket.
The previous listen() call completed with the mentioned socket being correctly 'unhashed'.
No idea who/how flipped sk_node.pprev meanwhile
Can't repro anymore with HEAD:
e7d05321339a ("add mptcp_token_destroy") (HEAD) (11 seconds ago) 76646ab2dfd0 ("Squash-to: "mptcp: refactor token container."") (25 hours ago) d7414e0a5c73 ("Cleanup") (25 hours ago) a3ca6689d434 ("Paolos pastebin") (25 hours ago) ccc3b33a447d ("FIX inet_csk_prepare_for_destroy_sock") (25 hours ago) 446548400687 ("net: mptcp: improve fallback to TCP") (25 hours ago) 671015c089ce ("mptcp: add receive buffer auto-tuning") (25 hours ago) ffa63eb ("[DO-NOT-MERGE] mptcp: enabled by default") (tag: export/20200603T083508, mptcp_net-next/export) (32 hours ago) 21de248 ("mptcp: introduce token KUNIT self-tests") (32 hours ago) 25494d4 ("mptcp: move crypto test to KUNIT") (32 hours ago) 2975319 ("mptcp: refactor token container.") (32 hours ago) 8368186 ("mptcp: add __init annotation on setup functions") (32 hours ago) 556f751 ("bpf: fix unused-var without NETDEVICES") (32 hours ago) 065fcfd ("selftests: net: ip_defrag: ignore EPERM") (netnext/master, mptcp_net-next/net-next) (2 days ago)
Closing as it does not reproduce anymore.
(don't remember the HEAD I am currently running syzkaller on :-/ )
syz-repro:
C-repro: