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

Re: ra_svn problem with abort_report

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2003-10-12 17:01:36 CEST

Ben Collins-Sussman <sussman@collab.net> writes:

> Philip Martin <philip@codematters.co.uk> writes:
>
>> Now I'm using the attached patch, but it fails over ra_svn. Is the
>> client allowed to call abort_report after calling finsh_report? The
>> problem is that svnserve receives the abort_report when it is not
>> expecting it (at least it does when I add a flush call).
>
> Oops... the docs may not be clear, but I'm certain that when we
> designed the API, we meant abort_report() and finish_report() to be
> mutually exclusive ways of terminating the report procedure. It's not
> a surprise to me that any RA layer behaves this way.
>
> finish_report() is supposed to mean: "I'm completely done with the
> report." abort_report() is supposed to mean: "Never mind, I'm not
> going to finish this report-in-progress."

Was my original idea correct? Is svn_repos_finish_report responsible
for deleting the transactions if an error occurs driving the update
editor? Is the bug that this code in svn_repos_finish_report

  /* Drive the update-editor. */
  SVN_ERR (svn_repos_dir_delta (root1,
                                rbaton->base_path,
                                rbaton->target,
                                root2,
                                tgt_path,
                                rbaton->update_editor,
                                rbaton->update_edit_baton,
                                rbaton->text_deltas,
                                rbaton->recurse,
                                TRUE,
                                rbaton->ignore_ancestry,
                                rbaton->pool));
  
  /* Still here? Great! Throw out the transactions. */
  if (rbaton->txn)
    SVN_ERR (svn_fs_abort_txn (rbaton->txn));
  if (rbaton->txn2)
    SVN_ERR (svn_fs_abort_txn (rbaton->txn2));

should always throw out the transactions even if svn_repos_dir_delta
fails?

-- 
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Oct 12 17:02:25 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.