git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: "Johan Sørensen" <johan@johansorensen.com>
Cc: Aloisio <aloisiojr@gmail.com>,
	git@vger.kernel.org, support@gitorious.org
Subject: Re: Cannot clone redirecting stdout
Date: Fri, 11 Sep 2009 12:20:13 -0400	[thread overview]
Message-ID: <20090911162013.GA10939@coredump.intra.peff.net> (raw)
In-Reply-To: <20090911160510.GA10848@coredump.intra.peff.net>

On Fri, Sep 11, 2009 at 12:05:10PM -0400, Jeff King wrote:

> Ah. I have a theory. If I do a clone of git://gitorious.org/qt/qt.git,
> the counting/compressing stages take a long time (I timed it at 1m40
> before it actually sends any data). And looking at upload-pack.c, we
> leave the 30-second alarm set while creating the pack. Meaning we die 30
> seconds into creating the pack.
> 
> When progress is being displayed, however, the progress timer actually
> uses SIGALRM, as well. So we are constantly resetting the timer and it
> never goes off.

Hmm. Actually, this is not quite right. It looks like we call out to
pack-objects as an external program, so there is no conflict with the
signal. And we do proxy the output of pack-objects, which will keep our
timer resetting every time we see a chunk of output. But pack-objects
produces no output during the deltification phase, unless progress is
turned on.  So we still hit our timeout in upload-pack during that
phase.

So our options are:

  1. Turn off the timer during deltification, which could mean that it
     would potentially go forever. But it's not controlled by the user.
     I think the 'timeout' feature is really about the client just
     opening the connection and sitting.

  2. Keep progress on during deltification, but just throw it away
     instead of relaying it if no-progress is in effect.

  3. Accept that hitting the timeout during deltification _should_ cause
     it to die. In that case, then the case with progress is wrong, and
     we should stop resetting the timer just because we got some
     progress output from pack-objects. But this may be redefining the
     intent of --timeout. I don't know what the original intent was, or
     what users of the feature are expecting.

-Peff

  reply	other threads:[~2009-09-11 16:20 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-10 22:33 Cannot clone redirecting stdout Aloisio
2009-09-11  6:39 ` Stefan Naewe
2009-09-11  7:27   ` Stefan Naewe
2009-09-11  8:15 ` Jean-Luc Herren
2009-09-11 10:23 ` Jeff King
2009-09-11 13:51   ` Jeff King
2009-09-11 15:46     ` Johan Sørensen
2009-09-11 16:05       ` Jeff King
2009-09-11 16:20         ` Jeff King [this message]
2009-09-11 22:47           ` Daniel Barkalow

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

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

  git send-email \
    --in-reply-to=20090911162013.GA10939@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=aloisiojr@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=johan@johansorensen.com \
    --cc=support@gitorious.org \
    /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.
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 NNTP newsgroup(s).