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

Re: Another 1.4 release critical bug

From: Garrett Rooney <rooneg_at_electricjellyfish.net>
Date: 2006-08-03 22:07:03 CEST

On 8/3/06, Garrett Rooney <rooneg@electricjellyfish.net> wrote:

> New this was too easy to be correct... Ok, back to the drawing board...

All right, I dislike this solution, but I've run out of other ideas.
Here's a patch that adds yet another kinda-sorta-optional
initialization function that handles the global dso pool creation. To
be entirely correct it must be run before any pool is created that
will be used to allocate anything from within a DSO loaded library.
I've included changes to svn_cmdline_init and mod_dav_svn to get this
called at the appropriate time in each. If you don't call it then the
DSO stuff will initialize itself on demand, but it's not certain to
work correctly in the face of --enable-dso.

This patch also rolls back the previous "fix" to the problem, as most
of it is no longer needed.

Any comments are much appreciated.


Add an initialization function for a global DSO pool and a function to
use it when loading DSOs. Assuming the initialization function is called
sufficiently early this fixes --enable-dso, really this time.

* subversion/libsvn_ra/ra_loader.c
  Include svn_dso.h.
  (load_ra_module): Use the new svn_dso_load function.

* subversion/include/svn_dso.h: New file.

* subversion/include/svn_fs.h
  (svn_fs_initialize): Revert changes to comments made in r20932.

* subversion/libsvn_fs/fs-loader.c
  Include svn_dso.h.
  (dso_cache): Removed.
  (load_module): Use svn_dso_load.
  (uninit): New cleanup function.
  (svn_fs_initialize): Create common_pool from pool, not as a global
   pool. Set up cleanup function.

* subversion/libsvn_subr/cmdline.c
  Include svn_dso.h.
  (svn_cmdline_init): Call svn_dso_initialize.

* subversion/libsvn_subr/dso.c: New file.

* subversion/mod_dav_snv/mod_dav_svn.c
  Include svn_dso.h.
  (init_dso): New function.
  (register_hooks): Set up init_dso hook.

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

Received on Thu Aug 3 22:09:34 2006

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.