From: Jeff King <peff@peff.net>
To: Ted Nyman <tnyman@openai.com>
Cc: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, me@ttaylorr.com, ps@pks.im,
karthik.188@gmail.com, sandals@crustytoothpaste.net,
avarab@gmail.com
Subject: Re: [PATCH v3 0/3] packfile URIs: support concurrent downloads
Date: Sat, 25 Jul 2026 05:09:10 -0400 [thread overview]
Message-ID: <20260725090910.GA1438796@coredump.intra.peff.net> (raw)
In-Reply-To: <xmqqldb19evx.fsf@gitster.g>
On Thu, Jul 23, 2026 at 09:43:14PM -0700, Junio C Hamano wrote:
> When merged into 'seen', this topic seems to cause t5550 to hang
> fairly consistently. It is not surprising, considering that the
> topic adds roughly 240 lines to the test script in question. It is
> entirely possible that we are seeing an existing breakage from
> another topic in 'seen' that is exposed by the additional tests.
I didn't get any hang locally, but running t5550 with --stress causes
around half of the runs to fail immediately. That continues to be true
with v4. So there is presumably some race condition still present.
The failing test is the big one (34) and the failing command is the
"test -s $tmpfile" call. It looks like the pack has already been indexed
(at least by the time I look at the on-disk state of a failed example).
I don't immediately see the issue, though. I could believe that extra
load fakes out any sleep-based timing tricks, but it looks like the test
tries to use FIFOs to do everything deterministically.
Diffing the overlap-first.trace file between a working case and a
failing one, I see (skipping past uninteresting port differences) this
hunk at the end:
@@ -17,4 +17,5 @@
<= Recv header: Connection: close
<= Recv header, 0000000002 bytes (0x00000002)
<= Recv header:
-== Info: shutting down connection #0
+== Info: end of response with 1048917 bytes missing
+== Info: closing connection #0
So curl sees a hangup on the first connection (even though the second
one hasn't even started yet!). I'm not sure why, though. There's nothing
useful in the server.log file. I tried stracing the server process but
it didn't show much of interest. Both cases write "ready" to
first-ready, and then the success case immediately sees an accept() for
the second connection. The failing case waits in accept() and then
eventually calls SIGALRM (which is way after the failure happens; the
test has already bailed and so the second connection never comes in).
So from the perspective of the server process, everything is fine, but
curl complains that it didn't get all of the bytes. Weird. The strace
shows both writing the first 1MB as expected. It's like the connection
gets hung up for some reason, but I can't tell why or by whom.
-Peff
next prev parent reply other threads:[~2026-07-25 9:09 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-13 22:37 [PATCH 0/2] packfile URIs: support concurrent downloads Ted Nyman
2026-07-13 22:34 ` [PATCH 1/2] http: use unique tempfiles for packfile URI downloads Ted Nyman
2026-07-14 1:00 ` Junio C Hamano
2026-07-14 1:58 ` Ted Nyman
2026-07-14 4:07 ` Taylor Blau
2026-07-14 5:28 ` Jeff King
2026-07-14 18:10 ` Junio C Hamano
2026-07-14 18:31 ` Ted Nyman
2026-07-14 4:06 ` Taylor Blau
2026-07-14 5:44 ` Jeff King
2026-07-14 6:46 ` Jeff King
2026-07-13 22:34 ` [PATCH 2/2] fetch-pack: accept "pack" output for packfile URIs Ted Nyman
2026-07-14 7:12 ` Jeff King
2026-07-14 7:13 ` Jeff King
2026-07-14 18:38 ` Ted Nyman
2026-07-14 21:47 ` Jeff King
2026-07-14 4:13 ` [PATCH 0/2] packfile URIs: support concurrent downloads Taylor Blau
2026-07-20 22:33 ` [PATCH v2 " Ted Nyman
2026-07-20 22:33 ` [PATCH v2 1/2] http: avoid concurrent appends to partial packs Ted Nyman
2026-07-21 19:56 ` Junio C Hamano
2026-07-20 22:34 ` [PATCH v2 2/2] fetch-pack: accept "pack" output for packfile URIs Ted Nyman
2026-07-21 23:29 ` [PATCH v3 0/3] packfile URIs: support concurrent downloads Ted Nyman
2026-07-21 23:29 ` [PATCH v3 1/3] http-fetch: correct --index-pack-arg documentation Ted Nyman
2026-07-21 23:29 ` [PATCH v3 2/3] http: avoid concurrent appends to partial packs Ted Nyman
2026-07-21 23:29 ` [PATCH v3 3/3] fetch-pack: accept "pack" output for packfile URIs Ted Nyman
2026-07-24 4:43 ` [PATCH v3 0/3] packfile URIs: support concurrent downloads Junio C Hamano
2026-07-25 9:09 ` Jeff King [this message]
2026-07-25 9:21 ` Jeff King
2026-07-25 10:02 ` Jeff King
2026-07-25 10:10 ` Jeff King
2026-07-25 16:20 ` Junio C Hamano
2026-07-24 8:14 ` [PATCH v4 " Ted Nyman
2026-07-24 8:14 ` [PATCH v4 1/3] http-fetch: correct --index-pack-arg documentation Ted Nyman
2026-07-24 21:38 ` Taylor Blau
2026-07-24 8:14 ` [PATCH v4 2/3] http: avoid concurrent appends to partial packs Ted Nyman
2026-07-24 8:14 ` [PATCH v4 3/3] fetch-pack: accept "pack" output for packfile URIs Ted Nyman
2026-07-24 21:46 ` Taylor Blau
2026-07-26 6:44 ` [PATCH v5 0/3] packfile URIs: support concurrent downloads Ted Nyman
2026-07-26 6:44 ` [PATCH v5 1/3] http-fetch: correct --index-pack-arg documentation Ted Nyman
2026-07-26 6:44 ` [PATCH v5 2/3] http: avoid concurrent appends to partial packs Ted Nyman
2026-07-26 9:20 ` Jeff King
2026-07-26 10:04 ` Ted Nyman
2026-07-26 10:27 ` Jeff King
2026-07-26 6:44 ` [PATCH v5 3/3] fetch-pack: accept "pack" output for packfile URIs Ted Nyman
2026-07-26 9:21 ` [PATCH v5 0/3] packfile URIs: support concurrent downloads Jeff King
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=20260725090910.GA1438796@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
--cc=me@ttaylorr.com \
--cc=ps@pks.im \
--cc=sandals@crustytoothpaste.net \
--cc=tnyman@openai.com \
/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