www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2026/02/02/07:26:01

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 612CQ16E3128160
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 612CQ16E3128160
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=e+HKZJ1p
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 401F14BB5927
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1770035159;
bh=rAjt2eyR3FcdJJSAVmnjmPJXgsQExaerKn3hIoN2CWA=;
h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=e+HKZJ1pQrX9lPx5KUWNkxoKf6F+vOJz6a3dd0zu0Y8DECgjkfZS/M+rjtHuZ7wYY
e9BO+g/wKMwY/c+mXxg3LTLtsm1BjKN1nDLkAQqze5GFigBidrQjVgKf23da1qSZsV
pRj/CMuqgEU+4qSVk9l+okxUvyJake5zdpBzrsHI=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 334BD4BA9035
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 334BD4BA9035
ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1770035109; cv=pass;
b=EuzNagpfrXdZpIcIXIOrgTaDZQTOxD4IP6GaYi0r/KKU/1Iwxeiz3kdb9iMPYCr9KX5aIduOtAHZtEhwuWhpjW3XXRtMSb6U6nFvO8JTIxcytbsWmC9/g/q9VbtTebc7aXrMh0s6Deho8yhXotqept8nfpiWExsKXFZT4b5Mchw=
ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key;
t=1770035109; c=relaxed/simple;
bh=IxSQx/p/OZBxuKfBnZHf32ZJwAH4JzEG5R9bHtF/iOo=;
h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;
b=wQsj8Zt5W99SubQ49YL7OIDy+hq4rZqJ6T6cEOX/x41ksVCy6+GrPcb9za93fbh/nSgh1ye4Z/w6V0R9+vQnyk1xAWIkdLIa0u040KpQ3xaXCGre4J35K/xhBMahOnRvoh8+0XU1WD7Dfc87ShOgWQ0cSelp+XXp3pGzRPYxHik=
ARC-Authentication-Results: i=2; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 334BD4BA9035
ARC-Seal: i=1; a=rsa-sha256; t=1770035108; cv=none;
d=google.com; s=arc-20240605;
b=C4fEvlEpzLAYc9J0Ps7hcSXWg3JgETuFg4Yag9MIEUz4buy8u8gVhiEbUjP3lUHHNY
cOPBNdX54GI60Hu7biUVIyITSGmfVk5ZtEyrcGtFYVF5aEoPTF1kxw3DX/VFAlwI4UuU
5Di/JcJ0Q5BCvkBj75cRy3qbm4A4j9epIi+xrcSQ/D3MJH18usX2pWBcErVdmlUwpw+M
0hnxYrRWrqyucZIFrNg6fo2y9lnlYLXLbeiEsusMoG2Gr9EO+30RTQshSFreW329SOuK
UkFJAI754dkAO/iyy63wbEZj79Xxxgmt1O41mtH1VF4YfXEBA0XQAwKO7nXBh+kdBD9k
XOvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=to:subject:message-id:date:from:in-reply-to:references:mime-version
:dkim-signature;
bh=kTIK+VbYKiNF/9R7UXv2KkyzFuHKkB42TQ/7vb+XSaw=;
fh=UKNFaOBO97U3RYl3PEse//nArTqr7SLJjCCEBz281Ew=;
b=gnowo4hO6Swg3VX/42pVH3UGtI/Ex8Drab6/eG7m6qagLx0K26HpPXx29eb038oCiZ
dNr8NxOyyW/TEfTP14mnMRVYQ+bHNXVowF1aUPylrv05OAxdAqvTnlsTdYXKXIKzxney
JGUVeugiJDMl/z3hC35PJb0QPLxTSObxvECBHHRe6eIcAqqXn1UN7ls4c3HPrjZhK7T5
YaFngO7l3O8w0gDk8uG5kJ2ryWKNrNuErAwDVBXhPSRcyNiyYVAiBZKlo08+uIx7HLIM
Ea9kwsZpfTJjcKr1zZRjH/mYpYHVBMn+CrzmzHJdD1k90bN2k1urIp037EzKYz/Lbhm6
5ReQ==; darn=cygwin.com
ARC-Authentication-Results: i=1; mx.google.com; arc=none
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1770035108; x=1770639908;
h=to:subject:message-id:date:from:in-reply-to:references:mime-version
:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=kTIK+VbYKiNF/9R7UXv2KkyzFuHKkB42TQ/7vb+XSaw=;
b=YtvvG6Cs0oWeZGCFas0DtXhcjrKrt78dFZku3AsdcWEiiOsCoCtK0QBIezx6K59SX8
HK9w3u+p0a7knOC1muNelppIzat/THBl9FeR9344h+YIHHt6gZCdxlOuthEu/TVGpl6W
W55VQMInfczaI/GSVZJrZ6rd98nsmAeppnrjBVsX70yfg2dtOFYRvKYzZ+MQQmc5JYu4
aimmhlm2HJPP9Hx48AEUeceZveUzHnpxArGSBJK32dpOHTV/jPhBuSNpxP20oLAqadzx
Szkurn17wKwEhkXTGjtjggZOgnSFcDl+e6149dIGujXOXbKBZmXL/M9Yzt9aM1gR4Hrl
O4LQ==
X-Gm-Message-State: AOJu0YxGwqOXLEd7ZLdst5k5reOYnWVLqaL8vV/SECE1cmT5JWuu8Gab
Yken8yUmlHNJCsLeeHPhSMx0oRDxpRkMpTI3C5biRKMe5vem9WKg/slLFvQTHmU2V2Kt0x2MizZ
pGgpZqFN60tR41JpEqCsrEPzsYOxnRHlJ4EifwwE=
X-Gm-Gg: AZuq6aJSN3FGUEzhoeBMe+BmjMgEN9iTMES6yYOzABJYSJ1M3liYULdVxJODqBr7hkF
CtlqACEiqHwS5MlffncpJ9AvLNnwYIM8G780EpbqWk3LD1iLnDnyIEJ+58Aet8rk/+qOba3QJsf
Dtvgn5TuXpM3+miU8ymwGZs45O5H8LpcsZrW8t3rK1Azdy1Hs1ciPaHpSv4x+cGcxRRvpN8f6TX
U5R8MMNMOKNwbjt+4sDQlEMM3WEWnik6Gy2G5yQnS+4J8AxY+B7TyMcR4I97zoXbEDPfaF77zuP
EXk+XA==
X-Received: by 2002:a05:6512:61a5:b0:59e:3041:8a2b with SMTP id
2adb3069b0e04-59e30418afcmr67265e87.46.1770035107304; Mon, 02 Feb 2026
04:25:07 -0800 (PST)
MIME-Version: 1.0
References: <CAAvCNcDzoq3skCwRuYa2LLTTA3xsnK+eDLB8_SegJZinatMUSg AT mail DOT gmail DOT com>
<fc1bdd5b-7732-4430-a130-70ef662acd36 AT dronecode DOT org DOT uk>
In-Reply-To: <fc1bdd5b-7732-4430-a130-70ef662acd36@dronecode.org.uk>
Date: Mon, 2 Feb 2026 13:24:31 +0100
X-Gm-Features: AZwV_Qh2hwXB8GsoVS3C0CXf-qpWmGuT4oikgk_bdm4WucMSnHhi1M3Ie6imyfE
Message-ID: <CAAvCNcAAoJeX470QBp9x+A=zSupb_5TpVDeqnbsJS9dtd-oXQg@mail.gmail.com>
Subject: Re: git fsck complains about error:
refs/tags/.cyg000000000559e25517156b51cf219f51/libgcj-2.95.0:
badRefName: invalid refname format?!
To: cygwin AT cygwin DOT com
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Dan Shelton via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Dan Shelton <dan DOT f DOT shelton AT gmail DOT com>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

On Sun, 1 Feb 2026 at 18:08, Jon Turney <jon DOT turney AT dronecode DOT org DOT uk> wrote:
>
> On 31/01/2026 18:42, Dan Shelton via Cygwin wrote:
> > Hello, on Cygwin 3.6.6-1.x86_64 on CYGWIN_NT-10.0-19045/Win10 I get
> > these errors from git fsck when working on a clean clone of the
> > gcc.git repro:
> >
> > git fsck
> > error: refs/tags/.cyg000000000559e25517156b51cf219f51/libgcj-2.95.1:
> > badRefName: invalid refname format
> > error: refs/tags/.cyg000000000559e25517156b51cf219f51/libgcj-2.95.0:
> > badRefName: invalid refname format
> > error: refs/tags/.cyg000000000559e25817156b51cf219f51/libf2c-0.5.22:
> > badRefName: invalid refname format
> > error: refs/tags/.cyg000000000559e25817156b51cf219f51/libf2c-0.5.21:
> > badRefName: invalid refname format
> >
> > git fsck then exits with error code 8, breaking our scripts.
> >
> > Is this a Cygwin bug or feature running wild?
> Yes.
>
> These .cygXXX files are made by the cygwin DLL (I think it's something
> like a hardlink to the running executable so we can fork even if it's
> deleted, but I might well be misremembering the details) and are
> supposed to get automatically removed.
>
> Obviously, 'git fsck' objects to their presence, but it is safe to
> remove them.

I'm not sure whether the Cygwin code is correct. I did a peek with a
kernel debugger, and I see that FILE_RENAME_INFORMATION.RootDirectory
is always NULL if a file gets renamed to .cyg000000000xxxx. But if I
try that with NTFS or SMB, the NtSetInformationFile() to set
FileRenameInformation always fails.

I think this bug is there since a LONG time, and only bothers
filesystems which are not NTFS.

I made this testcase:
-x-x-x-x-x-x-x-x-x-x-x-x-
#include <windows.h>
#include <wchar.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>

#ifdef _MSC_VER
#pragma comment(lib, "ntdll.lib")
#endif

typedef LONG NTSTATUS;
#ifndef NT_SUCCESS
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
#endif

typedef struct _IO_STATUS_BLOCK {
    union { NTSTATUS Status; PVOID Pointer; } DUMMYUNIONNAME;
    ULONG_PTR Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;

typedef enum _FILE_INFORMATION_CLASS {
    FileRenameInformation = 10
} FILE_INFORMATION_CLASS;

typedef struct _FILE_RENAME_INFORMATION {
    BOOLEAN ReplaceIfExists;
    HANDLE  RootDirectory;
    ULONG   FileNameLength;
    WCHAR   FileName[1];
} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;

#ifdef __cplusplus
extern "C" {
#endif
NTSTATUS NTAPI NtSetInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID,
ULONG, FILE_INFORMATION_CLASS);
ULONG NTAPI RtlNtStatusToDosError(NTSTATUS);
#ifdef __cplusplus
}
#endif

static HANDLE OpenForRenameW(const wchar_t* fullDosPath)
{
    DWORD share  = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
    DWORD flags  = FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT;
    return CreateFileW(fullDosPath, GENERIC_READ | DELETE |
SYNCHRONIZE, share, NULL, OPEN_EXISTING, flags, NULL);
}

int wmain(int ac, wchar_t *av[])
{
    wchar_t *srcfile = av[1];
    wchar_t *dstfile = av[2];

    if (ac != 3) {
        fwprintf(stderr, L"%ls: Usage: renametest <srcfile>
<dstfile>\n", av[0]);
        return 2;
    }

    HANDLE srch = OpenForRenameW(srcfile);
    if (srch == INVALID_HANDLE_VALUE) {
        fwprintf(stderr, L"%ls: Cannot open srcfile, lasterr=%d\n",
av[0], (int)GetLastError());
    }

    PFILE_RENAME_INFORMATION fri;
    size_t fri_len = sizeof(FILE_RENAME_INFORMATION) +
(wcslen(dstfile)+1)*sizeof(wchar_t);

    fri = calloc(1, fri_len);
    if (fri == NULL) {
        fwprintf(stderr, L"%ls: Out of memory\n", av[0]);
        return 2;
    }
    fri->ReplaceIfExists = TRUE;
    fri->RootDirectory = NULL;
    fri->FileNameLength = (wcslen(dstfile)+1)*sizeof(wchar_t);
    memcpy(&fri->FileName[0], dstfile, fri->FileNameLength);

    IO_STATUS_BLOCK isb = { 0 };

    NTSTATUS status = NtSetInformationFile(srch, &isb, fri, fri_len,
FileRenameInformation);
    printf("ntstatus=0x%lx\n", (long)status);

    CloseHandle(srch);

    return EXIT_SUCCESS;
}
-x-x-x-x-x-x-x-x-x-x-x-x-

Dan
-- 
Dan Shelton - Cluster Specialist Win/Lin/Bsd

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019