Please describe the problem.

Running the test QuickCheck.prop_viewedFile_rountrips fails in a particular case (but only occasionally).

What steps will reproduce the problem?

Running the following fails:

jkniiv@AINESIS MINGW64 /c/annx
$ ./git-annex.exe test -p 'QuickCheck.prop_viewedFile_rountrips' --quickcheck-replay=819461 --quickcheck-verbose 2>&1 | tee git-annex.test--p-QuickCheck_prop_viewedFile_rountrips.LOG~201
[...]
$ cat git-annex.test--p-QuickCheck_prop_viewedFile_rountrips.LOG~201
Tests
  QuickCheck
    prop_viewedFile_rountrips: FAIL (0.01s)
      Passed:
      TestableFilePath {fromTestableFilePath = "{\DC4"}

      Passed:
      TestableFilePath {fromTestableFilePath = ":"}

      Passed:
      TestableFilePath {fromTestableFilePath = "\SI"}

      Passed:
      TestableFilePath {fromTestableFilePath = "\"78"}

      Passed:
      TestableFilePath {fromTestableFilePath = "[:"}

      Passed:
      TestableFilePath {fromTestableFilePath = "\ax0"}

      Passed:
      TestableFilePath {fromTestableFilePath = "_\SUB"}

      Passed:
      TestableFilePath {fromTestableFilePath = "\DC1"}

      Passed:
      TestableFilePath {fromTestableFilePath = "wP["}

      Passed:
      TestableFilePath {fromTestableFilePath = "8gp\v\DC38"}

      Passed:
      TestableFilePath {fromTestableFilePath = "cO\ESC\FS]"}

      Passed:
      TestableFilePath {fromTestableFilePath = "("}

      Passed:
      TestableFilePath {fromTestableFilePath = "3\ESCLK=\SOH"}

      Passed:
      TestableFilePath {fromTestableFilePath = "21U'd(\DEL("}

      Failed:
      TestableFilePath {fromTestableFilePath = "C:"}

      *** Failed! Falsified (after 15 tests):
      TestableFilePath {fromTestableFilePath = "C:"}
      Use --quickcheck-replay=819461 to reproduce.

1 out of 1 tests failed (0.01s)
  (Failures above could be due to a bug in git-annex, or an incompatibility
   with utilities, such as git, installed on this system.)
# End of transcript.

If you remove the option --quickcheck-replay=819461, the test usually passes.

As you can see, the test above supposedly generated a file named "C:" which in its particular use case caused problems. N.B. Git Bash (and thus MSYS2 or Cygwin) doesn't have any problem creating a file named "C:" (touch 'C:') nor deleting it (rm 'C:') so I guess it isn't an illegal name in Windows as such but somehow git-annex managed to ruffle its feathers nonetheless.

What version of git-annex are you using? On what operating system?

git-annex version: 8.20201117-g93520790a
build flags: Assistant Webapp Pairing TorrentParser Feeds Testsuite S3 WebDAV
dependency versions: aws-0.22 bloomfilter-2.0.1.0 cryptonite-0.26 DAV-1.3.4 feed-1.3.0.1 ghc-8.8.4 http-client-0.6.4.1 persistent-sqlite-2.10.6.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.1.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso hook external
operating system: mingw32 x86_64
supported repository versions: 8
upgrade supported from repository versions: 2 3 4 5 6 7

This is built with the additional patch mentioned in Small patch to make 93520790a compile on Windows.

Windows version 20H2 (build 19042.630), 64 bit.

Please provide any additional information below.

(The transcript is above.)

Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

Git Annex is great. It works with multi-gigabyte backup files via the MD5E backend just dandy :)

fixed in e92117bfd0d28b24f51a10903158b95010defffd --Joey