Skip to content

selftests: mptcp_connect: MPTCP -> MPTCP timeout during closing time #595

@matttbe

Description

@matttbe

The CI reported this issue with mptcp_connect.sh -m mmap:

# 27 ns3 MPTCP -> ns1 (10.0.1.1:10024      ) MPTCP     (duration   816ms) [ OK ]
# 28 ns3 MPTCP -> ns1 (dead:beef:1::1:10025) MPTCP     (duration   518ms) [ OK ]
# 29 ns3 MPTCP -> ns2 (10.0.1.2:10026      ) MPTCP     (duration   525ms) [ OK ]
# 30 ns3 MPTCP -> ns2 (dead:beef:1::2:10027) MPTCP     (duration   462ms) [ OK ]
# 31 ns3 MPTCP -> ns2 (10.0.2.1:10028      ) MPTCP     (duration   515ms) [ OK ]
# 32 ns3 MPTCP -> ns2 (dead:beef:2::1:10029) MPTCP     (duration 61162ms) [FAIL] client exit code 124, server 0
# 
# netns ns2-r6HMFc (listener) socket stat for 10029:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State    Recv-Q Send-Q    Local Address:Port      Peer Address:Port                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
# tcp   ESTAB    0      0      [dead:beef:2::1]:10029 [dead:beef:2::2]:34934 ino:24467 sk:315e cgroup:unreachable:1 <->
# 	 skmem:(r0,rb6308167,t0,tb3216384,f0,w0,o0,bl0,d0) ts sack cubic wscale:10,10 rto:210 rtt:9.33/0.056 ato:40 mss:1428 pmtu:1500 rcvmss:1404 advmss:1428 cwnd:2299 bytes_sent:3200224 bytes_acked:3200224 bytes_received:5071631 segs_out:2385 segs_in:3687 data_segs_out:2290 data_segs_in:3618 send 2814981350bps lastsnd:61124 lastrcv:61253 lastack:61115 pacing_rate 5629661000bps delivery_rate 1226672bps delivered:2291 busy:101ms rwnd_limited:1ms(1.0%) rcv_rtt:9 rcv_space:487115 rcv_ssthresh:4778385 minrtt:9.071 snd_wnd:2342912 rcv_wnd:1780736 tcp-ulp-mptcp flags:Mec token:0000(id:0)/9578e90f(id:0) seq:6779705836707005743 sfseq:5018845 ssnoff:3731122103 maplen:52787
# mptcp LAST-ACK 0      0      [dead:beef:2::1]:10029 [dead:beef:2::2]:34934 timer:(keepalive,,0) ino:0 sk:315f cgroup:unreachable:1 ---
# 	 skmem:(r0,rb2349053,t0,tb3220480,f0,w0,o0,bl0,d0) subflows_max:2 remote_key token:9578e90f write_seq:3137292983728086502 snd_una:3137292983728086501 rcv_nxt:6779705836707058531 retransmits:9 bytes_retrans:960 bytes_sent:3199264 bytes_received:5071631 bytes_acked:3199264 subflows_total:1 last_data_sent:61156 last_data_recv:61254 last_ack_recv:61116                                                                                                                                                                                                                                                                                                          
#   TcpPassiveOpens                 1
#   TcpInSegs                       189
#   TcpOutSegs                      2386
#   TcpExtTCPPureAcks               63
#   TcpExtTCPOrigDataSent           2290
#   TcpExtTCPDelivered              2290
#   MPTcpExtMPCapableSYNRX          1
#   MPTcpExtMPCapableACKRX          1
#   MPTcpExtMPTCPRetrans            1
#   MPTcpExtRcvWndShared            3
# 
# netns ns3-xs1Puo (connector) socket stat for 10029:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State      Recv-Q Send-Q    Local Address:Port      Peer Address:Port                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
# tcp   ESTAB      0      0      [dead:beef:2::2]:34934 [dead:beef:2::1]:10029 ino:25452 sk:106b cgroup:unreachable:1 <->
# 	 skmem:(r0,rb3875534,t0,tb4194304,f0,w0,o0,bl0,d0) ts sack cubic wscale:10,10 rto:210 rtt:9.171/0.075 ato:40 mss:1428 pmtu:1500 rcvmss:988 advmss:1428 cwnd:1630 bytes_sent:5071631 bytes_acked:5071632 bytes_received:3200224 segs_out:3687 segs_in:2383 data_segs_out:3618 data_segs_in:2290 send 2030435067bps lastsnd:61400 lastrcv:61262 lastack:9164 pacing_rate 4060593400bps delivery_rate 275815984bps delivered:3619 busy:129ms rwnd_limited:4ms(3.1%) rcv_rtt:9 rcv_space:315392 rcv_ssthresh:2904081 minrtt:9.044 snd_wnd:1780736 rcv_wnd:2342912 tcp-ulp-mptcp flags:Mmec token:0000(id:0)/760726f5(id:0) seq:3137292983728085541 sfseq:3199265 ssnoff:740796085 maplen:960
# mptcp FIN-WAIT-2 0      0      [dead:beef:2::2]:34934 [dead:beef:2::1]:10029 timer:(keepalive,59sec,0) ino:0 sk:106c cgroup:unreachable:1 ---
# 	 skmem:(r0,rb3875534,t0,tb4198400,f0,w0,o0,bl0,d0) subflows_max:2 remote_key token:760726f5 write_seq:6779705836707058531 snd_una:6779705836707058531 rcv_nxt:3137292983728086501 bytes_sent:5071631 bytes_received:3199264 bytes_acked:5071632 subflows_total:1 last_data_sent:61411 last_data_recv:61295 last_ack_recv:9166                                                                                                                                                                                                                                                                                                                                     
#   TcpActiveOpens                  1
#   TcpInSegs                       179
#   TcpOutSegs                      3687
#   TcpExtTCPPureAcks               92
#   TcpExtTCPAutoCorking            6
#   TcpExtTCPOrigDataSent           3618
#   TcpExtTCPDelivered              3619
#   MPTcpExtMPCapableSYNTX          1
#   MPTcpExtMPCapableSYNACKRX       1
#   MPTcpExtDuplicateData           1
# 
# 33 ns3 MPTCP -> ns4 (10.0.3.1:10030      ) MPTCP     (duration  1623ms) [ OK ]
# 34 ns3 MPTCP -> ns4 (dead:beef:3::1:10031) MPTCP     (duration  1247ms) [ OK ]
# [FAIL] Tests with ns3-xs1Puo as a sender have failed

It might not be linked to #594. From Paolo:

I suspect a race; there is no synchronzation between mptcp_data_fin_enabled() in mptcp_established_options() and __mptcp_wr_shutdown(): mptcp_established_options() could observe snd_data_fin_enable == 1 and old write_seq/snd_nxt` values, emitting the data fin in the wrong dss? → To be checked

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions