Holger Freyther <zecke@xxxxxxxxxxx> writes: > Holger Freyther <zecke <at> selfish.org> writes: > > >> It is a bit difficult to track all the processes that get started and what they >> should do and to figure out at which point the fd for the tcp socket is really >> closed. > > If I do the below hack it is working fine. Adding a fflush(NULL).. or a > close(fileno(stdout)).. fsync... sched_yield() is not fixing it though. > > diff --git a/upload-pack.c b/upload-pack.c > index 72aa661..4cd12c9 100644 > --- a/upload-pack.c > +++ b/upload-pack.c > @@ -695,6 +695,8 @@ static void upload_pack(void) > get_common_commits(); > create_pack_file(); > } > + > + sleep(1); > } > > int main(int argc, char **argv) That reminds me an issue I had with git over SSH. The problem was indeed not Git-related: http://readlist.com/lists/securityfocus.com/secureshell/0/3071.html In short, when sending 196481 bytes or more, _and_ if the server did not consume the data fast enough, then the connection was closed after 65536=2^16 bytes. That was on RHEL, and upgrading the kernel solved the issue. Scary... -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html