https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298560

--- Comment #3 from Chen Zhao <[email protected]> ---
Created attachment 274796
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=274796&action=edit
Native FreeBSD TCP ISS regression reproducer (source, runner, and instructions)

I also reproduced this issue on an amd64 FreeBSD VM running in Microsoft Azure.

System: FreeBSD 15.1-RELEASE-p3, GENERIC amd64
Kernel revision: releng/15.1-n283611-88e7371d9dc2

Command:
sudo sh run.sh long

The test transferred 2 GiB + 128 KiB over a single TCP connection.
All 1,470,969 advancing ACKs were processed through header prediction,
with zero retransmissions.

After a window change forced general TCP processing, the final valid
ACK carrying one byte of data ('X') was incorrectly discarded as a
ghost ACK. recv() returned -1 with errno 35 (EWOULDBLOCK), and the
ghost ACK counter increased by one.

The reproducer reported:
REPRODUCED: valid ACK and X discarded as a ghost ACK

Full terminal output follows:
```
 azureuser@chenzhao-test:~/freebsd-iss-reproducer $ sudo sh run.sh long
  FreeBSD chenzhao-test 15.1-RELEASE-p3 FreeBSD 15.1-RELEASE-p3
releng/15.1-n283611-88e7371d9dc2 GENERIC amd64
  15.1-RELEASE-p3
  15.1-RELEASE-p3
  mode=long initial_ghost_ack=rejected target=2147614720
  progress: bytes=268435600 elapsed_ms=804
  progress: bytes=536871200 elapsed_ms=1605
  progress: bytes=805306800 elapsed_ms=2403
  progress: bytes=1073742400 elapsed_ms=3207
  progress: bytes=1342178000 elapsed_ms=4009
  progress: bytes=1610613600 elapsed_ms=4816
  progress: bytes=1879049200 elapsed_ms=5620
  progress: bytes=2147484800 elapsed_ms=6421
  transfer: bytes=2147614720 packets=1470969 advancing_acks=1470969
predicted_acks=1470969
  snd_una_minus_iss=2147614721 retransmits=0 elapsed_ms=6422
  request: received=-1 errno=35 ghost_ack_delta=1
  REPRODUCED: valid ACK and X discarded as a ghost ACK
```

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to