Author: breser
Date: Thu Mar 28 21:30:14 2013
New Revision: 1462310
URL: http://svn.apache.org/r1462310
Log:
Reintegrate the 1.6.x-r1443929 branch:
* r1443929
Introduce a subpool.
Justifcation:
Better server memory use.
Branch:
^/subversion/branches/1.6.x-r1443929
Votes:
+1: philip, stefan2, breser
Modified:
subversion/branches/1.6.x/ (props changed)
subversion/branches/1.6.x/STATUS
subversion/branches/1.6.x/subversion/mod_dav_svn/deadprops.c
Propchange: subversion/branches/1.6.x/
------------------------------------------------------------------------------
Merged /subversion/branches/1.6.x-r1443929:r1443951-1462309
Merged /subversion/trunk:r1443929
Modified: subversion/branches/1.6.x/STATUS
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/STATUS?rev=1462310&r1=1462309&r2=1462310&view=diff
==============================================================================
--- subversion/branches/1.6.x/STATUS (original)
+++ subversion/branches/1.6.x/STATUS Thu Mar 28 21:30:14 2013
@@ -84,15 +84,6 @@ Veto-blocked changes:
Approved changes:
=================
- * r1443929
- Introduce a subpool.
- Justifcation:
- Better server memory use.
- Branch:
- ^/subversion/branches/1.6.x-r1443929
- Votes:
- +1: philip, stefan2, breser
-
* r947833
Remove deadprops rollback code.
Justification:
Modified: subversion/branches/1.6.x/subversion/mod_dav_svn/deadprops.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/subversion/mod_dav_svn/deadprops.c?rev=1462310&r1=1462309&r2=1462310&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/mod_dav_svn/deadprops.c (original)
+++ subversion/branches/1.6.x/subversion/mod_dav_svn/deadprops.c Thu Mar 28
21:30:14 2013
@@ -134,6 +134,7 @@ save_value(dav_db *db, const dav_prop_na
{
const char *propname;
svn_error_t *serr;
+ apr_pool_t *subpool;
/* get the repos-local name */
get_repos_propname(db, name, &propname);
@@ -151,10 +152,14 @@ save_value(dav_db *db, const dav_prop_na
}
/* Working Baseline or Working (Version) Resource */
+
+ /* A subpool to cope with mod_dav making multiple calls, e.g. during
+ PROPPATCH with multiple values. */
+ subpool = svn_pool_create(db->resource->pool);
if (db->resource->baselined)
if (db->resource->working)
serr = svn_repos_fs_change_txn_prop(db->resource->info->root.txn,
- propname, value, db->resource->pool);
+ propname, value, subpool);
else
{
/* ### VIOLATING deltaV: you can't proppatch a baseline, it's
@@ -168,19 +173,21 @@ save_value(dav_db *db, const dav_prop_na
propname, value, TRUE, TRUE,
db->authz_read_func,
db->authz_read_baton,
- db->resource->pool);
+ subpool);
/* Tell the logging subsystem about the revprop change. */
dav_svn__operational_log(db->resource->info,
svn_log__change_rev_prop(
db->resource->info->root.rev,
propname,
- db->resource->pool));
+ subpool));
}
else
serr = svn_repos_fs_change_node_prop(db->resource->info->root.root,
get_repos_path(db->resource->info),
- propname, value, db->resource->pool);
+ propname, value, subpool);
+ svn_pool_destroy(subpool);
+
if (serr != NULL)
return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
NULL,
@@ -395,6 +402,7 @@ db_remove(dav_db *db, const dav_prop_nam
{
svn_error_t *serr;
const char *propname;
+ apr_pool_t *subpool;
/* get the repos-local name */
get_repos_propname(db, name, &propname);
@@ -403,6 +411,10 @@ db_remove(dav_db *db, const dav_prop_nam
if (propname == NULL)
return NULL;
+ /* A subpool to cope with mod_dav making multiple calls, e.g. during
+ PROPPATCH with multiple values. */
+ subpool = svn_pool_create(db->resource->pool);
+
/* Working Baseline or Working (Version) Resource */
if (db->resource->baselined)
if (db->resource->working)
@@ -419,11 +431,12 @@ db_remove(dav_db *db, const dav_prop_nam
propname, NULL, TRUE, TRUE,
db->authz_read_func,
db->authz_read_baton,
- db->resource->pool);
+ subpool);
else
serr = svn_repos_fs_change_node_prop(db->resource->info->root.root,
get_repos_path(db->resource->info),
- propname, NULL, db->resource->pool);
+ propname, NULL, subpool);
+ svn_pool_destroy(subpool);
if (serr != NULL)
return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
"could not remove a property",