From: Heiko Voigt <hvoigt@hvoigt.net>
To: Johannes Sixt <j6t@kdbg.org>
Cc: Pat Thoyts <patthoyts@users.sourceforge.net>,
msysgit@googlegroups.com, git@vger.kernel.org,
Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v2 0/4] make open/unlink failures user friendly on windows using retry/abort
Date: Sun, 7 Nov 2010 15:56:23 +0100 [thread overview]
Message-ID: <cover.1289139299.git.hvoigt@hvoigt.net> (raw)
In-Reply-To: <201009282252.25688.j6t@kdbg.org>
Hi,
here is a new iteration of my original patch series. This series
replaces the newest patches currently present in 4msysgit.git's master
and does not cleanly apply to git.git's master. Once everybody is happy
with the outcome I will port it to git.git so msysgit can fetch it from
upstream.
On Tue, Sep 28, 2010 at 10:52:25PM +0200, Johannes Sixt wrote:
> > Heiko Voigt (4):
> > mingw: work around irregular failures of unlink on windows
>
> The workaround is to retry the unlink() after a delay when it failed with
> EACCES. What happens if the EACCES is for a good reason? Doesn't this delay
> the process by 71ms per unlink() invocation? Can't this become a problem if
> many unlink()s are tried by git code?
I have changed the triggering error code to be ERROR_SHARING_VIOLATION
which seems to be the appropriate code for files that are in use by
another process.
http://msdn.microsoft.com/en-us/library/ms681382%28v=VS.85%29.aspx
Thus we do not need to worry about whether we are retrying on a valid
access error. I have tested this on my windows box and it works here.
j6t: I have not changed your error code in mingw_rename since you
explicitely compare with the windows error code ERROR_ACCESS_DENIED and
do not use the err_win_to_posix() function. Did you do this on purpose or
should I also refer to ERROR_SHARING_VIOLATION ?
> > mingw: make failures to unlink or move raise a question
>
> Gaah! But people seem to like it. Since the question is only triggered after
> all retries fail, I can live with this.
>
> But isn't the implementation a bit sloppy? Can strlen(answer)-2 be negative?
> What happens if the user typed more than 4 characters? Wouldn't it leave data
> in the buffer for the next question?
I have extracted reading of the answer into its own function and made
the reading more robust which should now take care of the above issues.
> > mingw: add fallback for rmdir in case directory is in use
>
> Depends on the previous patch. OK.
No changes.
During pick up of the series I had to gather my testing script which can
only be used manually for testing. Is there any place in git.git where
we can store such "manual testing tools" ?
Cheers Heiko
Heiko Voigt (4):
mingw: move unlink wrapper to mingw.c
mingw: work around irregular failures of unlink on windows
mingw: make failures to unlink or move raise a question
mingw: add fallback for rmdir in case directory is in use
compat/mingw.c | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
compat/mingw.h | 14 ++---
2 files changed, 144 insertions(+), 9 deletions(-)
--
1.7.2.2.177.geec0d
next prev parent reply other threads:[~2010-11-07 14:57 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-28 9:46 Pull request for msysGit patches Pat Thoyts
2010-09-28 19:10 ` Junio C Hamano
2010-09-28 21:11 ` [msysGit] " Johannes Sixt
2010-09-29 3:41 ` Junio C Hamano
2010-09-28 21:23 ` Ævar Arnfjörð Bjarmason
2010-09-30 22:15 ` Pat Thoyts
2010-09-30 22:52 ` Ævar Arnfjörð Bjarmason
2010-09-30 23:27 ` Erik Faye-Lund
2010-09-29 2:01 ` [msysGit] " Eric Sunshine
[not found] ` <7vbp7hrzhb.fsf@alter.siamese.dyndns.org>
2010-09-29 3:54 ` Eric Sunshine
2010-09-29 22:22 ` msysGit patches for upstream Pat Thoyts
2010-09-29 23:02 ` Junio C Hamano
2010-09-29 22:22 ` [PATCH 1/2] Make sure that git_getpass() never returns NULL Pat Thoyts
2010-09-29 22:22 ` [PATCH 2/2] Fix typo in pack-objects' usage Pat Thoyts
2010-09-28 20:52 ` [msysGit] Pull request for msysGit patches Johannes Sixt
2010-09-28 20:58 ` Erik Faye-Lund
2010-09-28 21:13 ` Johannes Sixt
2010-09-28 21:20 ` Erik Faye-Lund
2010-09-28 21:35 ` Erik Faye-Lund
2010-09-28 21:08 ` Jonathan Nieder
2010-09-29 17:51 ` Junio C Hamano
2010-09-29 22:29 ` Pat Thoyts
2010-09-29 2:23 ` Eric Sunshine
2010-09-29 3:37 ` Junio C Hamano
2010-09-29 4:17 ` Eric Sunshine
2010-09-30 13:24 ` [PATCH] git-am: fix detection of absolute paths for windows Pat Thoyts
2010-10-01 17:46 ` Johannes Sixt
2010-09-30 13:24 ` Pat Thoyts
2010-11-07 14:56 ` Heiko Voigt [this message]
2010-11-07 15:49 ` [PATCH v2 0/4] make open/unlink failures user friendly on windows using retry/abort Johannes Sixt
2010-11-07 17:06 ` Heiko Voigt
2010-11-07 19:11 ` Johannes Sixt
2010-11-07 14:56 ` [PATCH v2 1/4] mingw: move unlink wrapper to mingw.c Heiko Voigt
2010-11-07 14:56 ` [PATCH v2 2/4] mingw: work around irregular failures of unlink on windows Heiko Voigt
2010-11-07 14:56 ` [PATCH v2 3/4] mingw: make failures to unlink or move raise a question Heiko Voigt
2010-11-07 14:56 ` [PATCH v2 4/4] mingw: add fallback for rmdir in case directory is in use Heiko Voigt
2010-09-29 6:11 ` Pull request for msysGit patches yj2133011
2010-09-29 20:48 ` Ramsay Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1289139299.git.hvoigt@hvoigt.net \
--to=hvoigt@hvoigt.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
--cc=msysgit@googlegroups.com \
--cc=patthoyts@users.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).