From: <rsbecker@nexbridge.com>
To: "'Jeff King'" <peff@peff.net>
Cc: "'D. Ben Knoble'" <ben.knoble@gmail.com>, <git@vger.kernel.org>
Subject: RE: [BUG] Strange git notes completion behaviour
Date: Wed, 22 Oct 2025 10:27:01 -0400 [thread overview]
Message-ID: <018701dc435f$f1dc1a00$d5944e00$@nexbridge.com> (raw)
In-Reply-To: <20251022092708.GE853931@coredump.intra.peff.net>
On October 22, 2025 5:27 AM, Jeff King wrote:
>On Tue, Oct 21, 2025 at 05:52:38PM -0400, rsbecker@nexbridge.com wrote:
>
>> It is the exit code. When in gdb, the return from notes is -12 as
>> above. By the time It gets back to bash, the lower bytes are dropped
>> so I end up with a 0xFF, which bash thinks is a 0, so the exit code is
>> hidden from view. I tried the !!fn construct in a standard alone test program with
>no wisdom gained.
>
>I don't think the "!!fn()" line ever returns here. In the show() function of
>builtin/notes.c (which is what "fn" is pointing to for "git notes show"), we end up
>calling execv_git_cmd() to run "git show". So you are really seeing the exit code of
>something like:
>
> git show $(git notes list HEAD)
>
>That in turn is propagating the return from show_blob_object(). Which I'd think
>would return "0" here, since it actually showed the blob, though it does look like it
>could return -1 in a few cases.
>
>Another possible point of confusion: that git-show invocation will run a pager. It's
>been a long time since I've looked at that code, but IIRC we try to preserve the exit
>code of the actual Git command (rather than the pager). But you might try:
>
> git --no-pager notes show HEAD
>
>to see if that behaves differently. I couldn't reproduce the issue at all on my end.
I tried running with --no-pager. No difference. Interesting:
git show $(git notes list HEAD)
works correctly with no error report (from inside gdb), while the run of
git --no-pager notes show HEAD
still reports:
Run till exit from #0 main (argc=5, argv=0x811d000)
at /home/jenkinsbuild/.jenkins/workspace/Git_Pipeline/common-main.c:8
Process (0,896) exited with code 037777777764.
Is there a path where just an implied return is used? I have seen the optimizer
return whatever is in an x86 register - rsx and rsi are both 12 at git.c:982
- on occasion.
next prev parent reply other threads:[~2025-10-22 14:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-21 21:06 [BUG] Strange git notes completion behaviour rsbecker
2025-10-21 21:32 ` D. Ben Knoble
2025-10-21 21:52 ` rsbecker
2025-10-22 9:27 ` Jeff King
2025-10-22 14:27 ` rsbecker [this message]
2025-10-23 12:48 ` Jeff King
2025-10-24 17:33 ` rsbecker
2025-10-24 17:46 ` Jeff King
2025-10-24 18:38 ` rsbecker
2025-10-24 18:52 ` Jeff King
2025-10-24 19:02 ` rsbecker
2025-10-24 20:16 ` 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='018701dc435f$f1dc1a00$d5944e00$@nexbridge.com' \
--to=rsbecker@nexbridge.com \
--cc=ben.knoble@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.