[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Issue with browsing a SVN 1.9.2, schema 7, packed, repository

From: Evgeny Kotkov <evgeny.kotkov_at_visualsvn.com>
Date: Tue, 22 Dec 2015 22:06:53 +0300

Stefan Fuhrmann <stefan2_at_apache.org> writes:

> Thanks, it would be nice if could do something within Subversion because
> httpd and apr patches may take a while to trickle down into releases.
> Meanwhile, I posted a patch for mod_dav on the httpd dev list.

I took a look at what's happening, and I think the root cause of the problem
is that during a PROPFIND walk, we use the request pool for allocations that
happen per every walked entry. This occurs when mod_dav_svn/repos.c:do_walk()
calls dav_propfind_walker() with dav_walk_resource.pool pointing to the request
pool.

Here is what we could do about it:

(1) PROPFIND walker in do_walk() could use an iterpool when preparing the
    dav_walk_resource for dav_propfind_walker().

(2) The mod_dav's dav_open_propdb() function could use resource->pool when
    creating the subpool. In this particular case, it's not necessary to
    solve the long-standing problem with the lifetime of that subpool, and,
    since opening a propdb requires a dav_resource, doing so wouldn't violate
    propdb's lifetime guarantees.

I prepared two patches that target mod_dav and mod_dav_svn. Together, they
solve the memory usage problem in my experiments.

I plan on posting the patch for mod_dav to the corresponding thread [1] in
<dev_at_httpd.apache.org> — hopefully, tomorrow.

[1] https://mail-archives.apache.org/mod_mbox/httpd-dev/201512.mbox/%3C5678958E.20608%40apache.org%3E

Regards,
Evgeny Kotkov

Received on 2015-12-22 20:07:18 CET

This is an archived mail posted to the Subversion Dev mailing list.