You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Blair Zajac <bl...@orcaware.com> on 2011/07/24 16:08:53 UTC

Re: svn commit: r1150368 - in /subversion/trunk/subversion/libsvn_client: commit.c commit_util.c

On Jul 24, 2011, at 6:50 AM, rhuijben@apache.org wrote:

> Author: rhuijben
> Date: Sun Jul 24 13:50:44 2011
> New Revision: 1150368
> 
> URL: http://svn.apache.org/viewvc?rev=1150368&view=rev
> Log:
> Clear iterpools in two error conditions during commit to avoid deleting files
> with open handles when aborting fs transactions.
> 
> The txdelta part of this patch looks like a small regression introduced by
> switching from subpools to dual pool handling.
> 
> * subversion/libsvn_client/commit.c
>  (svn_client_commit5): Clear iterpool before aborting the edit to flush the
>    most commonly passed scratch pool to the commit processing. This to avoid
>    possible similar problems as that caught in svn_client__do_commit.
> 
> * subversion/libsvn_client/commit_util.c
>  (svn_client__do_commit): Clear iterpool when svn_wc_transmit_text_deltas3
>    fails. The txdelta infrastructure doesn't have a well defined abort
>    procedure so the current implementations rely on pool cleanup.
>    But when iterpool isn't cleared here we call the editor's abort before
>    this cleanup runs.

Do you mean destroy here, as that's what the commit does?

Blair


RE: svn commit: r1150368 - in /subversion/trunk/subversion/libsvn_client: commit.c commit_util.c

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Blair Zajac [mailto:blair@orcaware.com]
> Sent: zondag 24 juli 2011 16:09
> To: dev@subversion.apache.org
> Cc: commits@subversion.apache.org
> Subject: Re: svn commit: r1150368 - in
> /subversion/trunk/subversion/libsvn_client: commit.c commit_util.c
> 
> 
> On Jul 24, 2011, at 6:50 AM, rhuijben@apache.org wrote:
> 
> > Author: rhuijben
> > Date: Sun Jul 24 13:50:44 2011
> > New Revision: 1150368
> >
> > URL: http://svn.apache.org/viewvc?rev=1150368&view=rev
> > Log:
> > Clear iterpools in two error conditions during commit to avoid deleting
files
> > with open handles when aborting fs transactions.
> >
> > The txdelta part of this patch looks like a small regression introduced
by
> > switching from subpools to dual pool handling.
> >
> > * subversion/libsvn_client/commit.c
> >  (svn_client_commit5): Clear iterpool before aborting the edit to flush
the
> >    most commonly passed scratch pool to the commit processing. This to
> avoid
> >    possible similar problems as that caught in svn_client__do_commit.
> >
> > * subversion/libsvn_client/commit_util.c
> >  (svn_client__do_commit): Clear iterpool when
> svn_wc_transmit_text_deltas3
> >    fails. The txdelta infrastructure doesn't have a well defined abort
> >    procedure so the current implementations rely on pool cleanup.
> >    But when iterpool isn't cleared here we call the editor's abort
before
> >    this cleanup runs.
> 
> Do you mean destroy here, as that's what the commit does?

The first step of a destroy is a clear and it is really the clearing that
matters here.
(I think the first clear should be a destroy, but I think the second one is
correct).

	Bert



RE: svn commit: r1150368 - in /subversion/trunk/subversion/libsvn_client: commit.c commit_util.c

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Blair Zajac [mailto:blair@orcaware.com]
> Sent: zondag 24 juli 2011 16:09
> To: dev@subversion.apache.org
> Cc: commits@subversion.apache.org
> Subject: Re: svn commit: r1150368 - in
> /subversion/trunk/subversion/libsvn_client: commit.c commit_util.c
> 
> 
> On Jul 24, 2011, at 6:50 AM, rhuijben@apache.org wrote:
> 
> > Author: rhuijben
> > Date: Sun Jul 24 13:50:44 2011
> > New Revision: 1150368
> >
> > URL: http://svn.apache.org/viewvc?rev=1150368&view=rev
> > Log:
> > Clear iterpools in two error conditions during commit to avoid deleting
files
> > with open handles when aborting fs transactions.
> >
> > The txdelta part of this patch looks like a small regression introduced
by
> > switching from subpools to dual pool handling.
> >
> > * subversion/libsvn_client/commit.c
> >  (svn_client_commit5): Clear iterpool before aborting the edit to flush
the
> >    most commonly passed scratch pool to the commit processing. This to
> avoid
> >    possible similar problems as that caught in svn_client__do_commit.
> >
> > * subversion/libsvn_client/commit_util.c
> >  (svn_client__do_commit): Clear iterpool when
> svn_wc_transmit_text_deltas3
> >    fails. The txdelta infrastructure doesn't have a well defined abort
> >    procedure so the current implementations rely on pool cleanup.
> >    But when iterpool isn't cleared here we call the editor's abort
before
> >    this cleanup runs.
> 
> Do you mean destroy here, as that's what the commit does?

The first step of a destroy is a clear and it is really the clearing that
matters here.
(I think the first clear should be a destroy, but I think the second one is
correct).

	Bert