{"thread":{"id":"44160","subject":"RE: git-upload-pack hangs","startedAt":"2016-09-26T13:26:31Z","lastAt":"2016-09-27T20:56:42Z","messageCount":5,"participants":["Jason Pyeron","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"302574","messageId":"62E3FC352BE4428A90D7E4E9B137A9FB@black7","threadId":"44160","inReplyTo":"66A60DA77398CD439FA676CEF593977D692508@exchange.1.internal.pdinc.us","subject":"RE: git-upload-pack hangs","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2016-09-26T13:26:21Z","receivedAt":"2016-09-26T13:26:31Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"> -----Original Message-----\n> From: Jason Pyeron \n> Sent: Monday, September 26, 2016 01:51\n> \n> git is hanging on clone. I am runnig (cygwin) git 2.8.3 on \n> IIS7 (windows server 2012 R2).\n> \n> Where can I start to perform additional debugging?\n> \n\nReading this thread, it seems plausible as a cause since it aligns with my testing.\n\nhttp://www.spinics.net/lists/git/msg279437.html [ and http://www.spinics.net/lists/git/attachments/binQFGHirNLw3.bin ]\n\nI will start to trudge into the code to see if this (or similar) has been applied and if not, does it fix it.\n\n> Selected items I have read, but they did not help:\n> \n> http://unix.stackexchange.com/questions/98959/git-upload-pack-\n> hangs-indefinitely\n> \n> https://sparethought.wordpress.com/2012/12/06/setting-git-to-w\nork-behind-ntlm-authenticated-proxy-cntlm-to-the-rescue/\n> \n> https://sourceforge.net/p/cntlm/bugs/24/\n> \n> invocation of the clone:\n> \n> jpyeron.adm@SERVER /tmp\n> $ GIT_TRACE=1  GIT_CURL_VERBOSE=true git clone \n> http://SERVER.domain.com/git/test.git\n> 01:23:37.020476 git.c:350               trace: built-in: git \n> 'clone' 'http://SERVER.domain.com/git/test.git'\n> Cloning into 'test'...\n> 01:23:37.206046 run-command.c:336       trace: run_command: \n> 'git-remote-http' 'origin' 'http://SERVER.domain.com/git/test.git'\n> * STATE: INIT => CONNECT handle 0x60009a140; line 1397 \n> (connection #-5000)\n> * Couldn't find host SERVER.domain.com in the .netrc file; \n> using defaults\n> * Added connection 0. The cache now contains 1 members\n> *   Trying ::1...\n> * TCP_NODELAY set\n> * STATE: CONNECT => WAITCONNECT handle 0x60009a140; line 1450 \n> (connection #0)\n> * Connected to SERVER.domain.com (::1) port 80 (#0)\n> * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x60009a140; \n> line 1557 (connection #0)\n> * Marked for [keep alive]: HTTP default\n> * STATE: SENDPROTOCONNECT => DO handle 0x60009a140; line 1575 \n> (connection #0)\n> > GET /git/test.git/info/refs?service=git-upload-pack HTTP/1.1\n> Host: SERVER.domain.com\n> User-Agent: git/2.8.3\n> Accept: */*\n> Accept-Encoding: gzip\n> Accept-Language: en-US, *;q=0.9\n> Pragma: no-cache\n> \n> * STATE: DO => DO_DONE handle 0x60009a140; line 1654 (connection #0)\n> * STATE: DO_DONE => WAITPERFORM handle 0x60009a140; line 1781 \n> (connection #0)\n> * STATE: WAITPERFORM => PERFORM handle 0x60009a140; line 1791 \n> (connection #0)\n> * HTTP 1.1 or later with persistent connection, pipelining supported\n> < HTTP/1.1 200 OK\n> < Cache-Control: no-cache, max-age=0, must-revalidate\n> < Pragma: no-cache\n> < Content-Type: application/x-git-upload-pack-advertisement\n> < Expires: Fri, 01 Jan 1980 00:00:00 GMT\n> * Server Microsoft-IIS/8.5 is not blacklisted\n> < Server: Microsoft-IIS/8.5\n> < X-Powered-By: ASP.NET\n> < Date: Mon, 26 Sep 2016 05:23:37 GMT\n> * Marked for [closure]: Connection: close used\n> < Connection: close\n> < Content-Length: 310\n> <\n> * STATE: PERFORM => DONE handle 0x60009a140; line 1955 (connection #0)\n> * multi_done\n> * Curl_http_done: called premature == 0\n> * Closing connection 0\n> * The cache now contains 0 members\n> 01:23:37.688252 run-command.c:336       trace: run_command: \n> 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' \n> '--thin' '--check-self-contained-and-connected' '--cloning' \n> 'http://SERVER.domain.com/git/test.git/'\n> 01:23:37.717168 exec_cmd.c:120          trace: exec: 'git' \n> 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' \n> '--thin' '--check-self-contained-and-connected' '--cloning' \n> 'http://SERVER.domain.com/git/test.git/'\n> 01:23:37.749820 git.c:350               trace: built-in: git \n> 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' \n> '--thin' '--check-self-contained-and-connected' '--cloning' \n> 'http://SERVER.domain.com/git/test.git/'\n> * STATE: INIT => CONNECT handle 0x60009a140; line 1397 \n> (connection #-5000)\n> * Couldn't find host SERVER.domain.com in the .netrc file; \n> using defaults\n> * Added connection 1. The cache now contains 1 members\n> * Hostname SERVER.domain.com was found in DNS cache\n> *   Trying ::1...\n> * TCP_NODELAY set\n> * STATE: CONNECT => WAITCONNECT handle 0x60009a140; line 1450 \n> (connection #1)\n> * Connected to SERVER.domain.com (::1) port 80 (#1)\n> * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x60009a140; \n> line 1557 (connection #1)\n> * Marked for [keep alive]: HTTP default\n> * STATE: SENDPROTOCONNECT => DO handle 0x60009a140; line 1575 \n> (connection #1)\n> > POST /git/test.git/git-upload-pack HTTP/1.1\n> Host: SERVER.domain.com\n> User-Agent: git/2.8.3\n> Accept-Encoding: gzip\n> Content-Type: application/x-git-upload-pack-request\n> Accept: application/x-git-upload-pack-result\n> Content-Length: 140\n> \n> * upload completely sent off: 140 out of 140 bytes\n> * STATE: DO => DO_DONE handle 0x60009a140; line 1654 (connection #1)\n> * STATE: DO_DONE => WAITPERFORM handle 0x60009a140; line 1781 \n> (connection #1)\n> * STATE: WAITPERFORM => PERFORM handle 0x60009a140; line 1791 \n> (connection #1)\n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                               -\n- Jason Pyeron                      PD Inc. http://www.pdinc.us -\n- Principal Consultant              10 West 24th Street #100    -\n- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n-                                                               -\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- \n\n\n"},{"id":"302670","messageId":"50DEA1C222E449F59BC8488C921D6F95@black7","threadId":"44160","inReplyTo":"62E3FC352BE4428A90D7E4E9B137A9FB@black7","subject":"RE: git-upload-pack hangs","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2016-09-27T03:45:19Z","receivedAt":"2016-09-27T03:45:19Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"This is a very, very first draft.\n\nIt is allowing IIS to work right now.\n\nI still need to address chunked issues, where there is no content length (see http://www.gossamer-threads.com/lists/apache/users/373042)\n\nAny comments, sugestions?\n\n-Jason\n\n--- ./origsrc/git-v2.8.3/http-backend.c 2016-05-18 18:32:41.000000000 -0400\n+++ ./src/git-v2.8.3/http-backend.c     2016-09-26 22:52:02.636135000 -0400\n@@ -279,14 +279,17 @@\n {\n        size_t len = 0, alloc = 8192;\n        unsigned char *buf = xmalloc(alloc);\n+       /* get request size */\n+       size_t req_len = git_env_ulong(\"CONTENT_LENGTH\", -1);\n\n        if (max_request_buffer < alloc)\n                max_request_buffer = alloc;\n\n-       while (1) {\n+       while (req_len>0 || req_len==-1 ) {\n+               ssize_t maxread=alloc>req_len && req_len!=-1?req_len:alloc;\n                ssize_t cnt;\n\n-               cnt = read_in_full(fd, buf + len, alloc - len);\n+               cnt = read_in_full(fd, buf + len, maxread - len);\n                if (cnt < 0) {\n                        free(buf);\n                        return -1;\n@@ -294,13 +297,19 @@\n\n                /* partial read from read_in_full means we hit EOF */\n                len += cnt;\n-               if (len < alloc) {\n+               if (len < maxread) {\n                        *out = buf;\n                        return len;\n                }\n\n+               if (req_len>0) {\n+                       req_len -= cnt;\n+                       if (req_len<0)\n+                               req_len=0;\n+               }\n+\n                /* otherwise, grow and try again (if we can) */\n-               if (alloc == max_request_buffer)\n+               if (alloc == max_request_buffer && maxread == alloc)\n                        die(\"request was larger than our maximum size (%lu);\"\n                            \" try setting GIT_HTTP_MAX_REQUEST_BUFFER\",\n                            max_request_buffer);\n@@ -310,6 +319,10 @@\n                        alloc = max_request_buffer;\n                REALLOC_ARRAY(buf, alloc);\n        }\n+\n+       free(buf);\n+\n+       return len;\n }\n\n static void inflate_request(const char *prog_name, int out, int buffer_input)\n \n\n> -----Original Message-----\n> From: git-owner@vger.kernel.org \n> [mailto:git-owner@vger.kernel.org] On Behalf Of Jason Pyeron\n> Sent: Monday, September 26, 2016 09:26\n> To: git@vger.kernel.org\n> Subject: RE: git-upload-pack hangs\n> \n> > -----Original Message-----\n> > From: Jason Pyeron \n> > Sent: Monday, September 26, 2016 01:51\n> > \n> > git is hanging on clone. I am runnig (cygwin) git 2.8.3 on \n> > IIS7 (windows server 2012 R2).\n> > \n> > Where can I start to perform additional debugging?\n> > \n> \n> Reading this thread, it seems plausible as a cause since it \n> aligns with my testing.\n> \n> http://www.spinics.net/lists/git/msg279437.html [ and \n> http://www.spinics.net/lists/git/attachments/binQFGHirNLw3.bin ]\n> \n> I will start to trudge into the code to see if this (or \n> similar) has been applied and if not, does it fix it.\n> \n> > Selected items I have read, but they did not help:\n> > \n> > http://unix.stackexchange.com/questions/98959/git-upload-pack-\n> > hangs-indefinitely\n> > \n> > https://sparethought.wordpress.com/2012/12/06/setting-git-to-w\n> ork-behind-ntlm-authenticated-proxy-cntlm-to-the-rescue/\n> > \n> > https://sourceforge.net/p/cntlm/bugs/24/\n> > \n> > invocation of the clone:\n> > \n> > jpyeron.adm@SERVER /tmp\n> > $ GIT_TRACE=1  GIT_CURL_VERBOSE=true git clone \n> > http://SERVER.domain.com/git/test.git\n> > 01:23:37.020476 git.c:350               trace: built-in: git \n> > 'clone' 'http://SERVER.domain.com/git/test.git'\n> > Cloning into 'test'...\n> > 01:23:37.206046 run-command.c:336       trace: run_command: \n> > 'git-remote-http' 'origin' 'http://SERVER.domain.com/git/test.git'\n> > * STATE: INIT => CONNECT handle 0x60009a140; line 1397 \n> > (connection #-5000)\n> > * Couldn't find host SERVER.domain.com in the .netrc file; \n> > using defaults\n> > * Added connection 0. The cache now contains 1 members\n> > *   Trying ::1...\n> > * TCP_NODELAY set\n> > * STATE: CONNECT => WAITCONNECT handle 0x60009a140; line 1450 \n> > (connection #0)\n> > * Connected to SERVER.domain.com (::1) port 80 (#0)\n> > * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x60009a140; \n> > line 1557 (connection #0)\n> > * Marked for [keep alive]: HTTP default\n> > * STATE: SENDPROTOCONNECT => DO handle 0x60009a140; line 1575 \n> > (connection #0)\n> > > GET /git/test.git/info/refs?service=git-upload-pack HTTP/1.1\n> > Host: SERVER.domain.com\n> > User-Agent: git/2.8.3\n> > Accept: */*\n> > Accept-Encoding: gzip\n> > Accept-Language: en-US, *;q=0.9\n> > Pragma: no-cache\n> > \n> > * STATE: DO => DO_DONE handle 0x60009a140; line 1654 (connection #0)\n> > * STATE: DO_DONE => WAITPERFORM handle 0x60009a140; line 1781 \n> > (connection #0)\n> > * STATE: WAITPERFORM => PERFORM handle 0x60009a140; line 1791 \n> > (connection #0)\n> > * HTTP 1.1 or later with persistent connection, pipelining supported\n> > < HTTP/1.1 200 OK\n> > < Cache-Control: no-cache, max-age=0, must-revalidate\n> > < Pragma: no-cache\n> > < Content-Type: application/x-git-upload-pack-advertisement\n> > < Expires: Fri, 01 Jan 1980 00:00:00 GMT\n> > * Server Microsoft-IIS/8.5 is not blacklisted\n> > < Server: Microsoft-IIS/8.5\n> > < X-Powered-By: ASP.NET\n> > < Date: Mon, 26 Sep 2016 05:23:37 GMT\n> > * Marked for [closure]: Connection: close used\n> > < Connection: close\n> > < Content-Length: 310\n> > <\n> > * STATE: PERFORM => DONE handle 0x60009a140; line 1955 \n> (connection #0)\n> > * multi_done\n> > * Curl_http_done: called premature == 0\n> > * Closing connection 0\n> > * The cache now contains 0 members\n> > 01:23:37.688252 run-command.c:336       trace: run_command: \n> > 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' \n> > '--thin' '--check-self-contained-and-connected' '--cloning' \n> > 'http://SERVER.domain.com/git/test.git/'\n> > 01:23:37.717168 exec_cmd.c:120          trace: exec: 'git' \n> > 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' \n> > '--thin' '--check-self-contained-and-connected' '--cloning' \n> > 'http://SERVER.domain.com/git/test.git/'\n> > 01:23:37.749820 git.c:350               trace: built-in: git \n> > 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' \n> > '--thin' '--check-self-contained-and-connected' '--cloning' \n> > 'http://SERVER.domain.com/git/test.git/'\n> > * STATE: INIT => CONNECT handle 0x60009a140; line 1397 \n> > (connection #-5000)\n> > * Couldn't find host SERVER.domain.com in the .netrc file; \n> > using defaults\n> > * Added connection 1. The cache now contains 1 members\n> > * Hostname SERVER.domain.com was found in DNS cache\n> > *   Trying ::1...\n> > * TCP_NODELAY set\n> > * STATE: CONNECT => WAITCONNECT handle 0x60009a140; line 1450 \n> > (connection #1)\n> > * Connected to SERVER.domain.com (::1) port 80 (#1)\n> > * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x60009a140; \n> > line 1557 (connection #1)\n> > * Marked for [keep alive]: HTTP default\n> > * STATE: SENDPROTOCONNECT => DO handle 0x60009a140; line 1575 \n> > (connection #1)\n> > > POST /git/test.git/git-upload-pack HTTP/1.1\n> > Host: SERVER.domain.com\n> > User-Agent: git/2.8.3\n> > Accept-Encoding: gzip\n> > Content-Type: application/x-git-upload-pack-request\n> > Accept: application/x-git-upload-pack-result\n> > Content-Length: 140\n> > \n> > * upload completely sent off: 140 out of 140 bytes\n> > * STATE: DO => DO_DONE handle 0x60009a140; line 1654 (connection #1)\n> > * STATE: DO_DONE => WAITPERFORM handle 0x60009a140; line 1781 \n> > (connection #1)\n> > * STATE: WAITPERFORM => PERFORM handle 0x60009a140; line 1791 \n> > (connection #1)\n> \n> --\n> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n> -                                                               -\n> - Jason Pyeron                      PD Inc. http://www.pdinc.us -\n> - Principal Consultant              10 West 24th Street #100    -\n> - +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n> -                                                               -\n> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- \n> \n> \n> \n\n"},{"id":"302691","messageId":"2AD8B9C4EF28416FB43A0B0B717EF2BE@black7","threadId":"44160","inReplyTo":"CAPc5daVdnuEfgNaeaGCymd3QWX7kfO3JQutVWmPOv1iMMzqCcA@mail.gmail.com","subject":"RE: git-upload-pack hangs","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2016-09-27T10:27:00Z","receivedAt":"2016-09-27T10:27:00Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"Thanks, I wrote this while on a train to get the site up 1st, I did not even review it yet! \n\nI think I am going to spend the time this weekend to clean it up, and submit a patch for master and the version cygwin uses.\n\n-Jason\n\n> -----Original Message-----\n> From: jch2355@gmail.com [mailto:jch2355@gmail.com] On Behalf \n> Of Junio C Hamano\n> Sent: Tuesday, September 27, 2016 00:18\n> To: Jason Pyeron\n> Subject: Re: git-upload-pack hangs\n> \n> Not a review, but size_t is an unsigned type, so specifying -1 as a\n> fallback value,\n> or comparing it with -1, does not make much sense.  Perhaps \n> use ssize_t?\n> \n> On Mon, Sep 26, 2016 at 8:45 PM, Jason Pyeron \n> <jpyeron@pdinc.us> wrote:\n> > This is a very, very first draft.\n> >\n> > It is allowing IIS to work right now.\n> >\n> > I still need to address chunked issues, where there is no \n> content length (see \n> http://www.gossamer-threads.com/lists/apache/users/373042)\n> >\n> > Any comments, sugestions?\n> >\n> > -Jason\n> >\n> > --- ./origsrc/git-v2.8.3/http-backend.c 2016-05-18 \n> 18:32:41.000000000 -0400\n> > +++ ./src/git-v2.8.3/http-backend.c     2016-09-26 \n> 22:52:02.636135000 -0400\n> > @@ -279,14 +279,17 @@\n> >  {\n> >         size_t len = 0, alloc = 8192;\n> >         unsigned char *buf = xmalloc(alloc);\n> > +       /* get request size */\n> > +       size_t req_len = git_env_ulong(\"CONTENT_LENGTH\", -1);\n> >\n> >         if (max_request_buffer < alloc)\n> >                 max_request_buffer = alloc;\n> >\n> > -       while (1) {\n> > +       while (req_len>0 || req_len==-1 ) {\n> > +               ssize_t maxread=alloc>req_len && \n> req_len!=-1?req_len:alloc;\n> >                 ssize_t cnt;\n> >\n> > -               cnt = read_in_full(fd, buf + len, alloc - len);\n> > +               cnt = read_in_full(fd, buf + len, maxread - len);\n> >                 if (cnt < 0) {\n> >                         free(buf);\n> >                         return -1;\n> > @@ -294,13 +297,19 @@\n> >\n> >                 /* partial read from read_in_full means we \n> hit EOF */\n> >                 len += cnt;\n> > -               if (len < alloc) {\n> > +               if (len < maxread) {\n> >                         *out = buf;\n> >                         return len;\n> >                 }\n> >\n> > +               if (req_len>0) {\n> > +                       req_len -= cnt;\n> > +                       if (req_len<0)\n> > +                               req_len=0;\n> > +               }\n> > +\n> >                 /* otherwise, grow and try again (if we can) */\n> > -               if (alloc == max_request_buffer)\n> > +               if (alloc == max_request_buffer && maxread == alloc)\n> >                         die(\"request was larger than our \n> maximum size (%lu);\"\n> >                             \" try setting \n> GIT_HTTP_MAX_REQUEST_BUFFER\",\n> >                             max_request_buffer);\n> > @@ -310,6 +319,10 @@\n> >                         alloc = max_request_buffer;\n> >                 REALLOC_ARRAY(buf, alloc);\n> >         }\n> > +\n> > +       free(buf);\n> > +\n> > +       return len;\n> >  }\n> >\n> >  static void inflate_request(const char *prog_name, int \n> out, int buffer_input)\n> >\n> >\n> >> -----Original Message-----\n> >> From: git-owner@vger.kernel.org\n> >> [mailto:git-owner@vger.kernel.org] On Behalf Of Jason Pyeron\n> >> Sent: Monday, September 26, 2016 09:26\n> >> To: git@vger.kernel.org\n> >> Subject: RE: git-upload-pack hangs\n> >>\n> >> > -----Original Message-----\n> >> > From: Jason Pyeron\n> >> > Sent: Monday, September 26, 2016 01:51\n> >> >\n> >> > git is hanging on clone. I am runnig (cygwin) git 2.8.3 on\n> >> > IIS7 (windows server 2012 R2).\n> >> >\n> >> > Where can I start to perform additional debugging?\n> >> >\n> >>\n> >> Reading this thread, it seems plausible as a cause since it\n> >> aligns with my testing.\n> >>\n> >> http://www.spinics.net/lists/git/msg279437.html [ and\n> >> http://www.spinics.net/lists/git/attachments/binQFGHirNLw3.bin ]\n> >>\n> >> I will start to trudge into the code to see if this (or\n> >> similar) has been applied and if not, does it fix it.\n> >>\n> >> > Selected items I have read, but they did not help:\n> >> >\n> >> > http://unix.stackexchange.com/questions/98959/git-upload-pack-\n> >> > hangs-indefinitely\n> >> >\n> >> > https://sparethought.wordpress.com/2012/12/06/setting-git-to-w\n> >> ork-behind-ntlm-authenticated-proxy-cntlm-to-the-rescue/\n> >> >\n> >> > https://sourceforge.net/p/cntlm/bugs/24/\n> >> >\n> >> > invocation of the clone:\n> >> >\n> >> > jpyeron.adm@SERVER /tmp\n> >> > $ GIT_TRACE=1  GIT_CURL_VERBOSE=true git clone\n> >> > http://SERVER.domain.com/git/test.git\n> >> > 01:23:37.020476 git.c:350               trace: built-in: git\n> >> > 'clone' 'http://SERVER.domain.com/git/test.git'\n> >> > Cloning into 'test'...\n> >> > 01:23:37.206046 run-command.c:336       trace: run_command:\n> >> > 'git-remote-http' 'origin' \n> 'http://SERVER.domain.com/git/test.git'\n> >> > * STATE: INIT => CONNECT handle 0x60009a140; line 1397\n> >> > (connection #-5000)\n> >> > * Couldn't find host SERVER.domain.com in the .netrc file;\n> >> > using defaults\n> >> > * Added connection 0. The cache now contains 1 members\n> >> > *   Trying ::1...\n> >> > * TCP_NODELAY set\n> >> > * STATE: CONNECT => WAITCONNECT handle 0x60009a140; line 1450\n> >> > (connection #0)\n> >> > * Connected to SERVER.domain.com (::1) port 80 (#0)\n> >> > * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x60009a140;\n> >> > line 1557 (connection #0)\n> >> > * Marked for [keep alive]: HTTP default\n> >> > * STATE: SENDPROTOCONNECT => DO handle 0x60009a140; line 1575\n> >> > (connection #0)\n> >> > > GET /git/test.git/info/refs?service=git-upload-pack HTTP/1.1\n> >> > Host: SERVER.domain.com\n> >> > User-Agent: git/2.8.3\n> >> > Accept: */*\n> >> > Accept-Encoding: gzip\n> >> > Accept-Language: en-US, *;q=0.9\n> >> > Pragma: no-cache\n> >> >\n> >> > * STATE: DO => DO_DONE handle 0x60009a140; line 1654 \n> (connection #0)\n> >> > * STATE: DO_DONE => WAITPERFORM handle 0x60009a140; line 1781\n> >> > (connection #0)\n> >> > * STATE: WAITPERFORM => PERFORM handle 0x60009a140; line 1791\n> >> > (connection #0)\n> >> > * HTTP 1.1 or later with persistent connection, \n> pipelining supported\n> >> > < HTTP/1.1 200 OK\n> >> > < Cache-Control: no-cache, max-age=0, must-revalidate\n> >> > < Pragma: no-cache\n> >> > < Content-Type: application/x-git-upload-pack-advertisement\n> >> > < Expires: Fri, 01 Jan 1980 00:00:00 GMT\n> >> > * Server Microsoft-IIS/8.5 is not blacklisted\n> >> > < Server: Microsoft-IIS/8.5\n> >> > < X-Powered-By: ASP.NET\n> >> > < Date: Mon, 26 Sep 2016 05:23:37 GMT\n> >> > * Marked for [closure]: Connection: close used\n> >> > < Connection: close\n> >> > < Content-Length: 310\n> >> > <\n> >> > * STATE: PERFORM => DONE handle 0x60009a140; line 1955\n> >> (connection #0)\n> >> > * multi_done\n> >> > * Curl_http_done: called premature == 0\n> >> > * Closing connection 0\n> >> > * The cache now contains 0 members\n> >> > 01:23:37.688252 run-command.c:336       trace: run_command:\n> >> > 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack'\n> >> > '--thin' '--check-self-contained-and-connected' '--cloning'\n> >> > 'http://SERVER.domain.com/git/test.git/'\n> >> > 01:23:37.717168 exec_cmd.c:120          trace: exec: 'git'\n> >> > 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack'\n> >> > '--thin' '--check-self-contained-and-connected' '--cloning'\n> >> > 'http://SERVER.domain.com/git/test.git/'\n> >> > 01:23:37.749820 git.c:350               trace: built-in: git\n> >> > 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack'\n> >> > '--thin' '--check-self-contained-and-connected' '--cloning'\n> >> > 'http://SERVER.domain.com/git/test.git/'\n> >> > * STATE: INIT => CONNECT handle 0x60009a140; line 1397\n> >> > (connection #-5000)\n> >> > * Couldn't find host SERVER.domain.com in the .netrc file;\n> >> > using defaults\n> >> > * Added connection 1. The cache now contains 1 members\n> >> > * Hostname SERVER.domain.com was found in DNS cache\n> >> > *   Trying ::1...\n> >> > * TCP_NODELAY set\n> >> > * STATE: CONNECT => WAITCONNECT handle 0x60009a140; line 1450\n> >> > (connection #1)\n> >> > * Connected to SERVER.domain.com (::1) port 80 (#1)\n> >> > * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x60009a140;\n> >> > line 1557 (connection #1)\n> >> > * Marked for [keep alive]: HTTP default\n> >> > * STATE: SENDPROTOCONNECT => DO handle 0x60009a140; line 1575\n> >> > (connection #1)\n> >> > > POST /git/test.git/git-upload-pack HTTP/1.1\n> >> > Host: SERVER.domain.com\n> >> > User-Agent: git/2.8.3\n> >> > Accept-Encoding: gzip\n> >> > Content-Type: application/x-git-upload-pack-request\n> >> > Accept: application/x-git-upload-pack-result\n> >> > Content-Length: 140\n> >> >\n> >> > * upload completely sent off: 140 out of 140 bytes\n> >> > * STATE: DO => DO_DONE handle 0x60009a140; line 1654 \n> (connection #1)\n> >> > * STATE: DO_DONE => WAITPERFORM handle 0x60009a140; line 1781\n> >> > (connection #1)\n> >> > * STATE: WAITPERFORM => PERFORM handle 0x60009a140; line 1791\n> >> > (connection #1)\n> >>\n> >> --\n> >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n> >> -                                                               -\n> >> - Jason Pyeron                      PD Inc. http://www.pdinc.us -\n> >> - Principal Consultant              10 West 24th Street #100    -\n> >> - +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n> >> -                                                               -\n> >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n> >>\n> >>\n> >>\n> >\n> \n\n"},{"id":"302713","messageId":"xmqqlgydqqk0.fsf@gitster.mtv.corp.google.com","threadId":"44160","inReplyTo":"50DEA1C222E449F59BC8488C921D6F95@black7","subject":"Re: git-upload-pack hangs","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-09-27T16:02:23Z","receivedAt":"2016-09-27T16:02:33Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Jason Pyeron\" <jpyeron@pdinc.us> writes:\n\n> This is a very, very first draft.\n>\n> It is allowing IIS to work right now.\n>\n> I still need to address chunked issues, where there is no content length (see http://www.gossamer-threads.com/lists/apache/users/373042)\n>\n> Any comments, sugestions?\n\nDoes this have any relation to another thread earlier this year,\nwhich seems to have ended here:\n\nhttps://public-inbox.org/git/20160401235532.GA27941@sigill.intra.peff.net/\n\n"},{"id":"302764","messageId":"0BEA07EEEA54435BB0124C8F02D156D2@black7","threadId":"44160","inReplyTo":"xmqqlgydqqk0.fsf@gitster.mtv.corp.google.com","subject":"RE: git-upload-pack hangs","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2016-09-27T20:56:43Z","receivedAt":"2016-09-27T20:56:42Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"> -----Original Message-----\n> From: Junio C Hamano\n> Sent: Tuesday, September 27, 2016 12:02\n> \n> Jason Pyeron writes:\n> \n> > This is a very, very first draft.\n> >\n> > It is allowing IIS to work right now.\n> >\n> > I still need to address chunked issues, where there is no \n> content length (see \n> http://www.gossamer-threads.com/lists/apache/users/373042)\n> >\n> > Any comments, sugestions?\n> \n> Does this have any relation to another thread earlier this year,\n> which seems to have ended here:\n> \n> https://public-inbox.org/git/20160401235532.GA27941@sigill.intra.peff.net/\n\nLooks like the same. Did not (don't know why I was unsubscribed a few months ago?!) see that one and gmane is killing me on my\nsearches...\n\nI will read the full thread, digest and fold what I can glean in to my (in production right now) patch.\n\n-Jason\n\n"}]}