git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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.




  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 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).