Skip to content

lsquic client occasionally stops sending ACKs on larger downloads #522

@koujaz

Description

@koujaz

Downloading larger files (100MB) with lsquic client occasionally fails because the client is not sending ACKs for too long.

Here is what we observe:

  • large portion of the download goes smoothly
  • sometimes there is number of incoming packets in row without any client ACKs (so far no issue but let's call this "smaller hole")
  • but eventually this "hole" without ACKs becomes too large (>2000 packets, >6seconds) so the server closes the connection with "Network black hole detected"
  • client responds to CC immediately with ACK containing the full range of packets

Notes:

  • using client built from latest master, commit b0bd690
  • server is Akamai quic server
  • there is GSO on the server side (should be unrelated; not sure if lsquic uses recvmmsg but there are individual incoming packets seen on the network device so no GRO on receiver side)
  • we have full tcpdump with the failed download
  • client ran w/ -o delayed_acks=0 on the command line

See screenshots for pieces of tcpdump on client side showing:

  • start and end for random "smaller hole" in the middle of the download (2.6 seconds, 2442 packets)
    smaller_hole_begin
    smaller_hole_end
  • start and end for final "lethal hole" which ended w/ CC from the server (6.6 seconds, 2445 packets)
    last_hole_begin
    last_hole_end

Full client stderr during failed download:
client.stderr.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions