You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Todd W <tr...@sbcglobal.net> on 2005/06/01 19:46:52 UTC

occational repository errors using language bindings

I use subversion in my application. I access the repository through the perl
bindings. This all works great... sometimes. I've went to revision 950 in
two weeks. Probably 4 times now, I get errors from subversion that look
mostly like this:

Couldn't open a repository: Unable to open an ra_local session to URL:
Unable to open repository
'file:///usr/local/repos/articles/trunk/1115733188': Berkeley DB error
while opening 'uuids' table for filesystem /usr/local/repos/db:
Cannot allocate memory: bdb: Lock table is out of available locker entries
at /usr/local/newsdesk/lib/perl/News/Article.pm line 106

This is the method containing line 106:

sub content {
  my( $self, $revision ) = @_;
  $revision = (defined($revision) && ($revision ne '')) ? $revision :
'HEAD';
  my $ctx = SVN::Client->new();
  my $file = IO::Scalar->new();
  $ctx->cat($file, $self->filepath, $revision); # 106
  return( $file );
}

This is where I use the "svn cat" equivalent. All accesses to the repository
are made with the file: protocol. The error is not always the same, but I
dont have other samples to send.

In this class, I do $ctx->add()s and and $ctx->delete()s, all followed by a
$ctx->commit, and some log browsing.

A "$ svnadmin recover /path/to/repos" always gets me going again, but
obviously I'd like it to never happen.

Since the failures are intermittent, the only thing I can think of is db
corruption because of concurrent accesses (its a multi user system).

Is this what others would guess that the problem is?

If so, could I have sucess moving the $ctx->commit()s to a cron job that ran
every 5 minutes?

My problem with this is what happens when the application does subversion
reads while the cron job is commiting? Won't I be right back where I
started?

[root@host articles]# rpm -qa | grep 'subversion'
subversion-devel-1.1.4-0.1.1.fc2.rf
subversion-1.1.4-0.1.1.fc2.rf
subversion-perl-1.1.4-0.1.1.fc2.rf

Thank you for your time, Any advice is very much appreciated.

Todd W.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: occational repository errors using language bindings

Posted by Ryan Schmidt <su...@ryandesign.com>.
On 01.06.2005, at 21:46, Todd W wrote:

> Couldn't open a repository: Unable to open an ra_local session to URL:
> Unable to open repository
> 'file:///usr/local/repos/articles/trunk/1115733188': Berkeley DB error
> while opening 'uuids' table for filesystem /usr/local/repos/db:
> Cannot allocate memory: bdb: Lock table is out of available locker 
> entries
> at /usr/local/newsdesk/lib/perl/News/Article.pm line 106

I believe there is a way to increase the available space in the lock 
table. The mailing list archine at http://svn.haxx.se should have 
recent discussions on this topic. You also might consider switching 
from BDB to FSFS, which I believe cannot suffer from this problem.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

How to organize a Subversion based code tree

Posted by Vishal <vs...@yahoo.com>.
Hello,

We are setting up a new SVN repository for all of our code ( quite large) and I am trying to find
out what would be the best way to organize all this code on the repository. I have projects A, B,
C ...etc and they are independent.

Should I set up separate respositories for each of A, B, C etc or should I make a single
repository for all of them. Usually people do checkout all the projects (that is what they have
been doing..) but work only on a few projects at a time. Since the verison number of the tree gets
updated with every single commit, then it might be uncomfortable for users to find out what exact
revision number they want to revert to, given that there will be many more revisions apart from
theirs.

However, if I set up separate repositories for all the projects, what should I do about the common
files. Also, this makes it cumbersome at the administrator's end to take care of so many
repostories.

I would like to know your expert suggesstions in this case.

Thanks and best regards,
Vishal

--- Todd W <tr...@sbcglobal.net> wrote:

> I use subversion in my application. I access the repository through the perl
> bindings. This all works great... sometimes. I've went to revision 950 in
> two weeks. Probably 4 times now, I get errors from subversion that look
> mostly like this:
> 
> Couldn't open a repository: Unable to open an ra_local session to URL:
> Unable to open repository
> 'file:///usr/local/repos/articles/trunk/1115733188': Berkeley DB error
> while opening 'uuids' table for filesystem /usr/local/repos/db:
> Cannot allocate memory: bdb: Lock table is out of available locker entries
> at /usr/local/newsdesk/lib/perl/News/Article.pm line 106
> 
> This is the method containing line 106:
> 
> sub content {
>   my( $self, $revision ) = @_;
>   $revision = (defined($revision) && ($revision ne '')) ? $revision :
> 'HEAD';
>   my $ctx = SVN::Client->new();
>   my $file = IO::Scalar->new();
>   $ctx->cat($file, $self->filepath, $revision); # 106
>   return( $file );
> }
> 
> This is where I use the "svn cat" equivalent. All accesses to the repository
> are made with the file: protocol. The error is not always the same, but I
> dont have other samples to send.
> 
> In this class, I do $ctx->add()s and and $ctx->delete()s, all followed by a
> $ctx->commit, and some log browsing.
> 
> A "$ svnadmin recover /path/to/repos" always gets me going again, but
> obviously I'd like it to never happen.
> 
> Since the failures are intermittent, the only thing I can think of is db
> corruption because of concurrent accesses (its a multi user system).
> 
> Is this what others would guess that the problem is?
> 
> If so, could I have sucess moving the $ctx->commit()s to a cron job that ran
> every 5 minutes?
> 
> My problem with this is what happens when the application does subversion
> reads while the cron job is commiting? Won't I be right back where I
> started?
> 
> [root@host articles]# rpm -qa | grep 'subversion'
> subversion-devel-1.1.4-0.1.1.fc2.rf
> subversion-1.1.4-0.1.1.fc2.rf
> subversion-perl-1.1.4-0.1.1.fc2.rf
> 
> Thank you for your time, Any advice is very much appreciated.
> 
> Todd W.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
> 
> 


=======================================
A train station is where the train stops. 
A bus station is where the bus stops. 
 
On my desk, I have a work station...  !!
 
  















__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org