Summary: | webdav LOCK access with multiple threads to same folder causes UNLOCK failures | ||
---|---|---|---|
Product: | Apache httpd-2 | Reporter: | Mike Henry <mikeh> |
Component: | mod_dav | Assignee: | Apache HTTPD Bugs Mailing List <bugs> |
Status: | NEEDINFO --- | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | 2.5-HEAD | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux |
Description
Mike Henry
2010-11-08 13:33:15 UTC
I could not reproduce this (neither with 2.2.16 nor with trunk). I suspect that there may be a lock contention when accessing the dbm file that stores the locks. Which dbm library are you using? (Try 'ldd /usr/lib/apr-util-1/apr_dbm_db.so' or 'ldd /usr/lib/libaprutil-1.so' depending on how you compiled it). I have Berkley DB 4.8. To get more info, you could also try strace-ing httpd and see which system call returns 'Resource temporarily unavailable' (EAGAIN). If it is something related to your dav lockdb, that would give a hint. But it's also possible that it is not related to DAV at all but a bug in the logging code. >To get more info, you could also try strace-ing httpd and see which system
>call returns 'Resource temporarily unavailable' (EAGAIN).
Mike, when you tested at trunk did you see 'Resource temporarily available' logged?
Possibly the logging of EAGAIN is because the dav error APIs prior to httpd 2.3.4 did not take an apr_status_t parameter, and assumed errno was meaningful for the problem at hand (and that's a common error for network I/O).
I lost my PC that I was using the debug the issue. I will have to setup everything up on another system. I will update the bug after completed. |