On Feb 1, 2008 4:31 PM, David Glasser <glasser_at_davidglasser.net> wrote:
> This revision caused the segfault described in
> http://svn.haxx.se/dev/archive-2008-02/0064.shtml.
>
> (Ah, binary search.)
>
> (Ah, pools.)
I've tracked it down a little more, to svn_client_merge_peg3:
> > @@ -4801,6 +4833,7 @@
> > const char *wc_repos_root, *source_repos_root;
> > svn_opt_revision_t working_rev;
> > svn_ra_session_t *ra_session;
> > + apr_pool_t *sesspool;
> >
> > /* No ranges to merge? No problem. */
> > if (ranges_to_merge->nelts == 0)
> > @@ -4828,9 +4861,10 @@
> > &working_rev, adm_access, ctx, pool));
> >
> > /* Open an RA session to our source URL, and determine its root URL. */
> > + sesspool = svn_pool_create(pool);
> > SVN_ERR(svn_client__open_ra_session_internal(&ra_session,
> > URL, NULL, NULL, NULL,
> > - FALSE, FALSE, ctx, pool));
> > + FALSE, TRUE, ctx, sesspool));
> > SVN_ERR(svn_ra_get_repos_root(ra_session, &source_repos_root, pool));
> >
> > /* Normalize our merge sources. */
> > @@ -4838,6 +4872,9 @@
> > source_repos_root, peg_revision,
> > ranges_to_merge, ra_session, ctx, pool));
> >
> > + /* We're done with our little RA session. */
> > + svn_pool_destroy(sesspool);
> > +
> > /* Do the real merge! (We say with confidence that our merge
> > sources are both ancestral and related.) */
> > SVN_ERR(do_merge(merge_sources, target_wcpath, entry, adm_access,
Swapping this svn_pool_destroy with the do_merge that follows it saves
the day. Perhaps merge_sources contains something allocated in
sesspool?
--dave
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-02-02 01:51:01 CET