Bug 42977

Summary: DAV locking is busted when apr-util is built with gdbm
Product: Apache httpd-2 Reporter: Sean Hamilton <sh>
Component: mod_davAssignee: Apache HTTPD Bugs Mailing List <bugs>
Status: NEW ---    
Severity: normal CC: pgollucci
Priority: P2    
Version: 2.4.6   
Target Milestone: ---   
Hardware: Other   
OS: other   

Description Sean Hamilton 2007-07-25 23:01:51 UTC
apr-1.2.9, apr-util-1.2.8, gdbm-1.8.3, httpd-2.2.4, FreeBSD 6.1

[Tue Jul 24 19:12:32 2007] [error] [client ...] Could not LOCK
/upload/index.html due to a failed precondition (e.g. other locks).  [500, #0]
[Tue Jul 24 19:12:32 2007] [error] [client ...] The locks could not be queried
for verification against a possible "If:" header.  [500, #0]
[Tue Jul 24 19:12:32 2007] [error] [client ...] Item not found  [500, #15]

"Item not found"/#15 appears to be directly from gdbm. When I rebuilt apr-util
to use sdbm, all was well.
Comment 1 Philp M. Gollucci 2009-01-18 16:19:18 UTC
CC myself on FreeBSD related bugs
Comment 2 Diego Santa Cruz 2015-05-07 16:13:30 UTC
I stumbled into this bug with httpd 2.4.6 as well and tracked it down.

The problem is the APR DBM wrapper for GDBM, see bug #57900.

BTW, it seems rather unsafe to use GDBM with mod_dav_fs in httpd 2.4.x with one of the threaded MPMs, as GDBM is not thread safe. Shouldn't mod_dav_fs explicitly request a known thread-safe DBM provider?