git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: t7528-signed-commit-ssh.sh fails due to ssh-agent fails to start with ENAMETOOLONG

From
LTLauri Tirkkonen <lauri@hacktheplanet.fi>
Date
Oct 17, 2025, 09:52 UTC
Message-ID
<aPIR8fB4w5Jkeiq2@mail.hacktheplanet.fi>
In-Reply-To
<20251017070912.GA4068463@coredump.intra.peff.net>
Hi Jeff,
On Fri, Oct 17 2025 03:09:12 -0400, Jeff King wrote:
Show 31 quoted lines
> But looking at this test, there's something even more funky going on.
> Our $HOME will always have a space in it, because no matter where you
> set the root, we will create "trash directory.t7582..." to work in. But
> AFAICT, ssh-agent does not quote the path in its output. So for example:
> 
>   d='/tmp/has spaces'
>   mkdir "$d"
>   HOME=$d ssh-agent
> 
> will produce:
> 
>   SSH_AUTH_SOCK=/tmp/has spaces/.ssh/agent/s.IcPuGe26YY.agent.6PtD3uhM4O; export SSH_AUTH_SOCK;
> 
> which is nonsense to eval. And indeed, the "working" version of this
> test (without a really long root path) produces:
> 
>   ./t7528-signed-commit-ssh.sh: 1: eval: directory.t7528-signed-commit-ssh/.ssh/agent/s.IcPuGe26YY.agent.sOzoazWiDc: not found
> 
> I expected that would cause ssh-add to fail, since our SSH_AUTH_SOCK
> would point to truncated garbage, and we can't talk to the agent. But it
> doesn't even do that. The extra space turns that line from a variable
> assignment into a one-shot variable attached to a command that fails to
> run. And so we're left with the original SSH_AUTH_SOCK from the
> environment, the one in my real $HOME outside of the trash directory.
> Yikes!
> 
> If I unset SSH_AUTH_SOCK in my environment, then the test consistently
> fails. But I'm somewhat amazed that nobody has complained about this
> before. Surely somebody somewhere (especially CI!) is running t7528
> without SSH_AUTH_SOCK set in the environment. Which makes wonder if I'm
> missing something.

I believe the issue surfaced only now because prior to OpenSSH 10.1, ssh-agent would put its socket in /tmp by default, not under $HOME. See https://www.openssh.com/txt/release-10.1

We saw this failure in CI on Alpine Linux and worked around by adding -T to the ssh-agent invocation in this test, but I suppose that won't work for earlier releases of OpenSSH. https://gitlab.alpinelinux.org/alpine/aports/-/commit/81a159c8a371c871c1cd0f212881a757160632fb

-- 
Lauri Tirkkonen | lotheac @ IRCnet
Previous: Jeff KingNext: Jeff King
Message 4 of 9 in “t7528-signed-commit-ssh.sh fails due to ssh-agent fails to start with ENAMETOOLONG”
  1. Xi RuoyaoOct 17, 2025
  2. Collin FunkOct 17, 2025
  3. Jeff KingOct 17, 2025
  4. Lauri TirkkonenOct 17, 2025
  5. Jeff KingOct 17, 2025
  6. brian m. carlsonOct 17, 2025
  7. Jeff KingOct 18, 2025
  8. Junio C HamanoOct 17, 2025
  9. Jeff KingOct 18, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.