[PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests

Matthieu Baerts (NGI0) posted 6 patches 3 weeks, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20251102-slft-join-inst-v2-0-b4f3ba15a7c4@kernel.org
tools/testing/selftests/net/mptcp/mptcp_connect.c  | 18 ++--
tools/testing/selftests/net/mptcp/mptcp_connect.sh |  2 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh    | 95 +++++++++++++---------
3 files changed, 69 insertions(+), 46 deletions(-)
[PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests
Posted by Matthieu Baerts (NGI0) 3 weeks, 4 days ago
When looking at the recent CI results on NIPA and MPTCP CIs, a few MPTCP
Join tests are marked as unstable. Here are some fixes for that.

- Patch 1: a small fix for mptcp_connect.sh, printing a note as
  initially intended. For >=v5.13.

- Patch 2: avoid unexpected reset when closing subflows. For >= 5.13.

- Patches 3-4: longer transfer when not waiting for the end. For >=5.18.

- Patch 5: drop noisy plain RST packets when looking for MP_FASTCLOSE.
  For >= 5.18.

- Patch 6: read all received data when expecting a reset. For >= v6.1.

When reviewing patches 2-6, please double check that I'm not hiding real
issues by tweaking the tests suite.

Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Changes in v2:
- Patch 6: also handle EPIPE properly.
- Link to v1: https://patch.msgid.link/20251101-slft-join-inst-v1-0-10572512a0b2@kernel.org

---
Matthieu Baerts (NGI0) (6):
      selftests: mptcp: connect: fix fallback note due to OoO
      selftests: mptcp: join: rm: set backup flag
      selftests: mptcp: join: endpoints: longer transfer
      selftests: mptcp: join: userspace: longer transfer
      selftests: mptcp: join: fastclose: drop plain RST
      selftests: mptcp: connect: trunc: read all recv data

 tools/testing/selftests/net/mptcp/mptcp_connect.c  | 18 ++--
 tools/testing/selftests/net/mptcp/mptcp_connect.sh |  2 +-
 tools/testing/selftests/net/mptcp/mptcp_join.sh    | 95 +++++++++++++---------
 3 files changed, 69 insertions(+), 46 deletions(-)
---
base-commit: b9e1acc39cbc985ca8df781775718e39e421409b
change-id: 20251029-slft-join-inst-e307faf42138

Best regards,
-- 
Matthieu Baerts (NGI0) <matttbe@kernel.org>
Re: [PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests
Posted by Matthieu Baerts 3 weeks, 2 days ago
Hi Geliang,

On 02/11/2025 12:30, Matthieu Baerts (NGI0) wrote:
> When looking at the recent CI results on NIPA and MPTCP CIs, a few MPTCP
> Join tests are marked as unstable. Here are some fixes for that.
> 
> - Patch 1: a small fix for mptcp_connect.sh, printing a note as
>   initially intended. For >=v5.13.
> 
> - Patch 2: avoid unexpected reset when closing subflows. For >= 5.13.
> 
> - Patches 3-4: longer transfer when not waiting for the end. For >=5.18.
> 
> - Patch 5: drop noisy plain RST packets when looking for MP_FASTCLOSE.
>   For >= 5.18.
> 
> - Patch 6: read all received data when expecting a reset. For >= v6.1.
> 
> When reviewing patches 2-6, please double check that I'm not hiding real
> issues by tweaking the tests suite.

(More eyes are welcome, especially on patch 5/6!)

Thank you for the review! Now in our tree:

New patches for t/upstream-net and t/upstream:
- a9a49f5a022a: selftests: mptcp: connect: fix fallback note due to OoO
- 818251a0fc51: selftests: mptcp: join: rm: set backup flag
- f0864a03b80b: selftests: mptcp: join: endpoints: longer transfer
- a68bf9260dab: selftests: mptcp: join: userspace: longer transfer
- 69569761c0f6: selftests: mptcp: join: fastclose: drop plain RST
- e99b7db5862e: selftests: mptcp: connect: trunc: read all recv data
- Results: 3cf18f92ab22..09c25f9f5ca3 (export-net)
- Results: b35f4b01c8d3..625ded86ead5 (export)

Tests are now in progress:

- export-net:
https://github.com/multipath-tcp/mptcp_net-next/commit/c8f9b6716c62042010e0e231a789467236c55625/checks
- export:
https://github.com/multipath-tcp/mptcp_net-next/commit/31b5d615cdeb4fd6ea58fcd577b48543dd3b0617/checks

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.
Re: [PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests
Posted by Geliang Tang 3 weeks, 1 day ago
Hi Matt,

On Tue, 2025-11-04 at 13:10 +0100, Matthieu Baerts wrote:
> Hi Geliang,
> 
> On 02/11/2025 12:30, Matthieu Baerts (NGI0) wrote:
> > When looking at the recent CI results on NIPA and MPTCP CIs, a few
> > MPTCP
> > Join tests are marked as unstable. Here are some fixes for that.
> > 
> > - Patch 1: a small fix for mptcp_connect.sh, printing a note as
> >   initially intended. For >=v5.13.
> > 
> > - Patch 2: avoid unexpected reset when closing subflows. For >=
> > 5.13.
> > 
> > - Patches 3-4: longer transfer when not waiting for the end. For
> > >=5.18.
> > 
> > - Patch 5: drop noisy plain RST packets when looking for
> > MP_FASTCLOSE.
> >   For >= 5.18.
> > 
> > - Patch 6: read all received data when expecting a reset. For >=
> > v6.1.
> > 
> > When reviewing patches 2-6, please double check that I'm not hiding
> > real
> > issues by tweaking the tests suite.
> 
> (More eyes are welcome, especially on patch 5/6!)

I tested patch 5/6 again and found that only dropping the plain RST
from ns1 is sufficient to make it work. There is no need to
simultaneously drop the plain RST from ns2. What do you think?

If you agree, I can send a squash-to patch to fix it.

Thanks,
-Geliang

> 
> Thank you for the review! Now in our tree:
> 
> New patches for t/upstream-net and t/upstream:
> - a9a49f5a022a: selftests: mptcp: connect: fix fallback note due to
> OoO
> - 818251a0fc51: selftests: mptcp: join: rm: set backup flag
> - f0864a03b80b: selftests: mptcp: join: endpoints: longer transfer
> - a68bf9260dab: selftests: mptcp: join: userspace: longer transfer
> - 69569761c0f6: selftests: mptcp: join: fastclose: drop plain RST
> - e99b7db5862e: selftests: mptcp: connect: trunc: read all recv data
> - Results: 3cf18f92ab22..09c25f9f5ca3 (export-net)
> - Results: b35f4b01c8d3..625ded86ead5 (export)
> 
> Tests are now in progress:
> 
> - export-net:
> https://github.com/multipath-tcp/mptcp_net-next/commit/c8f9b6716c62042010e0e231a789467236c55625/checks
> - export:
> https://github.com/multipath-tcp/mptcp_net-next/commit/31b5d615cdeb4fd6ea58fcd577b48543dd3b0617/checks
> 
> Cheers,
> Matt

Re: [PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests
Posted by Geliang Tang 3 weeks, 1 day ago
On Wed, 2025-11-05 at 10:00 +0800, Geliang Tang wrote:
> Hi Matt,
> 
> On Tue, 2025-11-04 at 13:10 +0100, Matthieu Baerts wrote:
> > Hi Geliang,
> > 
> > On 02/11/2025 12:30, Matthieu Baerts (NGI0) wrote:
> > > When looking at the recent CI results on NIPA and MPTCP CIs, a
> > > few
> > > MPTCP
> > > Join tests are marked as unstable. Here are some fixes for that.
> > > 
> > > - Patch 1: a small fix for mptcp_connect.sh, printing a note as
> > >   initially intended. For >=v5.13.
> > > 
> > > - Patch 2: avoid unexpected reset when closing subflows. For >=
> > > 5.13.
> > > 
> > > - Patches 3-4: longer transfer when not waiting for the end. For
> > > > =5.18.
> > > 
> > > - Patch 5: drop noisy plain RST packets when looking for
> > > MP_FASTCLOSE.
> > >   For >= 5.18.
> > > 
> > > - Patch 6: read all received data when expecting a reset. For >=
> > > v6.1.
> > > 
> > > When reviewing patches 2-6, please double check that I'm not
> > > hiding
> > > real
> > > issues by tweaking the tests suite.
> > 
> > (More eyes are welcome, especially on patch 5/6!)
> 
> I tested patch 5/6 again and found that only dropping the plain RST
> from ns1 is sufficient to make it work. There is no need to

Oops, the test of only dropping ns1's plain RST failed after dozens of
loops.

> simultaneously drop the plain RST from ns2. What do you think?

So we do need to drop both ns1's and ns2's plain RST simultaneously, as
done in patch 5/6.

Thanks,
-Geliang

> 
> If you agree, I can send a squash-to patch to fix it.
> 
> Thanks,
> -Geliang
> 
> > 
> > Thank you for the review! Now in our tree:
> > 
> > New patches for t/upstream-net and t/upstream:
> > - a9a49f5a022a: selftests: mptcp: connect: fix fallback note due to
> > OoO
> > - 818251a0fc51: selftests: mptcp: join: rm: set backup flag
> > - f0864a03b80b: selftests: mptcp: join: endpoints: longer transfer
> > - a68bf9260dab: selftests: mptcp: join: userspace: longer transfer
> > - 69569761c0f6: selftests: mptcp: join: fastclose: drop plain RST
> > - e99b7db5862e: selftests: mptcp: connect: trunc: read all recv
> > data
> > - Results: 3cf18f92ab22..09c25f9f5ca3 (export-net)
> > - Results: b35f4b01c8d3..625ded86ead5 (export)
> > 
> > Tests are now in progress:
> > 
> > - export-net:
> > https://github.com/multipath-tcp/mptcp_net-next/commit/c8f9b6716c62042010e0e231a789467236c55625/checks
> > - export:
> > https://github.com/multipath-tcp/mptcp_net-next/commit/31b5d615cdeb4fd6ea58fcd577b48543dd3b0617/checks
> > 
> > Cheers,
> > Matt
> 
> 

Re: [PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests
Posted by Geliang Tang 3 weeks, 2 days ago
Hi Matt,

On Sun, 2025-11-02 at 12:30 +0100, Matthieu Baerts (NGI0) wrote:
> When looking at the recent CI results on NIPA and MPTCP CIs, a few
> MPTCP
> Join tests are marked as unstable. Here are some fixes for that.
> 
> - Patch 1: a small fix for mptcp_connect.sh, printing a note as
>   initially intended. For >=v5.13.
> 
> - Patch 2: avoid unexpected reset when closing subflows. For >= 5.13.
> 
> - Patches 3-4: longer transfer when not waiting for the end. For
> >=5.18.
> 
> - Patch 5: drop noisy plain RST packets when looking for
> MP_FASTCLOSE.
>   For >= 5.18.
> 
> - Patch 6: read all received data when expecting a reset. For >=
> v6.1.
> 
> When reviewing patches 2-6, please double check that I'm not hiding
> real
> issues by tweaking the tests suite.
> 
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>

This set looks good to me!

Reviewed-by: Geliang Tang <geliang@kernel.org>

Thanks,
-Geliang

> ---
> Changes in v2:
> - Patch 6: also handle EPIPE properly.
> - Link to v1:
> https://patch.msgid.link/20251101-slft-join-inst-v1-0-10572512a0b2@kernel.org
> 
> ---
> Matthieu Baerts (NGI0) (6):
>       selftests: mptcp: connect: fix fallback note due to OoO
>       selftests: mptcp: join: rm: set backup flag
>       selftests: mptcp: join: endpoints: longer transfer
>       selftests: mptcp: join: userspace: longer transfer
>       selftests: mptcp: join: fastclose: drop plain RST
>       selftests: mptcp: connect: trunc: read all recv data
> 
>  tools/testing/selftests/net/mptcp/mptcp_connect.c  | 18 ++--
>  tools/testing/selftests/net/mptcp/mptcp_connect.sh |  2 +-
>  tools/testing/selftests/net/mptcp/mptcp_join.sh    | 95
> +++++++++++++---------
>  3 files changed, 69 insertions(+), 46 deletions(-)
> ---
> base-commit: b9e1acc39cbc985ca8df781775718e39e421409b
> change-id: 20251029-slft-join-inst-e307faf42138
> 
> Best regards,

Re: [PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests
Posted by MPTCP CI 3 weeks, 3 days ago
Hi Matthieu,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal (except selftest_mptcp_join): Success! ✅
- KVM Validation: normal (only selftest_mptcp_join): Success! ✅
- KVM Validation: debug (except selftest_mptcp_join): Unstable: 1 failed test(s): packetdrill_add_addr 🔴
- KVM Validation: debug (only selftest_mptcp_join): Success! ✅
- KVM Validation: btf-normal (only bpftest_all): Success! ✅
- KVM Validation: btf-debug (only bpftest_all): Success! ✅
- Task: https://github.com/multipath-tcp/mptcp_net-next/actions/runs/19031627642

Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/22e5bba93c31
Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=1018612


If there are some issues, you can reproduce them using the same environment as
the one used by the CI thanks to a docker image, e.g.:

    $ cd [kernel source code]
    $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
        --pull always mptcp/mptcp-upstream-virtme-docker:latest \
        auto-normal

For more details:

    https://github.com/multipath-tcp/mptcp-upstream-virtme-docker


Please note that despite all the efforts that have been already done to have a
stable tests suite when executed on a public CI like here, it is possible some
reported issues are not due to your modifications. Still, do not hesitate to
help us improve that ;-)

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (NGI0 Core)
Re: [PATCH mptcp-net v2 0/6] selftests: mptcp: join: fix flaky tests
Posted by MPTCP CI 3 weeks, 4 days ago
Hi Matthieu,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal (except selftest_mptcp_join): Success! ✅
- KVM Validation: normal (only selftest_mptcp_join): Success! ✅
- KVM Validation: debug (except selftest_mptcp_join): Success! ✅
- KVM Validation: debug (only selftest_mptcp_join): Success! ✅
- KVM Validation: btf-normal (only bpftest_all): Success! ✅
- KVM Validation: btf-debug (only bpftest_all): Success! ✅
- Task: https://github.com/multipath-tcp/mptcp_net-next/actions/runs/19011645207

Initiator: Matthieu Baerts (NGI0)
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/ee5cae87148e
Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=1018612


If there are some issues, you can reproduce them using the same environment as
the one used by the CI thanks to a docker image, e.g.:

    $ cd [kernel source code]
    $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
        --pull always mptcp/mptcp-upstream-virtme-docker:latest \
        auto-normal

For more details:

    https://github.com/multipath-tcp/mptcp-upstream-virtme-docker


Please note that despite all the efforts that have been already done to have a
stable tests suite when executed on a public CI like here, it is possible some
reported issues are not due to your modifications. Still, do not hesitate to
help us improve that ;-)

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (NGI0 Core)