Bug#367023: svn stalls in infinite select() loop

Peter Samuelson peter at p12n.org
Fri May 12 23:36:46 UTC 2006


[Roland Stigge]
> I've got a BDB 4.3 repository with a strings file of size 4230414336.
> Running "svn ci", "svnadmin verify", etc., the process stalls without
> an error (waiting for me to kill the process).

Yeah, that's pretty odd.  Are you reasonably certain it is related to
the file size?  I know people have huge repositories in BDB (subversion
itself is kept in one).

> stat64("/vol/svn/ernie/db/strings", {st_mode=S_IFREG|0644, st_size=4230414336, ...}) = 0
> open("/vol/svn/ernie/db/strings", O_RDWR|O_LARGEFILE) = 10
> fcntl64(10, F_SETFD, FD_CLOEXEC)        = 0
> fstat64(10, {st_mode=S_IFREG|0644, st_size=4230414336, ...}) = 0
> select(0, NULL, NULL, NULL, {0, 1000})  = 0 (Timeout)
> select(0, NULL, NULL, NULL, {0, 2000})  = 0 (Timeout)
> select(0, NULL, NULL, NULL, {0, 4000})  = 0 (Timeout)
> select(0, NULL, NULL, NULL, {0, 8000})  = 0 (Timeout)
> select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)

A couple of things to notice: first, clearly BDB is 4 GB safe, you can
see by the use of stat64, fstat64, fcntl64, and open with O_LARGEFILE.
So this isn't the same as the usual subversion problems with large
files.  Second, the pattern of selects (used here as a high-resolution
sleep call) looks to me like trying to get a lock or something.

In any case it smells like a BDB problem, but of course I can't know
that for sure, so I won't reassign the bug.  Can you run db_verify on
your file?  "cd /vol/svn/ernie/db; db4.3_verify strings" (The 'cd'
avoids the need to specify a -h parameter.)

We will be moving to BDB 4.4 in the not-too-distant future (before etch
is released, we hope).  I wonder if that will solve your problem.

Thanks,
Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/pkg-subversion-maintainers/attachments/20060512/589c3a18/attachment.pgp


More information about the pkg-subversion-maintainers mailing list