Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Mar 2010 17:30:57 GMT
From:      Martin Birgmeier <martin.birgmeier@aon.at>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/145246: dirhash in 7.3 gratuitously frees hashes when it shouldn't
Message-ID:  <201003311730.o2VHUv9U016401@www.freebsd.org>
Resent-Message-ID: <201003311740.o2VHe1jM054850@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         145246
>Category:       kern
>Synopsis:       dirhash in 7.3 gratuitously frees hashes when it shouldn't
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 31 17:40:00 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Martin Birgmeier
>Release:        RELENG_7_3_0_RELEASE
>Organization:
MBi at home
>Environment:
FreeBSD gandalf.xyzzy 7.3-RELEASE FreeBSD 7.3-RELEASE #0: Sun Mar 21 20:08:05 CET 2010     root@atpcdvvc.xyzzy:/usr/VOL/OBJ/FreeBSD/RELENG_7_3_0_RELEASE/src/sys/XYZZY  i386
>Description:
The new dirhash function ufsdirhash_lowmem() is called in low-memory situations. I have a KDE repository mirror on a machine with 1.25 GiB of memory, with 2 directories of each more than 10e6 entries.

Due to memory pressure, the hashes are now freed multiple times even during a single subversion command, such that subversion exhibits extremely long waiting times and is nearly unusable. This is also due to bug http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/117954 , which is still unsolved and leads to several tens of seconds of complete freezes of the machine whenever the dirhash is (re-) computed.
>How-To-Repeat:
Mirror the SVN repo (rsync://rsync.kde.org/svnmirror/) on a FreeBSD 7.3 machine with 1.25 GiB of memory. Note: This does not succeed any more because the rsync server (on rsync.kde.org) times out before the local dirhash can be created for the two directories in question.
>Fix:
Probably go back to the old dirhash behavior (7.2), or free dirhashes only as last resort in low-mem situations. Note: I never had memory problems in 7.2 with the old dirhash behavior, so clearly there was still enough memory (to be gotten from somewhere else, probably).

Can I revert the dirhash changes by just reverting ufs_dirhash.c?


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003311730.o2VHUv9U016401>