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

Re: core dump with svn r6178

From: Patrick Mayweg <mayweg_at_qint.de>
Date: 2003-06-20 06:47:04 CEST

Hi,
I had a NULL-pointer access at the same place last week. I think I have it
tracked down to where it realy went wrong.
In the file subversion/libsvn_ra_dav/fetch.c is the function
static svn_error_t * reporter_finish_report(void *report_baton)

It contains the following code:

  err = svn_ra_dav__get_vcc(&vcc, rb->ras->sess, rb->ras->url, rb->ras->pool);
  if (err)
    {
      (void) apr_file_close(rb->tmpfile);
      return err;
    }

  err = svn_ra_dav__parsed_request(rb->ras->sess, "REPORT", vcc,
                                   NULL, rb->tmpfile, NULL,
                                   report_elements, validate_element,
                                   start_element, end_element, rb,
                                   NULL, rb->ras->pool);

  if (err)
    {
      /* If running the update-report on the VCC failed, it's probably
         an older server. Fall back to the old-style, by requesting
         the report on the src-url itself. This runs a risk of
         choking on issue #891 ("REPORT fails on item not in HEAD"),
         but hey, it's better than nothing. */

      /* ### someday, remove this fallback code. */

      svn_error_clear (err);
      err = svn_ra_dav__parsed_request(rb->ras->sess, "REPORT",
                                       rb->ras->root.path,
                                       NULL, rb->tmpfile, NULL,
                                       report_elements, validate_element,
                                       start_element, end_element, rb,
                                       NULL, rb->ras->pool);
    }

The retry after the error is the problem. In my case the REPORT request was send
ok by the server but the client network code returned "connection reset" error
after most of the report request was processed. In this case you cannot restart
the request on the same report_beacon, because there is state in the beacon.
Like that rb->dirs->nelts is not 0. The code in
static int start_element(void *userdata, const struct ne_xml_elm *elm,
                         const char **atts)
assummes that only on the first OPEN-DIRECTORY element there is no "name"
attribute. Unfortunately I do not known enough about the report_beacon, to
provide a patch which tests if it has already be used.
Regrads,
Patrick

Christian Daudt wrote:

> On Thursday 19 June 2003 14:49, Greg Stein wrote:
> > On Thu, Jun 19, 2003 at 03:43:41PM -0500, cmpilato@collab.net wrote:
> > >...
> > > mean, if you have a Subversion server that's sending your client a
> > > bogus REPORT response, by golly we want to know about it.
> >
> > Yup. What version of the server do you have and which client? What version
> > of Neon is being used?
> >
>
> server/client (svn command-line client) at r6178, neon @ 0.23.7. All running
> on Linux 2.4.19 (Suse 8.1)
>
> csd
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Jun 20 06:48:22 2003

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.