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? -Peff