Greeting, FYI, we noticed the following commit (built with gcc-9): commit: aa4272438cf6a936bf04e6bdd0d43f7043e1f497 ("[PATCH v2 3/4] mptcp: fix syncookie process if mptcp can not_accept new subflow") url: https://github.com/0day-ci/linux/commits/Jianguo-Wu/Fix-some-mptcp-syncookie-process-bugs/20210617-101149 base: https://github.com/multipath-tcp/mptcp_net-next.git export in testcase: kernel-selftests version: kernel-selftests-x86_64-f8879e85-1_20210618 with following parameters: group: mptcp ucode: 0xe2 test-description: The kernel contains a set of "self tests" under the tools/testing/selftests/ directory. These are intended to be small unit tests to exercise individual code paths in the kernel. test-url: https://www.kernel.org/doc/Documentation/kselftest.txt on test machine: 4 threads Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz with 32G memory caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): If you fix the issue, kindly add following tag Reported-by: kernel test robot KERNEL SELFTESTS: linux_headers_dir is /usr/src/linux-headers-x86_64-rhel-8.3-kselftests-aa4272438cf6a936bf04e6bdd0d43f7043e1f497 2019-02-14 10:12:15 ln -sf /usr/bin/clang 2019-02-14 10:12:15 ln -sf /usr/bin/llc 2019-02-14 10:12:15 sed -i s/default_timeout=45/default_timeout=300/ kselftest/runner.sh 2019-02-14 10:12:15 sed -i s/default_timeout=45/default_timeout=300/ /kselftests/kselftest/runner.sh source /lkp/lkp/src/lib/tests/kernel-selftests-ext.sh 2019-02-14 10:12:15 /kselftests/run_kselftest.sh -c net/mptcp TAP version 13 1..6 # selftests: net/mptcp: mptcp_connect.sh # Created /tmp/tmp.DURHi00pWJ (size 2566172 /tmp/tmp.DURHi00pWJ) containing data sent by client # Created /tmp/tmp.uKlAyig8Nq (size 2317340 /tmp/tmp.uKlAyig8Nq) containing data sent by server # New MPTCP socket can be blocked via sysctl [ OK ] # setsockopt(..., TCP_ULP, "mptcp", ...) blocked [ OK ] # INFO: validating network environment with pings # INFO: Using loss of 0.67% delay 44 ms reorder 96% 2% with delay 11ms on ns3eth4 # ns1 MPTCP -> ns1 (10.0.1.1:10000 ) MPTCP (duration 72ms) [ OK ] # ns1 MPTCP -> ns1 (10.0.1.1:10001 ) TCP (duration 31ms) [ OK ] # ns1 TCP -> ns1 (10.0.1.1:10002 ) MPTCP (duration 27ms) [ OK ] # ns1 MPTCP -> ns1 (dead:beef:1::1:10003) MPTCP (duration 73ms) [ OK ] # ns1 MPTCP -> ns1 (dead:beef:1::1:10004) TCP (duration 30ms) [ OK ] # ns1 TCP -> ns1 (dead:beef:1::1:10005) MPTCP (duration 29ms) [ OK ] # ns1 MPTCP -> ns2 (10.0.1.2:10006 ) MPTCP (duration 36ms) [ OK ] # ns1 MPTCP -> ns2 (dead:beef:1::2:10007) MPTCP (duration 38ms) [ OK ] # ns1 MPTCP -> ns2 (10.0.2.1:10008 ) MPTCP (duration 35ms) [ OK ] # ns1 MPTCP -> ns2 (dead:beef:2::1:10009) MPTCP (duration 38ms) [ OK ] # ns1 MPTCP -> ns3 (10.0.2.2:10010 ) MPTCP (duration 603ms) [ OK ] # ns1 MPTCP -> ns3 (dead:beef:2::2:10011) MPTCP (duration 605ms) [ OK ] # ns1 MPTCP -> ns3 (10.0.3.2:10012 ) MPTCP (duration 463ms) [ OK ] # ns1 MPTCP -> ns3 (dead:beef:3::2:10013) MPTCP (duration 502ms) [ OK ] # ns1 MPTCP -> ns4 (10.0.3.1:10014 ) MPTCP (duration 466ms) [ OK ] # ns1 MPTCP -> ns4 (dead:beef:3::1:10015) MPTCP (duration 560ms) [ OK ] # ns2 MPTCP -> ns1 (10.0.1.1:10016 ) MPTCP (duration 34ms) [ OK ] # ns2 MPTCP -> ns1 (dead:beef:1::1:10017) MPTCP (duration 38ms) [ OK ] # ns2 MPTCP -> ns3 (10.0.2.2:10018 ) MPTCP (duration 4248ms) [ OK ] # ns2 MPTCP -> ns3 (dead:beef:2::2:10019) MPTCP (duration 4473ms) [ OK ] # ns2 MPTCP -> ns3 (10.0.3.2:10020 ) MPTCP (duration 501ms) [ OK ] # ns2 MPTCP -> ns3 (dead:beef:3::2:10021) MPTCP (duration 455ms) [ OK ] # ns2 MPTCP -> ns4 (10.0.3.1:10022 ) MPTCP (duration 433ms) [ OK ] # ns2 MPTCP -> ns4 (dead:beef:3::1:10023) MPTCP (duration 605ms) [ OK ] # ns3 MPTCP -> ns1 (10.0.1.1:10024 ) MPTCP (duration 565ms) [ OK ] # ns3 MPTCP -> ns1 (dead:beef:1::1:10025) MPTCP (duration 1899ms) [ OK ] # ns3 MPTCP -> ns2 (10.0.1.2:10026 ) MPTCP (duration 3675ms) [ OK ] # ns3 MPTCP -> ns2 (dead:beef:1::2:10027) MPTCP (duration 530ms) [ OK ] # ns3 MPTCP -> ns2 (10.0.2.1:10028 ) MPTCP (duration 1563ms) [ OK ] # ns3 MPTCP -> ns2 (dead:beef:2::1:10029) MPTCP (duration 2789ms) [ OK ] # ns3 MPTCP -> ns4 (10.0.3.1:10030 ) MPTCP (duration 461ms) [ OK ] # ns3 MPTCP -> ns4 (dead:beef:3::1:10031) MPTCP (duration 382ms) [ OK ] # ns4 MPTCP -> ns1 (10.0.1.1:10032 ) MPTCP (duration 470ms) [ OK ] # ns4 MPTCP -> ns1 (dead:beef:1::1:10033) MPTCP (duration 729ms) [ OK ] # ns4 MPTCP -> ns2 (10.0.1.2:10034 ) MPTCP (duration 465ms) [ OK ] # ns4 MPTCP -> ns2 (dead:beef:1::2:10035) MPTCP (duration 2105ms) [ OK ] # ns4 MPTCP -> ns2 (10.0.2.1:10036 ) MPTCP (duration 628ms) [ OK ] # ns4 MPTCP -> ns2 (dead:beef:2::1:10037) MPTCP (duration 3716ms) [ OK ] # ns4 MPTCP -> ns3 (10.0.2.2:10038 ) MPTCP (duration 299ms) [ OK ] # ns4 MPTCP -> ns3 (dead:beef:2::2:10039) MPTCP (duration 319ms) [ OK ] # ns4 MPTCP -> ns3 (10.0.3.2:10040 ) MPTCP (duration 96ms) [ OK ] # ns4 MPTCP -> ns3 (dead:beef:3::2:10041) MPTCP (duration 287ms) [ OK ] # INFO: with peek mode: saveWithPeek # ns1 MPTCP -> ns1 (10.0.1.1:10042 ) MPTCP (duration 71ms) [ OK ] # ns1 MPTCP -> ns1 (10.0.1.1:10043 ) TCP (duration 31ms) [ OK ] # ns1 TCP -> ns1 (10.0.1.1:10044 ) MPTCP (duration 29ms) [ OK ] # ns1 MPTCP -> ns1 (dead:beef:1::1:10045) MPTCP (duration 73ms) [ OK ] # ns1 MPTCP -> ns1 (dead:beef:1::1:10046) TCP (duration 31ms) [ OK ] # ns1 TCP -> ns1 (dead:beef:1::1:10047) MPTCP (duration 30ms) [ OK ] # INFO: with peek mode: saveAfterPeek # ns1 MPTCP -> ns1 (10.0.1.1:10048 ) MPTCP (duration 72ms) [ OK ] # ns1 MPTCP -> ns1 (10.0.1.1:10049 ) TCP (duration 29ms) [ OK ] # ns1 TCP -> ns1 (10.0.1.1:10050 ) MPTCP (duration 28ms) [ OK ] # ns1 MPTCP -> ns1 (dead:beef:1::1:10051) MPTCP (duration 72ms) [ OK ] # ns1 MPTCP -> ns1 (dead:beef:1::1:10052) TCP (duration 32ms) [ OK ] # ns1 TCP -> ns1 (dead:beef:1::1:10053) MPTCP (duration 29ms) [ OK ] # Time: 51 seconds ok 1 selftests: net/mptcp: mptcp_connect.sh # selftests: net/mptcp: pm_netlink.sh # defaults addr list [ OK ] # defaults limits [ OK ] # simple add/get addr [ OK ] # dump addrs [ OK ] # simple del addr [ OK ] # dump addrs after del [ OK ] # duplicate addr [ OK ] # id addr increment [ OK ] # hard addr limit [ OK ] # above hard addr limit [ OK ] # id limit [ OK ] # flush addrs [ OK ] # rcv addrs above hard limit [ OK ] # subflows above hard limit [ OK ] # set limits [ OK ] # set ids [ OK ] # wrap-around ids [ OK ] ok 2 selftests: net/mptcp: pm_netlink.sh # selftests: net/mptcp: mptcp_join.sh # Created /tmp/tmp.XLN2tSpAs6 (size 1 KB) containing data sent by client # Created /tmp/tmp.JtTHPKAwD4 (size 1 KB) containing data sent by server # 01 no JOIN syn[ ok ] - synack[ ok ] - ack[ ok ] # 02 single subflow, limited by client syn[ ok ] - synack[ ok ] - ack[ ok ] # 03 single subflow, limited by server syn[ ok ] - synack[ ok ] - ack[ ok ] # 04 single subflow syn[ ok ] - synack[ ok ] - ack[ ok ] # 05 multiple subflows syn[ ok ] - synack[ ok ] - ack[ ok ] # 06 multiple subflows, limited by server syn[ ok ] - synack[ ok ] - ack[ ok ] # 07 single subflow, dev syn[ ok ] - synack[ ok ] - ack[ ok ] # 08 unused signal address syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 09 signal address syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 10 subflow and signal syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 11 multiple subflows and signal syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 12 signal addresses syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 13 signal invalid addresses syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # Created /tmp/tmp.XLN2tSpAs6 (size 76928 KB) containing data sent by client # 14 multiple flows, signal, link failure syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 15 signal address, ADD_ADDR timeout syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 16 signal address, ADD_ADDR6 timeout syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 17 signal addresses, ADD_ADDR timeout syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 18 invalid address, ADD_ADDR timeout syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 19 remove single subflow syn[ ok ] - synack[ ok ] - ack[ ok ] # rm [ ok ] - sf [ ok ] # 20 remove multiple subflows syn[ ok ] - synack[ ok ] - ack[ ok ] # rm [ ok ] - sf [ ok ] # 21 remove single address syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 22 remove subflow and signal syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 23 remove subflows and signal syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 24 remove addresses syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 25 remove invalid addresses syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 26 flush subflows and signal syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 27 flush subflows syn[ ok ] - synack[ ok ] - ack[ ok ] # rm [ ok ] - sf [ ok ] # 28 flush addresses syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 29 flush invalid addresses syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 30 remove id 0 subflow syn[ ok ] - synack[ ok ] - ack[ ok ] # rm [ ok ] - sf [ ok ] # 31 remove id 0 address syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 32 add single subflow syn[ ok ] - synack[ ok ] - ack[ ok ] # 33 add signal address syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 34 add multiple subflows syn[ ok ] - synack[ ok ] - ack[ ok ] # 35 add multiple subflows IPv6 syn[ ok ] - synack[ ok ] - ack[ ok ] # 36 add multiple addresses IPv6 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 37 single subflow IPv6 syn[ ok ] - synack[ ok ] - ack[ ok ] # 38 unused signal address IPv6 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 39 single address IPv6 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 40 remove single address IPv6 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 41 remove subflow and signal IPv6 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 42 single subflow IPv4-mapped syn[ ok ] - synack[ ok ] - ack[ ok ] # 43 signal address IPv4-mapped syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 44 single subflow v4-map-v6 syn[ ok ] - synack[ ok ] - ack[ ok ] # 45 signal address v4-map-v6 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 46 single subflow v6-map-v4 syn[ ok ] - synack[ ok ] - ack[ ok ] # 47 signal address v6-map-v4 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 48 no JOIN with diff families v4-v6 syn[ ok ] - synack[ ok ] - ack[ ok ] # 49 no JOIN with diff families v4-v6-2 syn[ ok ] - synack[ ok ] - ack[ ok ] # 50 no JOIN with diff families v6-v4 syn[ ok ] - synack[ ok ] - ack[ ok ] # 51 single subflow, backup syn[ ok ] - synack[ ok ] - ack[ ok ] # ptx[ ok ] - prx [ ok ] # 52 single address, backup syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # ptx[ ok ] - prx [ ok ] # 53 signal address with port syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] - pt [ ok ] # syn[ ok ] - synack[ ok ] - ack[ ok ] # syn[ ok ] - ack [ ok ] # 54 subflow and signal with port syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] - pt [ ok ] # syn[ ok ] - synack[ ok ] - ack[ ok ] # syn[ ok ] - ack [ ok ] # 55 remove single address with port syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] - pt [ ok ] # syn[ ok ] - synack[ ok ] - ack[ ok ] # syn[ ok ] - ack [ ok ] # rm [ ok ] - sf [ ok ] # 56 remove subflow and signal with port syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] - pt [ ok ] # syn[ ok ] - synack[ ok ] - ack[ ok ] # syn[ ok ] - ack [ ok ] # rm [ ok ] - sf [ ok ] # 57 flush subflows and signal with port syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # rm [ ok ] - sf [ ok ] # 58 multiple addresses with port syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] - pt [ ok ] # syn[ ok ] - synack[ ok ] - ack[ ok ] # syn[ ok ] - ack [ ok ] # 59 multiple addresses with ports syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] - pt [ ok ] # syn[ ok ] - synack[ ok ] - ack[ ok ] # syn[ ok ] - ack [ ok ] # 60 single subflow with syn cookies syn[ ok ] - synack[ ok ] - ack[ ok ] # 61 multiple subflows with syn cookies syn[ ok ] - synack[ ok ] - ack[ ok ] # 62 subflows limited by server w cookies syn[ ok ] - synack[fail] got 1 JOIN[s] synack expected 2 # - ack[ ok ] # Server ns stats # MPTcpExtMPCapableSYNRX 1 0.0 # MPTcpExtMPCapableACKRX 1 0.0 # MPTcpExtMPJoinSynRx 2 0.0 # MPTcpExtMPJoinAckRx 1 0.0 # Client ns stats # MPTcpExtMPCapableSYNTX 1 0.0 # MPTcpExtMPCapableSYNACKRX 1 0.0 # MPTcpExtMPJoinSynAckRx 1 0.0 # 63 signal address with syn cookies syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 64 subflow and signal w cookies syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 65 subflows and signal w. cookies syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 66 checksum test 0 0 sum[ ok ] - csum [ ok ] # 67 checksum test 1 1 sum[ ok ] - csum [ ok ] # 68 checksum test 0 1 sum[ ok ] - csum [ ok ] # 69 checksum test 1 0 sum[ ok ] - csum [ ok ] # 70 single subflow allow join id0 ns1 syn[ ok ] - synack[ ok ] - ack[ ok ] # 71 single subflow allow join id0 ns2 syn[ ok ] - synack[ ok ] - ack[ ok ] # 72 signal address allow join id0 ns1 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 73 signal address allow join id0 ns2 syn[ ok ] - synack[ ok ] - ack[ ok ] # add[ ok ] - echo [ ok ] # 74 subflow and address allow join id0 1 syn[ ok ] - synack[ ok ] - ack[ ok ] # 75 subflow and address allow join id0 2 syn[ ok ] - synack[ ok ] - ack[ ok ] not ok 3 selftests: net/mptcp: mptcp_join.sh # exit=1 # selftests: net/mptcp: diag.sh # no msk on netns creation [ ok ] # after MPC handshake [ ok ] # ....chk remote_key [ ok ] # ....chk no fallback [ ok ] # check fallback [ ok ] # many msk socket present [ ok ] ok 4 selftests: net/mptcp: diag.sh # selftests: net/mptcp: simult_flows.sh # balanced bwidth 4600 max 5005 [ OK ] # balanced bwidth - reverse direction 4577 max 5005 [ OK ] # balanced bwidth with unbalanced delay 4570 max 5005 [ OK ] # balanced bwidth with unbalanced delay - reverse direction 4556 max 5005 [ OK ] # unbalanced bwidth 2976 max 3245 [ OK ] # unbalanced bwidth - reverse direction 2926 max 3245 [ OK ] # unbalanced bwidth with unbalanced delay 2940 max 3245 [ OK ] # unbalanced bwidth with unbalanced delay - reverse direction 2975 max 3245 [ OK ] # unbalanced bwidth with opposed, unbalanced delay 2919 max 3245 [ OK ] # unbalanced bwidth with opposed, unbalanced delay - reverse direction 2919 max 3245 [ OK ] ok 5 selftests: net/mptcp: simult_flows.sh # selftests: net/mptcp: mptcp_sockopt.sh # Created /tmp/tmp.l74Qy9jbKk (size 1 KB) containing data sent by client # Created /tmp/tmp.Vbf1hnYWl8 (size 1 KB) containing data sent by server # PASS: all packets had packet mark set ok 6 selftests: net/mptcp: mptcp_sockopt.sh To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests bin/lkp install job.yaml # job file is attached in this email bin/lkp split-job --compatible job.yaml # generate the yaml file for lkp run bin/lkp run generated-yaml-file --- 0DAY/LKP+ Test Infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/lkp@lists.01.org Intel Corporation Thanks, Oliver Sang