Hi. It is possible to force svnserve daemon to exit using trivial (and valid) TCP session: 14:04:18.277961 IP6 fdef::1.34130 > fd87:e01f:53ee:1203:6672:6565:57fa:eb29.3690: Flags [S], seq 3296066821, win 17880, options [mss 1220,nop,nop,sackOK,nop,wscale 7], length 0 14:04:18.278001 IP6 fd87:e01f:53ee:1203:6672:6565:57fa:eb29.3690 > fdef::1.34130: Flags [S.], seq 2136980559, ack 3296066822, win 65535, options [mss 1220,nop,wscale 6,sackOK,eol], length 0 14:04:18.278081 IP6 fdef::1.34130 > fd87:e01f:53ee:1203:6672:6565:57fa:eb29.3690: Flags [.], ack 1, win 140, length 0 14:04:18.278112 IP6 fdef::1.34130 > fd87:e01f:53ee:1203:6672:6565:57fa:eb29.3690: Flags [R.], seq 1, ack 1, win 140, length 0
There is a possibility that apr_socket_accept() will return ECONNABORTED for such connection attempt. [16:03:57]: /usr/ports/devel/subversion/work/subversion-1.7.8/subversion/svn>/usr/local/bin/svnserve --foreground -d -R -r /home/freebsd-svn svnserve: E000053: Can't accept client connection: Software caused connection abort [16:30:01]: Patch against this situation is trivial enough: --- subversion/svnserve/main.c~ 2012-10-16 08:03:13.000000000 +0400 +++ subversion/svnserve/main.c 2013-05-15 13:51:13.887976422 +0400 @@ -928,7 +928,7 @@ connection_pool) == APR_CHILD_DONE) ; } - if (APR_STATUS_IS_EINTR(status)) + if (APR_STATUS_IS_EINTR(status) || APR_STATUS_IS_ECONNABORTED(status)) { svn_pool_destroy(connection_pool); continue; p/s. This e-mail must be treated as VALIDATION e-mail per http://subversion.apache.org/reporting-issues.html bug reporting guide. -- Boris Lytochkin Yandex NOC +7 (495) 739 70 00 ext. 7671