fix(s7): bound async wire ops with a wall-clock deadline (R2-01 read leg) #453
Reference in New Issue
Block a user
Delete Branch "fix/r2-01-s7-read-wallclock-timeout"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the R2-01 live gate. The
S7_1500ConnectTimeoutOutageTestsdocker-pause blackhole surfaced a real gap offline fakes couldn't: S7.Net'sReadTimeout/WriteTimeoutset the TcpClient's synchronous receive/send timeout, which async reads ignore — so a read on an established-but-frozen peer blocked for minutes, wedging the poll loop (no Bad tick, no reconnect). STAB-14 fixed only the connect leg; this is its read-leg sibling.S7OperationDeadline: wall-clock ceiling on every data-plane wire op →TimeoutExceptionon overrun.IsS7ConnectionFatalclassifiesTimeoutExceptionfatal → mark dead → reopen.