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

Re: BDB 4.4 + forking svnserve weirdness (issue 2564)

From: Garrett Rooney <rooneg_at_electricjellyfish.net>
Date: 2006-06-19 18:21:31 CEST

On 6/13/06, Branko ╚ibej <brane@xbc.nu> wrote:

> Well, it turns out that I did mess up, in a way, but it was an
> unavoidable way with the method described above. The short story is that
> we can't afford to close the DB_ENV handle while FS objects are still
> around, because those objects own handles to the databases themselves.
> Even if they didn't, we still couldn't afford to close the environment,
> because the FS object cleanup may have to access the environment. The
> only way to avoid that would be to pepper the code with validation
> checks wherever we call a BDB function, and I want to avoid that at all
> costs.
>
> There's another option, one I had thought about in the past: in order to
> keep the environment descriptor (and its reference count!) around long
> enough, I'd have to allocate it from the heap, not from a pool. That's
> not as sexy as the current code and it means mixing malloc and
> apr_palloc, but it's much more likely to actually work.
>
> BTW, Garrett's fix in svnserve/main.c elegantly avoids this problem
> /within svnserve/, but we we don't have that kind of control over pool
> lifetimes in general. I shudder to imagine what happens in a GUI, say,
> TSVN...
>
> Since the whole point of the BDB-4.4 work was to make that back-end
> stable, we can't leave things as they are. I'm working on a patch now.

Hey Branko, how's this going?

Is there any way some of the rest of us can help with this work?

-garrett
Received on Mon Jun 19 18:22:21 2006

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