From: Sam Delmerico <delmerico@google.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, steadmon@google.com
Subject: Re: [PATCH] push: region_leave trace for negotiate_using_fetch
Date: Thu, 4 Jan 2024 17:12:15 -0800 [thread overview]
Message-ID: <CAHVcGPSSJr7L_NyFSKEkEywBap6hUrucga98RLpa6xuZ0k4CzA@mail.gmail.com> (raw)
In-Reply-To: <xmqqbka27zu9.fsf@gitster.g>
* I don't exactly remember how I noticed it. I was doing some
debugging around the push negotiation code and either 1) saw this
region get entered twice in the trace output, or 2) I was just reading
the code around here and saw two enters.
* Perhaps there could be a check before the last git process ends that
checks that all opened trace regions have been closed? I'm not sure
how much work this would involve. It's probably also not a very
proactive way to catch these bugs since it would only get triggered
when a *user* hits a code path with a trace region that never exits.
* There could also be a test that checks that every region_enter trace
log has a corresponding region_leave. But I'm not sure how to ensure
that every code path is checked.
Overall, I'm not sure how much benefit there is from checking for
this. I'm not sure that it would have a large impact if it were to
happen again. For example, I think that it could be noticed relatively
quickly by a person/system looking at metrics like I was (e.g. if the
time spent in a region is infinite or zero).
FWIW I didn't see any other examples of this when going through logs.
Sam
<br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed,
Jan 3, 2024 at 3:37 PM Junio C Hamano <gitster@pobox.com>
wrote:<br></div><blockquote class="gmail_quote" style="margin: 0px 0px
0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left:
1ex;">Sam Delmerico <<a href="mailto:delmerico@google.com"
target="_blank">delmerico@google.com</a>> writes:<br>
<br>
> There were two region_enter events for negotiate_using_fetch instead of<br>
> one enter and one leave. This commit replaces the second region_enter<br>
> event with a region_leave.<br>
><br>
> Signed-off-by: Sam Delmerico <<a
href="mailto:delmerico@google.com"
target="_blank">delmerico@google.com</a>><br>
> ---<br>
> fetch-pack.c | 2 +-<br>
> 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
Looks right, after skimming a29263cf (fetch-pack: add tracing for<br>
negotiation rounds, 2022-08-02). Two questions and a half.<br>
<br>
* How did you find it? Code inspection? While
writing a script to<br>
parse the output from around this area, your script noticed the<br>
ever-increasing nesting level? Something else?<br>
<br>
* Would it be feasible to write some tests or tools that find<br>
similar problems (semi-)automatically?<br>
<br>
* Is the breakage (before this patch) something easily demonstrated<br>
in a new test in t/ somewhere? And if so, would it
be worth<br>
doing?<br>
<br>
Thanks. Will queue.<br>
<br>
<br>
><br>
> diff --git a/fetch-pack.c b/fetch-pack.c<br>
> index 31a72d43de..dba6d79944 100644<br>
> --- a/fetch-pack.c<br>
> +++ b/fetch-pack.c<br>
> @@ -2218,7 +2218,7 @@ void negotiate_using_fetch(const struct
oid_array *negotiation_tips,<br>
>
the_repository, "%d",<br>
>
negotiation_round);<br>
> }<br>
> - trace2_region_enter("fetch-pa<wbr>ck",
"negotiate_using_fetch", the_repository);<br>
> + trace2_region_leave("fetch-pa<wbr>ck",
"negotiate_using_fetch", the_repository);<br>
>
trace2_data_intmax("<wbr>negotiate_using_fetch",
the_repository,<br>
>
"total_rounds", negotiation_round);<br>
> clear_common_flag(acked_commi<wbr>ts);<br>
><br>
> base-commit: a26002b62827b89a19b1084bd75d93<wbr>71d565d03c<br>
</blockquote></div>
next prev parent reply other threads:[~2024-01-05 1:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-03 22:40 [PATCH] push: region_leave trace for negotiate_using_fetch Sam Delmerico
2024-01-03 23:37 ` Junio C Hamano
2024-01-05 1:12 ` Sam Delmerico [this message]
2024-01-05 16:18 ` Junio C Hamano
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=CAHVcGPSSJr7L_NyFSKEkEywBap6hUrucga98RLpa6xuZ0k4CzA@mail.gmail.com \
--to=delmerico@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=steadmon@google.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;
as well as URLs for NNTP newsgroup(s).