Manel!

I think you've solved it.

With your extra push I found:

http://codespeak.net/lxml/FAQ.html#my-program-crashes-when-run-with-mod-python-pyro-zope-plone

And then re-built lxml like:

sudo python26 setup.py --without-threading install

And things now work without the:

> WSGIApplicationGroup %{GLOBAL}

Nice!

Daniel, can you try that?

FYI, wrapping the mapnik::load_map call in 'Py_BEGIN_ALLOW_THREADS' had no 
positive effect, although this is what we do for the render call:

http://trac.mapnik.org/browser/trunk/bindings/python/mapnik_python.cpp#L83

Dane


On Oct 6, 2010, at 3:07 AM, <[email protected]> <[email protected]> 
wrote:

> Hi,
> 
> summary of my debugging session:
> 
> - The freeze happens once you install python-lxml, there is no proble mwith 
> other etree implementations ogcserver imports.
> - I can reproduce it with just mod_python + ogcserver + mapnik (0.7 in 
> ubuntu), no wsgi involved
> - It looks the problem is a deadlock involving the GIL. I tried moving the 
> load_XML call outside the __init__ function, so that it was not under an 
> import call, but no luck. Some other code must be acquiring the GIL and not 
> releasing it. I'll try to debug the GIL to find the problem.
> 
> As you can see in the backtrace, lxml etree implementation will call 
> PyGILState_Ensure, which will cause the thread to sleep, waiting for some 
> other code to release the GIL => deadlock because that will never happen.
> 
> Here is some inspiration:
> http://bugs.python.org/issue7736
> 
> And some documentation:
> http://wiki.python.org/moin/boost.python/HowTo
> 
> 
> (gdb) backtrace
> #0 0xb773b430 in __kernel_vsyscall ()
> #1 0xb769b245 in sem_wait@@GLIBC_2.1 () from  
> /lib/tls/i686/cmov/libpthread.so.0
> #2 0xb65fce10 in PyThread_acquire_lock (lock=0xb80f1568, waitflag=1) at 
> ../Python/thread_pthread.h:349
> #3 0xb65cc798 in PyEval_RestoreThread (tstate=0xb809b9a0) at 
> ../Python/ceval.c:353
> #4 0xb65efa90 in PyGILState_Ensure () at ../Python/pystate.c:592
> #5 0xb237465e in __pyx_f_4lxml_5etree__local_resolver 
> (__pyx_v_c_url=0xb855194c "/home/manel/ogcserver/world.xml",
> __pyx_v_c_pubid=0x0, __pyx_v_c_context=0xb855b4c8) at 
> src/lxml/lxml.etree.c:62627
> #6 0xb6931343 in xmlLoadExternalEntity () from /usr/lib/libxml2.so.2
> #7 0xb6920891 in xmlCtxtReadFile () from /usr/lib/libxml2.so.2
> #8 0xb53cbc64 in mapnik::libxml2_loader::load(std::string 
> const&,boost::property_tree::basic_ptree<boost::property_tree::ptree_traits<char>
>  >&) () from /usr/lib/libmapnik.so.0.7
> #9 0xb53ca537 in mapnik::read_xml2(std::string const&,
> boost::property_tree::basic_ptree<boost::property_tree::ptree_traits<char> 
> >&) () from /usr/lib/libmapnik.so.0.7
> #10 0xb538a7e4 in mapnik::load_map(mapnik::Map&, std::string const&, bool) () 
> from /usr/lib/libmapnik.so.0.7
> #11 0xb55bd83c in 
> load_map_overloads::non_void_return_type::gen<boost::mpl::vector4<void, 
> mapnik::Map&, std::string const&, bool> >::func_1(mapnik::Map&, std::string 
> const&, bool) () from /usr/lib/pymodules/python2.6/mapnik/_mapnik.so
> ...
> 
> --
> Manel
> 
> ________________________________
> 
>        De: [email protected] 
> [mailto:[email protected]] En nombre de Dane Springmeyer
>        Enviado el: sábado, 02 de octubre de 2010 0:13
>        Para: [email protected]
>        CC: [email protected]
>        Asunto: Re: [Mapnik-users] Problem with Mapniks OGCServer
> 
> 
>        Okay, I think I found it.
> 
>        Putting this in your WSGI config should fix it:
> 
>        WSGIApplicationGroup %{GLOBAL}
> 
>        More details here:
> 
>        
> https://techknowhow.library.emory.edu/blogs/branker/2010/07/30/django-lxml-wsgi-and-python-sub-interpreter-magic
> 
>        So, this should allow the ogcserver to play nicely within mod_wsgi 
> with lxml installed. If this fixes the hang for you then we can investigate 
> more. If not, then make sure you are only running one instance of the 
> ogcserver within Apache.
> 
>        Dane
> 
> 
>        On Oct 1, 2010, at 10:59 AM, [email protected] wrote:
> 
> 
>                Hi, I forgot something...
>                when uninstalling lxml, mod_wsgi can actually connect to 
> mapniks ogcserver (ogcserver welcome appears). as Dane said earlier in this 
> thread, mapnik falls back to standard xml support. at least this machine 
> should... but with a GetMap request the browser still returns no map, the 
> text of the requested URL gets rendered as an unformatted image instead.
> 
>                Daniel
> 
> 
>                Am 30.09.2010 18:14, schrieb Dane Springmeyer:
>> 
>> On Sep 1, 2010, at 3:57 AM,<[email protected]>  
>> <[email protected]>  wrote:
>> 
>>> Hi,
>>> 
>>> Just tried and I can reproduce the same problem here. Ubuntu server 9.10, 
>>> Mapnik 0.7.1, mod_python will get stuck in Mapnik's load_map in WMS.py.
>>> 
>>> Strange enough, I'm using the *same* code under wsgi with no problems.
>>> 
>> 
>> Daniel look ^^^. So Manel, what Apache version, prefork or worker, and what 
>> mod_wsgi and python versions?
>> 
>> Btw, I forgot to mention the ticket we once had that tracked this issue (at 
>> lease specific to GetCaps):
>> 
>> http://trac.mapnik.org/ticket/464
>> 
>> It would be good to add any additional info we find to that ticket thread. 
>> For instance, short of understanding the exact problem within lxml, 
>> hopefully we can recommend a certain version of python/apache/mod_wsgi which 
>> will work around the problem.
>> 
>> - Dane
> 
> 
> 
>                GKSS-Forschungszentrum Geesthacht GmbH
>                Max-Planck-Straße 1
>                21502 Geesthacht
>                Deutschland/Germany
> 
>                Geschäftsführer/Board of Management: Prof. Dr. Wolfgang A. 
> Kaysser, Dipl.-Ing. Michael Ganß
>                Vorsitzender des Aufsichtsrates/Chairman of the Supervisory 
> Board: Ministerialrat Wilfried Kraus
> 
>                Amtsgericht Lübeck  HRB 285 GE (Register Court)
>                Internet: http://www.gkss.de
> 
>                ACHTUNG - ATTENTION
> 
>                Die GKSS-Forschungszentrum Geesthacht GmbH erhält einen neuen 
> Namen und heißt ab dem 1. November 2010 offiziell
>                The GKSS-Forschungszentrum Geesthacht GmbH will change its 
> name and will as of 1st November 2010 be officially called
> 
>                Helmholtz-Zentrum Geesthacht
>                Zentrum für Material- und Küstenforschung GmbH 
> _______________________________________________
>                Mapnik-users mailing list
>                [email protected]
>                https://lists.berlios.de/mailman/listinfo/mapnik-users
> 
> 
> 

_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users

Reply via email to