From: Jakub Kicinski <[email protected]> Date: Sun, 6 Oct 2019 20:53:22 -0700
> If strparser encounters an error it reports it on the socket and > stops any further processing. TLS RX will currently pick up that > error code with sock_error(), and report it to user space once. > Subsequent read calls will block indefinitely. > > Since the error condition is not cleared and processing is not > restarted it seems more correct to keep returning the error > rather than sleeping. > > Signed-off-by: Jakub Kicinski <[email protected]> > Reviewed-by: Simon Horman <[email protected]> So I guess this is all about what the usual socket error code semantics work, which is report-and-clear. States which should signal errors are always checked in the various code socket call paths and if necessary the socket error is resignalled. >From what I'm seeing here, the issue is that the strparser stopped state isn't resampled at the appropriate spot. So I would rather see that fixed rather than having socket errors become level triggered in this special case.
