Merge r1842010, r1841225, r1862039, r1862040, r1862042 from trunk:
* dav_stream_response processes data that has been allocated from the propdb
pool. Hence close the propdb *after* dav_stream_response which clears thei
probdb pool.
* Doing a PROPFIND on a large collection e.g. 50.000 elements can easily
consume 1 GB of memory as the subrequests and propdb pools are not
destroyed and cleared after each element was handled.
Do this now. There is one case in dav_get_props where elem->priv
lives longer then the propdb pool. In this case allocate from r->pool.
Furthermore also recycle propdb's which allows to clear the propdb's
pools instead of destroying them and creating them again.
Simplify handling of short-lived pool for dav_propdb in mod_dav. No
functional change.
* modules/dav/main/props.c (dav_popen_propdb): Rename from
dav_open_propdb, take a pool argument.
(dav_open_propdb): Reimplement in terms of above, using
r->pool.
(dav_propfind_walker): Switch to using dav_open_propdb
with scratchpool.
* modules/dav/main/props.c (dav_do_prop_subreq): Allocate escaped URI
out of propdb pool, fixing small per-resource leak during a PROPFIND
walk.
Submitted by: jorton, rpluem
* modules/dav/main/mod_dav.c (dav_send_multistatus): Tag the pool.
Reviewed by: rpluem, jorton, jim
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1862410 13f79535-47bb-0310-9956-
ffa450edef68