Unknown error with concurrent config read/write on Windows

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Windows, Git encounters fatal errors (that do not happen on Linux)
when reading and writing the Git config in parallel processes.

I and some peers can relatively easily reproduce this by running in
parallel (e.g., in two separate terminal/PowerShell windows):

for (;;) {git rev-parse HEAD}
for (;;) {git config --local user.name foo}

The rev-parse "thread" will spew messages like:

f100762176b7b085e81cafe261a049d809772ace
f100762176b7b085e81cafe261a049d809772ace
f100762176b7b085e81cafe261a049d809772ace
warning: unable to access '.git/config': Permission denied
fatal: unknown error occurred while reading the configuration files
f100762176b7b085e81cafe261a049d809772ace

This affects any command that reads the Git config (which is all/most
of them); rev-parse is just a convenient stand-in.

I have seen the work to make lockfile renames (and thus config edits I
believe) more atomic in
https://lore.kernel.org/all/cover.1729695349.git.ps@xxxxxx/T/ which
should be in 28.0 IIUC.

However, the above issue can still be reproduced with an RC build of
28.0 (of the Git for Windows distribution).

Based on where the unknown error text occurs in the code, I speculate
that the "atomic rename" of config.lock to config is allowing
subsequent readers to read an incomplete version of the config file,
which means that the fix I referenced above may be deficient in some
way.

I will omit the context around my problem, which can be summarized as
"legacy infrastructure/scripts", but I'd like to frame this bug report
as "this works on Linux, but not on Windows" in the hopes of getting
some help, although I understand this may not be the highest priority.

(Apologies in advance for my ignorance with Windows and/or using this
mailing list.)




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux