> Based on comments in a separate thread, GeoDango may have issues with
> multithreaded configuration. Which Apache MPM was being used for each
> Apache version, prefork or worker? The worker MPM uses threads and so
> that could be the culprit.
Yes -- the libraries GeoDjango uses, GEOS and GDAL, are not thread
safe. Thus, it is highly recommended to use the prefork version of
Apache.
> In a Python Shell, I am able to perform queries on my spatial models
> successfully. In a web browser, I get a plain white screen if any
> code is executed that works with spatially enabled models.
I created an Ubuntu 8.10 VM to try and test out this problem.
However, the only way that I could reproduce your exact problem
(segfault upon HTTP request) is when using the mpm-worker (threaded)
Apache. When using the prefork, however, I was able to get both
mod_python and mod_wsgi to work with a simple demonstration app [1].
I think mpm-worker is the default when you do `apt-get install
apache2`, so make sure you have it removed, e.g., `apt-get remove
apache2-mpm-worker; apt-get install apache2-mpm-prefork`.
BUT, I found another issue -- while I could login to and browse the
admin interface, whenever I tried to view a geographic model an
exception would get raised (but no segfault) deep in the admin widgets
[2], crashing the app. While this crash occurs in 8.10 it does _not_
happen in my 8.04 VM. Thus, this leads me to believe that it may be a
manifestation of the same troubles you're experiencing. Moreover,
this admin crash happens with _both_ mod_python and mod_wsgi in 8.10
(mod_wsgi configured with `threads=1`).
Needless to say, this behavior has me perplexed at the moment, and due
to my finals I'm not going to have a lot of time to dig in deeper
until next month. Perhaps there's a clash of the libraries that are
linked to Apache and the ones used by the packaged versions of GEOS/
GDAL, or maybe it's caused by Ubuntu's AppArmor (confined to just CUPS
in 8.04) -- but these are just potential possibilities.
> Justin was good enough to run a test case I created and was unable to
> duplicate the error. I'm wondering now about the exact versions of
> Apache and other components that might be causing the problem.
I still have the CentOS 5.2 VM, and I'll test it out again, but I'm
not sure yet that this could be the same issue as you reported in
October. It's a different distribution that used significantly older
versions (that also worked in my tests).
[1]
http://geodjango.org/hg/world
[2]
http://code.djangoproject.com/browser/django/trunk/django/contrib/gis/admin/widgets.py#L43