Hi,

The web application I'm developing is using Oracle's DB-XML as a backend storage and I'm running into an issue on the production environment.

All seems to work perfectly, at least when the DB queries are read-only; when I attempt a fresh write operation (ie, not an update of existing data but an insert), the mod_wsgi process crashes with a segmentation fault though.


Apache's error log is reporting a "Premature end of script headers" error.


Since XML is involved, I've tried all the stuff that's described in the "Issues with Expat library" wiki page[1], but Expat doesn't seem to be the source of the problem.

DB-XML needs a C extension, thus I'm setting
    WSGIApplicationGroup %{GLOBAL}
in my virtualhost configuration as described on the wiki's "Python Simplified GIL State API" page[2].


The issue seems to be similar to a problem explained on this mailing list almost four years ago[3].

So I tried setting Apache's LogLevel directive to "Info" and attaching to the wsgi process using dbg. Just for debugging purposes I'm setting
    WSGIDaemonProcess myapp threads=1
in my virtualhost configuration file.

The result and the traceback follows:

(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb40c5b70 (LWP 26303)]
0xb33b4773 in DbXml::NsDomElement::NsDomElement(DbXml::NsNode*, DbXml::NsDoc*)
    () from /usr/local/lib/libdbxml-2.5.so

(gdb) bt
#0 0xb33b4773 in DbXml::NsDomElement::NsDomElement(DbXml::NsNode*, DbXml::NsDoc*) () from /usr/local/lib/libdbxml-2.5.so
#1  0xb33b5148 in DbXml::NsDomElement::getElemNext() ()
   from /usr/local/lib/libdbxml-2.5.so
#2  0xb3390f06 in DbXml::ElementDescendantAxis::nextNode(DynamicContext*) ()
   from /usr/local/lib/libdbxml-2.5.so
#3  0xb338ee3b in DbXml::DbXmlAxis::next(DynamicContext*) ()
   from /usr/local/lib/libdbxml-2.5.so
#4  0xb3455a31 in DbXml::StepIterator::next(DynamicContext*) ()
   from /usr/local/lib/libdbxml-2.5.so
#5  0xb343d124 in DbXml::QueryPlanToASTResult::next(DynamicContext*) ()
   from /usr/local/lib/libdbxml-2.5.so
#6 0xb3120384 in SequenceType::OccurrenceMatchesResult::next(DynamicContext*)
    () from /usr/local/lib/libxqilla.so.5
#7  0xb31358dc in UInsertAsFirst::createUpdateList(DynamicContext*) const ()
   from /usr/local/lib/libxqilla.so.5
#8 0xb313046f in ApplyUpdatesResult::nextOrTail(Result&, DynamicContext*) ()
   from /usr/local/lib/libxqilla.so.5
#9  0xb312a959 in ResultImpl::next(DynamicContext*) ()
   from /usr/local/lib/libxqilla.so.5
#10 0xb34bd7f3 in DbXml::LazyDIResults::hasNext() ()
   from /usr/local/lib/libdbxml-2.5.so
#11 0xb34eada2 in DbXml::XmlResults::hasNext() ()
#12 0xb34c6371 in DbXml::QueryExpression::execute(DbXml::Transaction*, DbXml::Value*, DbXml::XmlQueryContext&, unsigned int) ()
   from /usr/local/lib/libdbxml-2.5.so
#13 0xb34e9570 in DbXml::XmlQueryExpression::execute(DbXml::XmlTransaction&, DbXml::XmlQueryContext&, unsigned int) const ()
   from /usr/local/lib/libdbxml-2.5.so
#14 0xb34e4bda in DbXml::XmlManager::query(DbXml::XmlTransaction&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DbXml::XmlQueryContext&, unsigned int) () from /usr/local/lib/libdbxml-2.5.so
#15 0xb35a3568 in XmlManager_query__SWIG_3 (self=0x0, args=0xb991961c)
    at dbxml_python_wrap.cpp:4083
#16 _wrap_XmlManager_query__SWIG_3 (self=0x0, args=0xb991961c)
    at dbxml_python_wrap.cpp:13061
#17 _wrap_XmlManager_query (self=0x0, args=0xb991961c)
    at dbxml_python_wrap.cpp:13129
#18 0xb73ba6f2 in PyCFunction_Call () from /usr/lib/libpython2.6.so.1.0
#19 0xb741acf9 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#20 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#21 0xb741ab1d in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#22 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#23 0xb741ab1d in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#24 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#25 0xb741ab1d in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#26 0xb741af2a in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#27 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#28 0xb73a49a7 in ?? () from /usr/lib/libpython2.6.so.1.0
#29 0xb7375c3c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#30 0xb7419860 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#31 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#32 0xb73a49a7 in ?? () from /usr/lib/libpython2.6.so.1.0
#33 0xb7375c3c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#34 0xb7419860 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#35 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#36 0xb741ab1d in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#37 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#38 0xb741ab1d in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#39 0xb741c60d in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#40 0xb73a48b7 in ?? () from /usr/lib/libpython2.6.so.1.0
#41 0xb7375c3c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#42 0xb7387b99 in ?? () from /usr/lib/libpython2.6.so.1.0
#43 0xb7375c3c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#44 0xb73dda5d in ?? () from /usr/lib/libpython2.6.so.1.0
#45 0xb7375c3c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#46 0xb7415574 in PyEval_CallObjectWithKeywords ()
#47 0xb75b1f21 in ?? () from /usr/lib/apache2/modules/mod_wsgi.so
#48 0xb75b8395 in ?? () from /usr/lib/apache2/modules/mod_wsgi.so
#49 0xb75b911f in ?? () from /usr/lib/apache2/modules/mod_wsgi.so
#50 0xb781c955 in ?? () from /usr/lib/libapr-1.so.0
#51 0xb77df7b0 in start_thread () from /lib/libpthread.so.0
#52 0xb77608fe in clone () from /lib/libc.so.6


My environment is running the following:
- Debian GNU/Linux 6.0 stable
- Distribution-specific packages for:
  + Apache 2.2.16
  + mod_wsgi 3.3
  + Python 2.6.6
- Self-compiled:
  + DB-XML 2.5.16

mod_wsgi is running in daemon mode and no mod_python or mod_php is present in the system.

I'm quite stuck with this so any help or hints would be highly appreciated.


[1] https://code.google.com/p/modwsgi/wiki/IssuesWithExpatLibrary
[2] https://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API [3] https://groups.google.com/group/modwsgi/browse_thread/thread/d23e18acc2117b9d/ac68b0e47e670ab7

--
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to