GNU bug report logs -
#10470
MSYS: race in directory access?
Previous Next
Reported by: Peter Rosin <peda <at> lysator.liu.se>
Date: Mon, 9 Jan 2012 23:09:01 UTC
Severity: minor
Tags: patch
Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 01/12/2012 11:39 AM, Peter Rosin wrote:
>
> After digging out that the patches are for maint,
>
Oops, sorry I didn't state that explicitly!
> I managed to commit them,
> but FYI this bugfix is only needed on master.
>
True, but I'd rather avoid code divergences if possible and if that doesn't
cause performance regressions (conditions which both hold in this case).
> AM_SANITY_CHECK is not
> aggressive enough on maint to cause problems, as can be seen below. But ok
> to commit wherever, it behaves as designed. Thanks!
>
Thanks to you for the patient analysis and testing.
> I should also add that it's a POSIX violation to assume that directory
> removal works when the dir is the CWD of a process.
>
> "If the directory is the root directory or the current working
> directory of any process, it is unspecified whether the function
> succeeds, or whether it shall fail and set errno to [EBUSY]."
>
Good to know. I've amended the git commit message of the second patch
accordingly, to read as follows:
dist: avoid $(distdir) removal failure on MSYS/MinGW
This change fixes automake big#10470.
On MSYS (1.0.17) it is not possible to remove a directory that is
in use, and this, together with timing issues, could cause spurious
failures in the cleanup code of the "distcheck" recipe. In fact,
it should be noted that assuming a directory can be removed while
it the CWD of a running process is a POSIX violation:
"If the directory is the root directory or the current working
directory of any process, it is unspecified whether the function
succeeds, or whether it shall fail and set errno to [EBUSY]."
* lib/am/distdir.am (am__remove_distdir): If rm fails, sleep some
seconds and retry, to give potential "pending" processes some time
to exit and "release" the directory.
* tests/Makefile.am (XFAIL_TESTS): Remove 'distcheck-pr10470.test'.
Report and suggestions by Peter Rosin and Eric Blake.
I will push by this evening or tomorrow if there is no objection.
Thanks,
Stefano
This bug report was last modified 13 years and 134 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.