diff --git a/subversion/svnserve/serve.c b/subversion/svnserve/serve.c index 5192e7c..6159e22 100644 --- a/subversion/svnserve/serve.c +++ b/subversion/svnserve/serve.c @@ -4101,7 +4101,7 @@ construct_server_baton(server_baton_t **baton, serve_params_t *params, apr_pool_t *scratch_pool) { - svn_error_t *err, *io_err; + svn_error_t *err; apr_uint64_t ver; const char *client_url, *ra_client_string, *client_string; svn_ra_svn__list_t *caplist; @@ -4239,11 +4239,12 @@ construct_server_baton(server_baton_t **baton, } if (err) { - log_error(err, b); - io_err = svn_ra_svn__write_cmd_failure(conn, scratch_pool, err); - svn_error_clear(err); - SVN_ERR(io_err); - return svn_ra_svn__flush(conn, scratch_pool); + /* Report these errors to the client before closing the connection. */ + err = svn_error_compose_create(err, + svn_ra_svn__write_cmd_failure(conn, scratch_pool, err)); + err = svn_error_compose_create(err, + svn_ra_svn__flush(conn, scratch_pool)); + return err; } SVN_ERR(svn_fs_get_uuid(b->repository->fs, &b->repository->uuid,