On June 3, 2021 3:31 PM, Peff wrote: >On Wed, Jun 02, 2021 at 04:34:51PM -0400, Randall S. Becker wrote: > >> >> The wrapper should apply to all platforms. NFS (and presumably >> >> other network FSes) can be mounted with interrupts enabled. >> > >> >I don't mind that, as the wrapper is pretty low-cost (and one less >> >Makefile knob is nice). If it's widespread, though, I find it curious that nobody has run into it before now. >> >> I suspect this is because of the way the file system on NonStop behaves. It is a multi-processor platform, with multi-cores, so anything >can happen. If the file system is delayed for any reason, like a signal coming from a different core (EINTR has high priority), then fsync() >will be interrupted. EINTR is allowed on NonStop for fsync(). So it would be really great if the patch included a modification to >config.mak.uname to include that. This would be a timing-only issue on most other systems, probably something that would hit NFS. >> >> The patch for the config is: >> diff --git a/config.mak.uname b/config.mak.uname index >> cb443b4e02..ac3e3ca2c5 100644 >> --- a/config.mak.uname >> +++ b/config.mak.uname >> @@ -566,6 +566,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL) >> NO_REGEX = NeedsStartEnd >> NO_PTHREADS = UnfortunatelyYes >> FREAD_READS_DIRECTORIES = UnfortunatelyYes >> + FSYNC_NEEDS_RESTART = YesPlease >> >> # Not detected (nor checked for) by './configure'. > >Yeah, if we don't make it unconditional, then this is the obvious next step. But the more important question is: did you test this out and did >it fix the test breakage you saw on NonStop? The fix works for me and t5300 passes. I tested it without the conditional approach. While the test was running, I noticed this: + mkdir -p /home/git/git/t/trash directory.t5300-pack-object/prereq-test-dir-FAIL_PREREQS + cd /home/git/git/t/trash directory.t5300-pack-object/prereq-test-dir-FAIL_PREREQS + test_bool_env GIT_TEST_FAIL_PREREQS false error: last command exited with $?=1 prerequisite FAIL_PREREQS not satisfied expecting success of 5300.32 'index-pack --threads=N or pack.threads=N warns when no pthreads': This may be intended, but the error line showed in red. Regards, Randall