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

Roland Stigge stigge at antcom.de
Fri May 12 21:44:24 UTC 2006


Package: subversion
Version: 1.3.1-3
Severity: important

Hi,

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).

strace says:
===================================================================
[...]
stat64("/vol/svn/ernie/db/representations", {st_mode=S_IFREG|0644, st_size=9740288, ...}) = 0
open("/vol/svn/ernie/db/representations", O_RDWR|O_LARGEFILE) = 9
fcntl64(9, F_SETFD, FD_CLOEXEC)         = 0
fstat64(9, {st_mode=S_IFREG|0644, st_size=9740288, ...}) = 0
time(NULL)                              = 1147465784
stat64("/vol/svn/ernie/db/strings", {st_mode=S_IFREG|0644, st_size=4230414336, ...}) = 0
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
read(10, "*i\0\0\273X\2\0\0\0\0\0b1\5\0\t\0\0\0\0\20\0\0\0\t\0\0"..., 512) = 512
close(10)                               = 0
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)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
[infinitely looping select() here]
===================================================================

ltrace says:
===================================================================
[...]
svn_fs_version(0x804e6c0, 0xb7fd4028, 0xbffed138, 0xb7f7d0c4, 0x8050a5c)     = 0xb7fb6100
svn_delta_version(0x804e6c0, 0xb7fb6100, 0xbffed138, 0xb7f7d0c4, 0x8050a5c)  = 0xb7fb0060
<... svn_ver_check_list resumed> )                                           = 0
svn_fs_initialize(0x8058970, 0x804e6e0, 4, 1, 0)                             = 0
memset(0xbffed1d8, '\000', 96)                                               = 0xbffed1d8
apr_getopt_init(0xbffed244, 0x8058970, 3, 0xbffed2d4, 0)                     = 0
apr_getopt_long(0x8058a88, 0x804e580, 0xbffed240, 0xbffed23c, 0)             = 70014
svn_opt_get_canonical_subcommand(0x804d6a0, 0xbffede70, 0xbffed240, 0xbffed23c, 0) = 0x804e3c0
svn_utf_cstring_to_utf8(0xbffed1d8, 0xbffede77, 0x8058970, 0x8058970, 0x804e2ec) = 0
svn_path_internal_style(0x8058ae0, 0x8058970, 0x8058970, 0x8058970, 0x804e2ec) = 0x8058b00
svn_path_is_url(0x8058b00, 0x8058970, 0x8058970, 0x8058970, 0x804e2ec)       = 0
apr_signal(2, 0x8049d80, 0x804e4a0, 0xbffede70, 0x80589a8)                   = 0
apr_signal(1, 0x8049d80, 0x804e4a0, 0xbffede70, 0x80589a8)                   = 0
apr_signal(15, 0x8049d80, 0x804e4a0, 0xbffede70, 0x80589a8)                  = 0
apr_signal(13, 1, 0xbffed240, 0xbffed23c, 0)                                 = 0
svn_repos_open(0xbffed18c, 0x8058b00, 0x8058970, 0, 0 <unfinished ...>
svn_subr_version(0xb7e27b6e, 1486, 0, 0xbffecfd0, 0xb7fb7000)                = 0xb7fa87cc
svn_delta_version(0xb7dfb050, 0xb7fa87cc, 0, 0xbffecfd0, 0xb7fb7000)         = 0xb7fb0060
[stalls here]
===================================================================

There's plenty of writeable disk space free.

I don't know if this is related to #270693 since the phenomenon is
different and it worked for quite some time with the file strings being
>>2GB.

Thanks,

Roland

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-1-686
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8)

Versions of packages subversion depends on:
ii  libapr0                       2.0.55-4   the Apache Portable Runtime
ii  libc6                         2.3.6-7    GNU C Library: Shared libraries
ii  libsvn0                       1.3.1-3    shared libraries used by Subversio
ii  patch                         2.5.9-4    Apply a diff file to an original

subversion recommends no packages.

-- no debconf information





More information about the pkg-subversion-maintainers mailing list