feature: no network timeout handling — operations can hang indefinitely #36
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
FastSync has no configurable timeouts for any network operations:
src/shared/transport_tcp.c: Nosetsockopt(SO_RCVTIMEO)orsetsockopt(SO_SNDTIMEO)is set on sockets.connect()has no timeout wrapper.src/shared/transport_ssh.c: Theread()on the exec pipe (line 135) has no timeout.src/shared/protocol.c: Allread()/write()calls can block indefinitely.src/server/server.c:accept()blocks without timeout.This means:
--timeoutor--contimeoutCLI options exist (unlike rsync)Suggested Fix:
O_NONBLOCK+select()/poll()--timeoutCLI option with default (e.g., 0 = no timeout, like rsync)Location:
src/shared/transport_tcp.c,src/shared/protocol.c,src/server/server.cSeverity: medium