Fix WSLC localhost port relay wedge on repeated download (reverse) transfers (#40871)

* Add hourly upstream sync workflow for feature/wsl-for-apps * Remove upstream sync workflow * Ignore sigpipe

Kevin Vega committed Jun 22, 2026 at 17:44 UTC 9bdc484070a3862ff171c419924e7bd41dd2f7a1
1 file changed +6
src/linux/init/WSLCInit.cpp
+6
@@ -781,6 +781,12 @@ void HandleMessageImpl(
781 Transaction.SendResultMessage<uint32_t>(SocketAddress.svm_port);
782 Channel.Close();
783 UtilSetThreadName("PortRelay");
784 +
785 + // If the host end of a relay socket is reset, a write will raise SIGPIPE. Ignore it so
786 + // the failure surfaces as an EPIPE return value (handled by the relay loop) instead of
787 + // terminating this forked PortRelay process and tearing down the vsock accept listener.
788 + THROW_LAST_ERROR_IF(signal(SIGPIPE, SIG_IGN) == SIG_ERR);
789 +
790 RunLocalHostRelay(SocketAddress, ListenSocket.get());
791 }
792