Re: [PATCH] connect: also update offset for features without values
- From
Andrzej Hunt <andrzej@ahunt.org>
- Date
- Sep 26, 2021, 15:16 UTC
- Message-ID
- <e1395ff2-e697-83b2-082b-d5468b7a11ac@ahunt.org>
- In-Reply-To
- <YUz5dPB6/jFmdSRU@coredump.intra.peff.net>
On 24/09/2021 00:02, Jeff King wrote:
Show 46 quoted lines
> On Thu, Sep 23, 2021 at 02:52:53PM -0700, Junio C Hamano wrote: > >> Jeff King <peff@peff.net> writes: >> >>> I think the problem is that our fake upload-pack exits immediately, so >>> ls-remote gets SIGPIPE. In a v0 conversation, ls-remote expects to say >>> "0000" to indicate that it's not interested in fetching anything (in v2, >>> it doesn't bother, since fetching would be a separate request that it >>> just declines to make). >> >> Ah, Makes sense---the usual SIGPIPE problem ;-) > > Yes, though it definitely took some head-scratching for me to see where > it was. ;) > > Doing: "./t5704-* --stress" made it pretty clear. It fails almost > immediately, and mentions SIGPIPE (well, exit code 141, but by now I > have that one memorized). > >>> This seems to fix it: >>> >>> diff --git a/t/t5704-protocol-violations.sh b/t/t5704-protocol-violations.sh >>> index 34538cebf0..0983c2b507 100755 >>> --- a/t/t5704-protocol-violations.sh >>> +++ b/t/t5704-protocol-violations.sh >>> @@ -40,7 +40,7 @@ test_expect_success 'bogus symref in v0 capabilities' ' >>> test-tool pkt-line pack-raw-stdin && >>> printf "0000" >>> } >input && >>> - git ls-remote --upload-pack="cat input ;:" . >actual && >>> + git ls-remote --upload-pack="cat input; read junk;:" . >actual && >>> printf "%s\tHEAD\n" "$oid" >expect && >>> test_cmp expect actual >>> ' >> >> Yup. In the original thread there was some further back-and-forth >> about further improving the test, if I recall correctly; has the >> issue been settled there, or is everybody happy with the above >> version? > > I think the change I showed earlier (to use ls-remote --symref) is worth > doing. There was lots of discussion about how to format a tab, but in > the end I don't think it really matters. > > So here's that patch again, with this race fix on top, which could be > squashed in, and then I hope we can call it good.
Thanks again for doing the actual work - I'll send out a V2 with your changes squashed in, along with an attempt at improving the commit message (as discussed in reply to Taylor's comments).
Show 25 quoted lines
>
> diff --git a/t/t5704-protocol-violations.sh b/t/t5704-protocol-violations.sh
> index 34538cebf0..bc393d7c31 100755
> --- a/t/t5704-protocol-violations.sh
> +++ b/t/t5704-protocol-violations.sh
> @@ -35,13 +35,15 @@ test_expect_success 'extra delim packet in v2 fetch args' '
> test_expect_success 'bogus symref in v0 capabilities' '
> test_commit foo &&
> oid=$(git rev-parse HEAD) &&
> + dst=refs/heads/foo &&
> {
> - printf "%s HEAD\0symref object-format=%s\n" "$oid" "$GIT_DEFAULT_HASH" |
> + printf "%s HEAD\0symref object-format=%s symref=HEAD:%s\n" \
> + "$oid" "$GIT_DEFAULT_HASH" "$dst" |
> test-tool pkt-line pack-raw-stdin &&
> printf "0000"
> } >input &&
> - git ls-remote --upload-pack="cat input ;:" . >actual &&
> - printf "%s\tHEAD\n" "$oid" >expect &&
> + git ls-remote --symref --upload-pack="cat input; read junk;:" . >actual &&
> + printf "ref: %s\tHEAD\n%s\tHEAD\n" "$dst" "$oid" >expect &&
> test_cmp expect actual
> '
>
>