Stefan Sperling wrote on Fri, Sep 17, 2010 at 12:03:20 +0200:
> On Fri, Sep 17, 2010 at 08:17:22AM +0100, Daniel Shahaf wrote:
> > https://svn.apache.org/repos/asf/subversion/branches/atomic-revprop/BRANCH-README
> > 
> > The atomic-revprop branch, today, implements marshalling of the
> > OLD_VALUE_P parameter over all RA layers to the repos and fs layers.
> > (See svn_fs_change_rev_prop2() in trunk for a description of that 
> > parameter.)
> > The branch does not yet promise a specific error code will be returned if
> > the revprop change fails /due to the atomicity requirement/.  Ensuring
> > a specific error code is the bulk of the remaining work on the branch;
> > implementing it requires teaching ra_dav how to marshal svn_error_t chains
> > over the wire.
> >
> > In other words, the branch implements the API correctly and (from an
> > FS-oriented point of view) completely, and only the ability to signal to
> > the caller what sort of error condition occurred is absent.  That
> > absence means a caller cannot tell[*] whether the propchange failure was
> > due to requesting an atomic change or due to some other reason.
> 
> Why do we need to return multiple errors when setting the revprop fails
> due to non-atomicity?
> Can't the server just select the proper error code from the chain
> and return that to the client? In a recent commit by cmike something
> similar was done (r997466).
>  

ra_svn already marshals error chains, and I believe cmike's fix was for
the case where the error chain is headed by *two* SVN_ERR_RA_SVN_CMD_ERR
elements (rather than just one).

What I have to do now is make ra_dav preserve the error code in the
first place.  You're correct, though, in observing that I need to
preserve just the topmost error code (as opposed to the whole chain).

> > Is it fine to merge the branch to trunk, given this state?  Is the
> > branch, in its current state, fit for release (in 1.7), or is additional
> > work (possibly including the abovementioned errorcode work) required
> > prior to releasing it?
> 
> I don't really like the error string comparison. I'd still be happy to
> see this in trunk, with comments indicating how the error handling should
> be done instead.
> 
> Stefan

Reply via email to