RE: svn client fails with Berkeley DB error Cannot allocate memor y - repository wedges
From: Martin J. Evans <martin.evans_at_easysoft.com>
Date: 2004-06-01 10:57:58 CEST
On 01-Jun-2004 Alblas Huibert wrote:
Agreed but the recursion depth only ever gets to 9 (thats not much). The actual
> Locks cannot be released until the scripts ends,
Fair enough but at most I would expect a read lock per ls and I don't see why
> The way you describe your sript it should release
This is what I suspect. It may be an issue in SVN::Client or in the subversion
This worries me alot. We have spent a great deal of effort moving to subversion
sh-2.05$ svnadmin recover linux-x86/
and running the script again gives:
[file:///var/subversion/distribution/linux-x86]
immediately - that is on the first ls. Each run of svnadmin recover allow the
> Exausting your resources is very simple using recursion :-)
Yes we could do that. The script itself is not that important to us - we can
At present our repository is broken. This is not the end of the world as I was
> Huibert Alblas
Martin
--
Martin J. Evans
Easysoft Ltd, UK
Development
> -----Ursprüngliche Nachricht-----
> Von: Martin J. Evans [mailto:martin.evans@easysoft.com]
> Gesendet: Dienstag, 1. Juni 2004 10:10
> An: users@subversion.tigris.org
> Cc: sussman@collab.net
> Betreff: Re: svn client fails with Berkeley DB error Cannot allocate memory
> - repository wedges
>
>
> Ben,
>
> On 31-May-2004 Ben Collins-Sussman wrote:
>> On Fri, 2004-05-28 at 06:06, Martin J. Evans wrote:
>>> Berkeley DB error while opening 'transactions' table for filesys tem
>>> /var/subversion/distribution/linux-x86/db:
>>> Cannot allocate memory
>>
>> IIRC, this error often means that BDB has run out of lock objects.
>> Try increasing the the number of locks in your repos/db/DB_CONFIG file
>> and then run 'svnadmin recover'.
>
> Thanks for that. I take you are referring to:
>
> set_lk_max_locks 2000
> set_lk_max_lockers 2000
> set_lk_max_objects 2000
>
> Bumping all of these to 4000 did not help. When using file URL:
>
> Couldn't open a repository: Unable to open an ra_local session to URL:
> Unable to open repository
> 'file:///var/subversion/distribution/linux-x86/common/libraries/extras/tags'
>:
> Berkeley DB error while opening 'uuids' table for filesystem
> /var/subversion/distribution/linux-x86/db:
> Cannot allocate memory at /tmp/x.pl line 11
>
> line 11 is an SVN::Client ls call.
>
> Once I've run the script:
>
> sh-2.05$ svnadmin recover linux-x86
> Please wait; recovering the repository may take some time...
> svn: DB_RUNRECOVERY: Fatal error, run database recovery
>
> The last lines of strace show (I don't see the reason for the carp):
>
> stat64("/var/subversion/distribution/linux-x86/db/nodes",
> {st_mode=S_IFREG|0644, st_size=86016, ...}) = 0
> stat64("/var/subversion/distribution/linux-x86/db/nodes",
> {st_mode=S_IFREG|0644, st_size=86016, ...}) = 0
> open("/var/subversion/distribution/linux-x86/db/nodes", O_RDWR|O_LARGEFILE)
> = 4
> fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
> read(4, "\6\0\0\0$\364\0\0\0\0\0\0b1\5\0\t\0\0\0\0\20\0\0\0\t\0"..., 512) =
> 512
> close(4) = 0
> stat64("/var/subversion/distribution/linux-x86/db/nodes",
> {st_mode=S_IFREG|0644, st_size=86016, ...}) = 0
> open("/var/subversion/distribution/linux-x86/db/nodes", O_RDWR|O_LARGEFILE)
> = 4
> fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
> fstat64(4, {st_mode=S_IFREG|0644, st_size=86016, ...}) = 0
> brk(0x8354000) = 0x8354000
> munmap(0x40640000, 16384) = 0
> munmap(0x4048a000, 327680) = 0
> munmap(0x404da000, 1466368) = 0
> close(4) = 0
> munmap(0x40448000, 270336) = 0
> munmap(0x40018000, 8192) = 0
> stat64("/usr/local/lib/perl5/5.8.2/i686-linux/Carp/Heavy.pmc", 0xbfffef5c) =
> -1 ENOENT (No such file or directory)
> open("/usr/local/lib/perl5/5.8.2/i686-linux/Carp/Heavy.pm",
> O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
> stat64("/usr/local/lib/perl5/5.8.2/Carp/Heavy.pmc", 0xbfffef5c) = -1 ENOENT
> (No such file or directory) open("/usr/local/lib/perl5/5.8.2/Carp/Heavy.pm",
> O_RDONLY|O_LARGEFILE) = 4
> brk(0x8355000) = 0x8355000
> fstat64(4, {st_mode=S_IFREG|0444, st_size=5918, ...}) = 0 old_mmap(NULL,
> 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
> read(4, "# Carp::Heavy uses some variable"..., 4096) = 4096
> brk(0x8357000) = 0x8357000
> brk(0x8358000) = 0x8358000
> brk(0x8359000) = 0x8359000
> brk(0x835a000) = 0x835a000
> brk(0x835b000) = 0x835b000
> brk(0x835c000) = 0x835c000
> brk(0x835d000) = 0x835d000
> brk(0x835e000) = 0x835e000
> brk(0x835f000) = 0x835f000
> brk(0x8360000) = 0x8360000
> brk(0x8361000) = 0x8361000
> brk(0x8362000) = 0x8362000
> read(4, ";\n my $caller = caller($i);\n "..., 4096) = 1822
> brk(0x8363000) = 0x8363000
> brk(0x8364000) = 0x8364000
> brk(0x8365000) = 0x8365000
> brk(0x8366000) = 0x8366000
> read(4, "", 4096) = 0
> close(4) = 0
> munmap(0x40018000, 4096) = 0
> write(2, "Couldn\'t open a repository: Unab"..., 294) = 294 fcntl64(3,
> F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
> close(3) = 0
> munmap(0x40017000, 4096) = 0
> _exit(255) = ?
>
>
>> I'd like to know what your script is doing (or what Web::SVN is doing)
>> that is so lock-intensive...
>
> The script simply does an ls on the repository then walks down the
> files/dirs recursively calling itself on dirs. However, for each file/dir it
> gets svn:externals to see if any are defined. The idea was to produce a tree
> of the repository because the repository has a large number of svn:externals
> references. I can mail you seperately with the tree output which would give
> you an idea of the repository structure. The script was in my last email.
>
> BTW, all that is required is running the script - there is no one else
> accessing the repository.
>
> Let me know if these is any further info that could help.
>
> Martin
> --
> Martin J. Evans
> Easysoft Ltd, UK
> Development
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Jun 1 10:59:23 2004
|
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.