[Xapian-discuss] flintlock fork causes hang in Apache+Python+mod_python

Deron Meranda deron.meranda at gmail.com
Tue Aug 28 21:00:34 BST 2007


I am trying to use Xapian 1.0.2 with the Python SWIG
bindings withn an environment consisting of Apache
httpd with mod_python.  (not as a CGI)  Also this is
Linux.

Whenever the python code attempts to open a database
the entire httpd process will hang indefinitely.  The
python bindings work outside of the apache/mod_python
environment.

>From the best I can tell the hang occurs in FlintLock:lock()
method.  I can see that the httpd process has forked off
a child using the "/bin/cat" executable, and the httpd process
(which has the embedded Python interpreter) is hung on
a FUTEX_WAIT system call).

While this process is hung, then attempts to open the
same database outside of Apache sometimes result
in an error saying that the database lock could not
be obtained because it is held by another process.

Has anybody experienced this problem?  I've never
seen a process locking mechanism before which uses
this fork/cat style mechanism.  Is it possible that this
could be confusing the python interpreter GIL or
something?

Deron Meranda



More information about the Xapian-discuss mailing list