TestDrainRecvBufferEmptiesAWindowBlockedPeer (internal/sockopts/drain_recv_tcp_linux_test.go) still fails the test on the TCPAbortOnClose delta read from /proc/net/netstat around its close(2):
if abortOnClose != 0 {
t.Errorf("close(2) reset the connection (TCPAbortOnClose +%d): the peer loses the staged send buffer (celeris#569)", abortOnClose)
}
That counter is per network namespace, not per socket, which is why #608 (#617) made these deltas diagnostic only in the Tier 0 truth table; the NOTE a few lines above this very assertion says "these two deltas are DIAGNOSTIC ONLY and nothing asserts on them". This test kept one.
It went red in the Coverage (root + middleware sub-modules) job on #808's head 0df4ac2 (run 36570377360, job 109412586512), where the package runs next to the engine packages, whose tests close many sockets with unread data at the same time:
--- FAIL: TestDrainRecvBufferEmptiesAWindowBlockedPeer (0.06s)
drain_recv_tcp_linux_test.go:264: TIER0-WINDOWBLOCKED sent=2750604 inq_before=458699 drained=458699 inq_after=0 rcvbuf=524288 elapsed=132.97µs abortOnClose=+5 peer=EOF
drain_recv_tcp_linux_test.go:271: close(2) reset the connection (TCPAbortOnClose +5): the peer loses the staged send buffer (celeris#569)
Every per-connection column is right (inq_after=0, the peer saw EOF, not a reset), and a reset of this socket would have shown in peer=. The same test passed in the Unit job of the same head (run 36570377254), where the package ran in the race step. #808 does not touch internal/sockopts.
Fix: drop the abortOnClose assertion and keep printing the delta, as #617 did for the truth table; inq_after == 0 and peer == EOF already carry the #569 signal. It can hit the required Unit job the same way.
TestDrainRecvBufferEmptiesAWindowBlockedPeer(internal/sockopts/drain_recv_tcp_linux_test.go) still fails the test on theTCPAbortOnClosedelta read from/proc/net/netstataround itsclose(2):That counter is per network namespace, not per socket, which is why #608 (#617) made these deltas diagnostic only in the Tier 0 truth table; the NOTE a few lines above this very assertion says "these two deltas are DIAGNOSTIC ONLY and nothing asserts on them". This test kept one.
It went red in the
Coverage (root + middleware sub-modules)job on #808's head 0df4ac2 (run 36570377360, job 109412586512), where the package runs next to the engine packages, whose tests close many sockets with unread data at the same time:Every per-connection column is right (
inq_after=0, the peer sawEOF, not a reset), and a reset of this socket would have shown inpeer=. The same test passed in theUnitjob of the same head (run 36570377254), where the package ran in the race step. #808 does not touchinternal/sockopts.Fix: drop the
abortOnCloseassertion and keep printing the delta, as #617 did for the truth table;inq_after == 0andpeer == EOFalready carry the #569 signal. It can hit the requiredUnitjob the same way.