[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Unable to hotcopy to a NAS shared directory: E720002

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Wed, 21 Jan 2015 19:16:36 +0000

Evgeny Kotkov <evgeny.kotkov_at_visualsvn.com> writes:

> The reason why this error is propagated up the stack is that we only examine
> the 'ignore_enoent' argument after the first apr_file_remove() call. This is
> racy — if we get a EACCES during the first attempt to remove a file, and the
> file is simultaneously removed from the disk, the next attempt to remove it
> would fail with a ENOENT, even with 'ignore_enoent'. I think we should
> fix this by suppressing ENOENTs from every apr_file_remove() call, not
> just the first one.

Sounds plausible.

Windows code is tricky. When svn_io_remove_file2() gets EACCES it calls
svn_io_set_file_read_write() passing ignore_enoent. That function has
different handling of ignore_enoent as it only checks ENOENT while
svn_io_remove_file2() and checks both ENOENT and ENOTDIR.
svn_io_set_file_read_write() also doesn't have a WIN32_RETRY_LOOP. Are
those differences intentional?

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2015-01-21 20:17:11 CET

This is an archived mail posted to the Subversion Dev mailing list.