git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Torsten Bögershausen" <tboegi@web.de>
To: Mark Levedahl <mlevedahl@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	ramsay@ramsay1.demon.co.uk, git@vger.kernel.org
Subject: Re: [PATCH] CYGWIN: Use a TCP socket for pipe()
Date: Sun, 30 Jun 2013 21:47:36 +0200	[thread overview]
Message-ID: <51D08B58.8000103@web.de> (raw)
In-Reply-To: <51CCF91F.7080501@gmail.com>

On 2013-06-28 04.46, Mark Levedahl wrote:
> On 06/27/2013 01:38 PM, Junio C Hamano wrote:
>> Torsten Bögershausen <tboegi@web.de> writes:
>>
>>> Work around issues that git hangs when doing fetch or pull under
>>> various protocols under CYGWIN.
>>>
>>> Replace pipe() with a socket connection using a TCP/IP.
>>> Introduce a new function socket_pipe() in compat/socket_pipe.c
>> Sounds like sweeping the real problem, whatever it is, under rug.
>> Is it that we are assuming a pipe buffer that is sufficiently large
>> and expecting a write that we deem to be small enough not to block,
>> causing a deadlock on a platform with very small pipe buffer, or
>> something?
>>
>
> There were issues in early v1.7 Cygwin release for overlapping I/O such that the pipe was sometimes terminated early resulting in data loss. If the pipe implementation in Cygwin is still a problem a good test case sent to the Cygwin developers would be the right approach rather than a one-off patch in git to try to work around a current platform bug.
>
> Note - I do not see random hangs with the stat/lstat hack removed, rather the sole test suite hang I see is repeatable in t0008.sh. So, if the patch remains, we may be able to run this remaining hang to ground.
>
> Mark
Thanks,
I testet "rj/cygwin-remove-cheating-lstat" with the "socket pipe" on top:
no hanging.

Then I run "rj/cygwin-remove-cheating-lstat" without "socket pipe",
(or in other words git.git/pu):
No hanging.

Then I run a "stress test" with many (but not all) "git fetch" tests:
 t1507, t1514, t2015, t2024, t3200, t3409, t3600, t4041, t6050, t6200
repeat those tests in a forever loop.

All these test run 24 hours in a row on a single core machine, no hanging.
(I need to re-do the test on a dual-core machine)

So at the moment I don't have any problems to report for cygwin, which is good.

And it looks as if "rj/cygwin-remove-cheating-lstat" prevents the "hanging",
so there is another +1 to keep it and move it into next.
/Torsten

  reply	other threads:[~2013-06-30 19:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-27 16:31 [PATCH] CYGWIN: Use a TCP socket for pipe() Torsten Bögershausen
2013-06-27 17:38 ` Junio C Hamano
2013-06-28  2:46   ` Mark Levedahl
2013-06-30 19:47     ` Torsten Bögershausen [this message]
2013-06-30 22:56       ` Junio C Hamano
2013-07-02 14:57         ` Torsten Bögershausen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51D08B58.8000103@web.de \
    --to=tboegi@web.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=mlevedahl@gmail.com \
    --cc=ramsay@ramsay1.demon.co.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).