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

Bug: svn-1.0.4 stops at 65536 revisions

From: Øyvind A. Holm <sunny_at_sunbase.org>
Date: 2004-05-28 16:34:45 CEST

I ran a test on Subversion-1.0.4 with this script:

#!/bin/sh

while :; do
        echo -n 0 >f
        svn ci -m "0" f
        echo -n 1 >f
        svn ci -m "1" f
done

to see how Subversion performed when it contained lots of revisions. The
result was pretty ok, there were no significant loss in speed. But when
it reached 65536 revisions it aborts with this message before the
checkin is completed:

Sending f
svn: Commit failed (details follow):
svn: Out of date: 'f' in transaction '1ekk'
svn: Your commit message was left in a temporary file:
svn: '/root/many/.many/svn-commit.tmp'

The coredump is 491.192.320 bytes. "svnadmin verify" is able to verify
all 65536 revisions.

$ ./configure --prefix=/usr/local/prg/subversion --with-apxs

Compiling without apxs makes no difference.

$ gdb /usr/local/prg/subversion/bin/svn core
GNU gdb 2002-04-01-cvs
[Copyright snipped]
This GDB was configured as "i386-linux"...
Core was generated by `svn ci -m 0 f'.
Program terminated with signal 6, Aborted.
Reading symbols from /usr/local/prg/subversion/lib/libsvn_client-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_client-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_wc-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_wc-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_ra-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_ra-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_diff-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_diff-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_ra_local-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_ra_local-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_repos-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_repos-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_fs-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_fs-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_ra_dav-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_ra_dav-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_ra_svn-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_ra_svn-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_delta-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_delta-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libsvn_subr-1.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libsvn_subr-1.so.0
Reading symbols from /usr/local/prg/subversion/lib/libaprutil-0.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libaprutil-0.so.0
Reading symbols from /usr/lib/libdb-4.2.so...done.
Loaded symbols for /usr/lib/libdb-4.2.so
Reading symbols from /usr/local/prg/subversion/lib/libapr-0.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libapr-0.so.0
Reading symbols from /lib/librt.so.1...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libpthread.so.0...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /usr/local/prg/subversion/lib/libneon.so.24...done.
Loaded symbols for /usr/local/prg/subversion/lib/libneon.so.24
Reading symbols from /usr/local/prg/subversion/lib/libexpat.so.0...done.
Loaded symbols for /usr/local/prg/subversion/lib/libexpat.so.0
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_compat.so.2...done.
Loaded symbols for /lib/libnss_compat.so.2
#0 0x402b5781 in kill () from /lib/libc.so.6
(gdb)

$ svn --version
svn, version 1.0.4 (r9844)
   compiled May 24 2004, 08:38:37

$ httpd -V
Server version: Apache/2.0.49
Server built: May 1 2004 00:33:15
Server's Module Magic Number: 20020903:7
Architecture: 32-bit
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D HTTPD_ROOT="/usr/local/prg/apache2"
 -D SUEXEC_BIN="/usr/local/prg/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

$ gcc --version
2.95.4

$ ldd --version
ldd (GNU libc) 2.2.5

$ uname -a
Linux nett2 2.2.20-compact #1 Sat Apr 20 12:40:22 EST 2002 i686 unknown

Debian GNU/Linux 3.0 (stable)

strace spits out horrible amounts of information, these are the last
lines from a "strace svn ci":

time([1085751318]) = 1085751318
brk(0x255c2000) = 0x255c2000
time([1085751318]) = 1085751318
pread(4, "7\0\0\0\361Y\17\0\n\0\0\0g\1\0\0i\1\0\0J\0\354\7\1\5\364"..., 4096, 40960) = 4096
time([1085751318]) = 1085751318
brk(0x255c5000) = 0x255c5000
time([1085751318]) = 1085751318
brk(0x255c8000) = 0x255c8000
time([1085751318]) = 1085751318
time([1085751318]) = 1085751318
brk(0x255cb000) = 0x255cb000
time([1085751318]) = 1085751318
brk(0x255ce000) = 0x255ce000
time([1085751318]) = 1085751318
time([1085751318]) = 1085751318
brk(0x255d1000) = 0x255d1000
time([1085751318]) = 1085751318
brk(0x255d4000) = 0x255d4000
time([1085751318]) = 1085751318
time([1085751318]) = 1085751318
brk(0x255d7000) = 0x255d7000
time([1085751318]) = 1085751318
brk(0x255da000) = 0x255da000
time([1085751318]) = 1085751318
time([1085751318]) = 1085751318
brk(0x255dd000) = 0x255dd000
time([1085751318]) = 1085751318
brk(0x255e0000) = 0x255e0000
time([1085751318]) = 1085751318
time([1085751318]) = 1085751318
brk(0x255e3000) = 0x255e3000
time([1085751318]) = 1085751318
brk(0x255e6000) = 0x255e6000
time([1085751318]) = 1085751318
time([1085751318]) = 1085751318
brk(0x255e9000) = 0x255e9000
time([1085751318]) = 1085751318
brk(0x255ec000) = 0x255ec000
time([1085751318]) = 1085751318
brk(0x255ef000) = 0x255ef000
time([1085751318]) = 1085751318
brk(0x255f2000) = 0x255f2000
time([1085751318]) = 1085751318
brk(0x255f5000) = 0x255f5000
time([1085751318]) = 1085751318
time([1085751318]) = 1085751318
brk(0x255f8000) = 0x255f5000
old_mmap(NULL, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x4083f000
munmap(0x4083f000, 790528) = 0
munmap(0x40a00000, 258048) = 0
old_mmap(0x40900000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
munmap(0x40900000, 1048576) = 0
old_mmap(NULL, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x4083f000
munmap(0x4083f000, 790528) = 0
munmap(0x40a00000, 258048) = 0
old_mmap(0x40900000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
munmap(0x40900000, 1048576) = 0
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
kill(5305, SIGABRT) = 0
--- SIGABRT (Aborted) ---
+++ killed by SIGABRT +++

The repository is stored as
http://musthave.sunbase.org/svn-bug/many.tar.gz if someone wants to
inspect it. 9.5 megabytes as a .tar.gz , 67 megs unpacked.

It is also available at http://svn.sunbase.org/repos/many .

I'm not able to compile trunk on none of my Debians (woody and
unstable/sarge) to test this out, trunk doesn't find any of my APRs even
though both libapr0 and libapr0-dev are installed. That should be enough?

libtool: link: cannot find the library `/usr/local/bin/libaprutil-0.la'
make: *** [subversion/libsvn_subr/libsvn_subr-1.la] Error 1

Shouldn't be anything from apt-get in my /usr/local/ anyway.

Regards,
Øyvind A. Holm
---------------------
cat /dev/urandom >SCO

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri May 28 16:35:59 2004

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.