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,