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

Re: Issue 2732 (was Unhandled exception when stopping apache)

From: D.J. Heap <djheap_at_gmail.com>
Date: 2007-04-02 00:44:29 CEST

On 4/1/07, Branko Čibej <brane@xbc.nu> wrote:
[snip]
> > If my understanding is correct, svn_fs_bdb__init is used to init the
> > whole module, and base_serialized_init is used to init an svn_fs_t.
> > It seems like that is still early enough to init the cache, though,
> > isn't it?
>
> Nope ...
>
> You need an open BDB environment before you can create an svn_fs_t, and
> you need an environment cache before you can safely open an environment.
>
> Why d'you think I had all the migraines when I wrote the initial version
> of that cache? :)

Ah, yes, I see it is called *after* the open/create.

So, we need to rev svn_fs_*__init to take another fs-global-pool
parameter and change the loader to use it. We'd probably have to
change the function name or something so old libraries don't get
called with unexpected parameters. They aren't public symbols and our
version checking doesn't allow using old modules anyway, so just
changing the name may be sufficient?

This is assuming the client has called svn_fs_initialize -- which
seems to me like it is already basically a requirement. The docs say
it will just leak, but actually it invokes 'undefined' behavior which
appears to do nothing sometimes but crashes at other times.

Any other ideas on a simpler way to fix this?

I've attached a thrown-together-in-5-mins minmal patch (not
style-formatted correctly, no doc updates, didn't change the init
function names, etc) that appears to resolve the issue from inital
testing. Does the basic approach look viable? If so, I'll refine it
and post it for more thorough review.

DJ

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

Received on Mon Apr 2 00:44:44 2007

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.