Skip to content

Small fixes for issues detected during internal CI runs

Kyle Lippincott via GitGitGadget git 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest2 patches 1 replyIn review
  2. v23 patches 11 repliesSuperseded
  3. v13 patches 6 repliesSuperseded

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2set errno=0 before strtoX callsbuiltin/get-tar-commit-id.c ref-filter.c t/helper/test-json-writer.c +1 more+5 -00 replies
2/2t6421: fix test to work when repo dir contains d0t/t6421-merge-partial-clone.sh+9 -60 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCH v3 0/2] Small fixes for issues detected during internal CI runs

I'm attempting to get the git test suite running automatically during our weekly import. I have this mostly working, including with Address Sanitizer and Memory Sanitizer, but ran into a few issues:

* several tests were failing due to strbuf_getcwd not clearing errno on success after it internally looped due to the path being >128 bytes. This is resolved in depth; though either one of the commits alone would resolve our issues:
* modify locations that call strtoX and check for ERANGE to set errno = 0; prior to calling the conversion function. This is the typical way that these functions are invoked, and may indicate that we want compatibility helpers in git-compat-util.h to ensure that this happens correctly (and add these functions to the banned list).
* have strbuf_getcwd set errno = 0; prior to a successful exit. This isn't very common for most functions in the codebase, but some other examples of this were found.
* t6421-merge-partial-clone.sh had >10% flakiness. This is due to our build system using paths that contain a 64-hex-char hash, which had a 12.5% chance of containing the substring d0.

Kyle Lippincott (2):
set errno=0 before strtoX calls
t6421: fix test to work when repo dir contains d0

 builtin/get-tar-commit-id.c    |  1 +
 ref-filter.c                   |  1 +
 t/helper/test-json-writer.c    |  2 ++
 t/helper/test-trace2.c         |  1 +
 t/t6421-merge-partial-clone.sh | 15 +++++++++------
 5 files changed, 14 insertions(+), 6 deletions(-)

base-commit: e559c4bf1a306cf5814418d318cc0fea070da3c7
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1756%2Fspectral54%2Fstrbuf_getcwd-clear-errno-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1756/spectral54/strbuf_getcwd-clear-errno-v3
Pull-Request: https://github.com/git/git/pull/1756

Range-diff vs v2:

 1:  4dbd0bec40a = 1:  4dbd0bec40a set errno=0 before strtoX calls
 2:  0ed09e9abb8 < -:  ----------- strbuf: set errno to 0 after strbuf_getcwd
 3:  818dc9e6b3e = 2:  96984c4a15e t6421: fix test to work when repo dir contains d0
Signature · 1 line
gitgitgadget