Skip to content
  • Jeff King's avatar
    credential-cache: ignore "connection refused" errors · 35a71f14
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    The credential-cache helper will try to connect to its
    daemon over a unix socket. Originally, a failure to do so
    was silently ignored, and we would either give up (if
    performing a "get" or "erase" operation), or spawn a new
    daemon (for a "store" operation).
    
    But since 8ec6c8d7
    
    , we try to report more errors. We detect a
    missing daemon by checking for ENOENT on our connection
    attempt.  If the daemon is missing, we continue as before
    (giving up or spawning a new daemon). For any other error,
    we die and report the problem.
    
    However, checking for ENOENT is not sufficient for a missing
    daemon. We might also get ECONNREFUSED if a dead daemon
    process left a stale socket. This generally shouldn't
    happen, as the daemon cleans up after itself, but the daemon
    may not always be given a chance to do so (e.g., power loss,
    "kill -9").
    
    The resulting state is annoying not just because the helper
    outputs an extra useless message, but because it actually
    blocks the helper from spawning a new daemon to replace the
    stale socket.
    
    Fix it by checking for ECONNREFUSED.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    35a71f14