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

Re: "Can't read directory" - what is the way out?

From: Rick Jones <rick.jones2_at_hp.com>
Date: 2007-08-10 22:51:18 CEST

Rick Jones wrote:
> I've been messing around a bit, and it seems that I only get this error
> when I commit "a lot" - or rather I don't seem to get the error when I
> commit "a little"
>
> for example, I have a repository at:
>
> http://www.netperf.org/svn/sandbox
>
> which just had one file in it called "foo." I could make a small one
> liner change to foo and commit it without errors like those in the
> previous message.
>
> however, the commit of something more substantial or at least to a more
> substantial repository - like something in my netperf2 repository -
> would get that unable to read directory error. even if it was just a
> one-liner change.
>
> soooo, I cut the number of apache processes way back, attached to each
> of them with strace and tried another netperf2 commit.
>
> i then brought those traces to a working directory for sandbox, svn
> added them, and tried to commit and lo and behold I get:
>
> raj@tardy:~/sandbox_work$ svn commit -m "strace of apache for commit error"
> Adding apache.16085
> Adding apache.2736
> Adding apache.2737
> Adding apache.2739
> Adding apache.2740
> Transmitting file data .....svn: Commit failed (details follow):
> svn: MERGE request failed on '/svn/sandbox/trunk'
> svn: Can't read directory '/svn/sandbox/db/transactions/39-1.txn':
> Partial results are valid but processing is incomplete
>
> just like with netperf2. Of course the straces are there in the
> repository. The one called spache.2739 appears to be very interesting -
> it shows the code attempting to lstat the transaction directory about
> 100 or so lines/system calls after it was rmdir'ed:
>
> 1343:2739 unlink("/svn/netperf2/db/transactions/131-1.txn/node.1t.0") = 0
> 1344:2739
> lstat64("/svn/netperf2/db/transactions/131-1.txn/node.3.0.children",
> {st_dev=makedev(0, 0), st_ino=2051, st_mode=0, st_nlink=0,
> st_uid=1356285, st_gid=127, st_blksize=4096, st_blocks=8,
> st_size=141733920801, st_atime=0, st_mtime=0, st_ctime=0}) = 0
> 1345:2739
> unlink("/svn/netperf2/db/transactions/131-1.txn/node.3.0.children") = 0
> 1348:2739 rmdir("/svn/netperf2/db/transactions/131-1.txn") = 0
> 1428:2739 lstat64("/svn/netperf2/db/transactions/131-1.txn",
> 0x419da908) = -1 ENOENT (No such file or directory)

And if I strace another, successful commit (a one liner change to "foo"
in the "sandbox" repository on the same server, I see no lstat call
after the rmdir... sure smells like a bug - has anyone else seen this?

rick jones

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Aug 10 22:49:55 2007

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