Repository navigation
Conversation
Signed-off-by: Artem Lytvyn <letv1n2007@icloud.com>
|
Accepted #5130. The production change looks sound: replying with Please strengthen the regression coverage before merge. Local verification: the patch applies cleanly to |
Signed-off-by: Artem Lytvyn <letv1n2007@icloud.com>
|
thanks for the review! I dropped the old completion test and added a small tracing layer that captures the broker's denial warnings, plus two tests, one shows an in-progress connect no longer logs a false WARN (it fails without the fix), and one shows a real connect failure (ENETUNREACH) still does. |
|
/ok to test 10538e1 |
|
@letv1nnn the PR fails branch checks, please address it. |
Signed-off-by: Artem Lytvyn <letv1n2007@icloud.com>
Summary
The sandbox network broker logged every nonblocking loopback
connectthat returnedEINPROGRESSasWARN ... sandbox network notification denied.EINPROGRESSis the normal result of a nonblocking connect, not a denial. Node.js workloads produced about 10 of these warnings per second, which hid real denials. The broker now sendsEINPROGRESSto the workload directly, so it no longer logs a denial. The workload sees no change.Related Issue
Closes #5130
Changes
connect_local_tcpincrates/openshell-sandbox/src/network_broker.rs: when a nonblocking loopback connect returnsEINPROGRESS, reply withrespond_errno(EINPROGRESS)and returnOk(()). The blocking branch already answers this way. The error is no longer passed to the dispatcher, which logs every handler error as a denial. Real connect failures such asECONNREFUSEDare logged as before.nonblocking_loopback_connect_completes_after_in_progress: a nonblocking loopback connect from a mediated workload getsEINPROGRESS, becomes writable withSO_ERRORclear, getsEISCONNon a repeated connect, and delivers data to the peer.Not in scope:
ECONNREFUSED,EISCONN,EAGAIN) as "denied". That could be a follow-up.EINPROGRESSfrom the external connect path, it should answer the workload directly the same way, or the warning will return for external connections.Testing