Author: julianfoad
Date: Fri Sep 28 09:28:22 2018
New Revision: 1842225

URL: http://svn.apache.org/viewvc?rev=1842225&view=rev
Log:
Merge the r1841725 group from trunk:

 * r1841725, r1841850
   Use an iterpool during interactive conflict resolution.
   Justification:
     Reduces the chance of resource exhaustion in case the resolver goes
     into an endless loop due to a bug (see r1841731 for an example).
   Votes:
     +1: stsp (without r1841850)
     +1: rhuijben, julianfoad, jcorvel

Modified:
    subversion/branches/1.11.x/   (props changed)
    subversion/branches/1.11.x/STATUS
    subversion/branches/1.11.x/subversion/svn/conflict-callbacks.c

Propchange: subversion/branches/1.11.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Sep 28 09:28:22 2018
@@ -100,4 +100,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1840990-1840991,1840995,1840997,1841059,1841079,1841091,1841098,1841136,1841180,1841272,1841481,1841524-1841525,1841567,1841600-1841602,1841606,1841719,1841731,1841736,1841742-1841743,1841753-1841754,1841822,1841867
+/subversion/trunk:1840990-1840991,1840995,1840997,1841059,1841079,1841091,1841098,1841136,1841180,1841272,1841481,1841524-1841525,1841567,1841600-1841602,1841606,1841719,1841725,1841731,1841736,1841742-1841743,1841753-1841754,1841822,1841850,1841867

Modified: subversion/branches/1.11.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.11.x/STATUS?rev=1842225&r1=1842224&r2=1842225&view=diff
==============================================================================
--- subversion/branches/1.11.x/STATUS (original)
+++ subversion/branches/1.11.x/STATUS Fri Sep 28 09:28:22 2018
@@ -29,19 +29,9 @@ Veto-blocked changes:
 Approved changes:
 =================
 
- * r1841725, r1841850
-   Use an iterpool during interactive conflict resolution.
-   Justification:
-     Reduces the chance of resource exhaustion in case the resolver goes
-     into an endless loop due to a bug (see r1841731 for an example).
-   Votes:
-     +1: stsp (without r1841850)
-     +1: rhuijben, julianfoad, jcorvel
-
  * r1842090
    Warn on the combination of swig-3.0.8 --with-ruby due to a known issue.
    Justification:
      Help users identify a known-broken configuration.
    Votes:
      +1: danielsh, julianfoad, jamessan
-

Modified: subversion/branches/1.11.x/subversion/svn/conflict-callbacks.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.11.x/subversion/svn/conflict-callbacks.c?rev=1842225&r1=1842224&r2=1842225&view=diff
==============================================================================
--- subversion/branches/1.11.x/subversion/svn/conflict-callbacks.c (original)
+++ subversion/branches/1.11.x/subversion/svn/conflict-callbacks.c Fri Sep 28 
09:28:22 2018
@@ -1977,7 +1977,6 @@ resolve_conflict_interactively(svn_boole
                                svn_cmdline_prompt_baton_t *pb,
                                svn_cl__conflict_stats_t *conflict_stats,
                                svn_client_ctx_t *ctx,
-                               apr_pool_t *result_pool,
                                apr_pool_t *scratch_pool)
 {
   svn_boolean_t text_conflicted;
@@ -2011,7 +2010,7 @@ resolve_conflict_interactively(svn_boole
   if (props_conflicted->nelts > 0)
     SVN_ERR(handle_prop_conflicts(resolved, postponed, quit, &merged_propval,
                                   path_prefix, pb, editor_cmd, config, 
conflict,
-                                  conflict_stats, ctx, result_pool, 
scratch_pool));
+                                  conflict_stats, ctx, scratch_pool, 
scratch_pool));
   if (tree_conflicted)
     SVN_ERR(handle_tree_conflict(resolved, postponed, quit, 
printed_description,
                                  conflict, path_prefix, pb, conflict_stats, 
ctx,
@@ -2248,11 +2247,14 @@ svn_cl__resolve_conflict(svn_boolean_t *
       svn_boolean_t postponed = FALSE;
       svn_boolean_t printed_description = FALSE;
       svn_error_t *err;
+      apr_pool_t *iterpool;
 
       *quit = FALSE;
 
+      iterpool = svn_pool_create(scratch_pool);
       while (!resolved && !postponed && !*quit)
         {
+          svn_pool_clear(iterpool);
           err = resolve_conflict_interactively(&resolved, &postponed, quit,
                                                external_failed,
                                                printed_summary,
@@ -2261,7 +2263,7 @@ svn_cl__resolve_conflict(svn_boolean_t *
                                                editor_cmd, ctx->config,
                                                path_prefix, pb,
                                                conflict_stats, ctx,
-                                               scratch_pool, scratch_pool);
+                                               iterpool);
           if (err && err->apr_err == SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE)
             {
               /* Conflict resolution has failed. Let the user try again.
@@ -2273,6 +2275,7 @@ svn_cl__resolve_conflict(svn_boolean_t *
             }
           SVN_ERR(err);
         }
+      svn_pool_destroy(iterpool);
     }
   else if (option_id != svn_client_conflict_option_postpone)
     SVN_ERR(mark_conflict_resolved(conflict, option_id,


Reply via email to