I have added issue: http://code.google.com/p/modwsgi/issues/detail?id=203
to remind me to update documentation. :-) Graham On 29 June 2010 13:25, Graham Dumpleton <[email protected]> wrote: > On 29 June 2010 04:02, Dan Connolly <[email protected]> wrote: >> On Mon, 2010-06-28 at 12:28 -0500, Dan Connolly wrote: >>> On Mon, 2010-06-28 at 10:51 -0500, Dan Connolly wrote: >>> > I seem to be hitting the pyexpat issue... >>> > >>> > Anybody want to remind me of the fix or work-around? >>> > Perhaps I can find it myself... >>> >>> OK, so I found >>> http://code.google.com/p/modwsgi/wiki/IssuesWithExpatLibrary >>> >>> and I re-built apache with --disable-expat. >>> Now lsof shows no libexpat.so at all. >> >> Not util it's dynamically loaded, that is. >> >> tee hee. >> >>> But I'm still getting a SEGV in roughly the same place: >> >> The fix was: >> >> 1) sudo zypper install libexpat-devel >> 2) add --with-expat=/usr/lib to apache config options and recompile. >> >> That IssuesWithExpatLibrary doc is really quite nice. Thanks! > > There is a slight problem with that. The expat issues shouldn't apply > to Python 2.5 and later as from then on the pyexpat bundled with > Python namespace prefixed the symbols so they didn't clash with any > separate expat shared library used by something else linked into the > same executable. > > The only way there could be a problem is if pyexpat was updated to > newer expat code and they forgot to properly namespace prefix some > symbols that were being used. Alternatively if the pyexpat was > explicitly compiled so as to use system libexpat instead in contained > expat code. > > It seems that for MacOS X Snow Leopard supplied Python 2.6 as example, > it does use separate expat library. You can find this out by going: > > nm > /System/Library/Frameworks/Python.framework/Versions/Current/lib/python2.6/lib-dynload/pyexpat.so > | grep XML > > yielding: > > U _XML_ErrorString > U _XML_ExpatVersion > U _XML_ExpatVersionInfo > U _XML_ExternalEntityParserCreate > U _XML_FreeContentModel > U _XML_GetBase > U _XML_GetBuffer > U _XML_GetCurrentByteIndex > U _XML_GetCurrentColumnNumber > U _XML_GetCurrentLineNumber > U _XML_GetErrorCode > U _XML_GetFeatureList > U _XML_GetInputContext > U _XML_GetSpecifiedAttributeCount > U _XML_Parse > U _XML_ParseBuffer > U _XML_ParserCreate > U _XML_ParserCreateNS > U _XML_ParserCreate_MM > U _XML_ParserFree > U _XML_SetAttlistDeclHandler > U _XML_SetBase > U _XML_SetCharacterDataHandler > U _XML_SetCommentHandler > U _XML_SetDefaultHandler > U _XML_SetDefaultHandlerExpand > U _XML_SetElementDeclHandler > U _XML_SetElementHandler > U _XML_SetEndCdataSectionHandler > U _XML_SetEndDoctypeDeclHandler > U _XML_SetEndElementHandler > U _XML_SetEndNamespaceDeclHandler > U _XML_SetEntityDeclHandler > U _XML_SetExternalEntityRefHandler > U _XML_SetNamespaceDeclHandler > U _XML_SetNotStandaloneHandler > U _XML_SetNotationDeclHandler > U _XML_SetParamEntityParsing > U _XML_SetProcessingInstructionHandler > U _XML_SetReturnNSTriplet > U _XML_SetSkippedEntityHandler > U _XML_SetStartCdataSectionHandler > U _XML_SetStartDoctypeDeclHandler > U _XML_SetStartElementHandler > U _XML_SetStartNamespaceDeclHandler > U _XML_SetUnknownEncodingHandler > U _XML_SetUnparsedEntityDeclHandler > U _XML_SetUserData > U _XML_SetXmlDeclHandler > U _XML_StopParser > U _XML_UseForeignDTD > > Whereas if I check hand compiled Python 2.6.5 on same OS I get: > > 000000000000f6f0 T _PyExpat_XML_DefaultCurrent > 00000000000091a0 T _PyExpat_XML_ErrorString > 00000000000091c0 T _PyExpat_XML_ExpatVersion > 00000000000091d0 T _PyExpat_XML_ExpatVersionInfo > 000000000000ca30 T _PyExpat_XML_ExternalEntityParserCreate > 0000000000009120 T _PyExpat_XML_FreeContentModel > 00000000000089f0 T _PyExpat_XML_GetBase > 000000000000af10 T _PyExpat_XML_GetBuffer > 0000000000008fc0 T _PyExpat_XML_GetCurrentByteCount > 0000000000008f90 T _PyExpat_XML_GetCurrentByteIndex > 00000000000090b0 T _PyExpat_XML_GetCurrentColumnNumber > 0000000000009040 T _PyExpat_XML_GetCurrentLineNumber > 0000000000008f80 T _PyExpat_XML_GetErrorCode > 00000000000091f0 T _PyExpat_XML_GetFeatureList > 0000000000008a10 T _PyExpat_XML_GetIdAttributeIndex > 0000000000009000 T _PyExpat_XML_GetInputContext > 0000000000008f70 T _PyExpat_XML_GetParsingStatus > 0000000000008a00 T _PyExpat_XML_GetSpecifiedAttributeCount > 0000000000009180 T _PyExpat_XML_MemFree > 0000000000009140 T _PyExpat_XML_MemMalloc > 0000000000009160 T _PyExpat_XML_MemRealloc > 000000000000b0f0 T _PyExpat_XML_Parse > 0000000000008c90 T _PyExpat_XML_ParseBuffer > 000000000000c610 T _PyExpat_XML_ParserCreate > 000000000000c660 T _PyExpat_XML_ParserCreateNS > 000000000000c5c0 T _PyExpat_XML_ParserCreate_MM > 000000000000a480 T _PyExpat_XML_ParserFree > 000000000000bb90 T _PyExpat_XML_ParserReset > 0000000000008e80 T _PyExpat_XML_ResumeParser > 0000000000008c20 T _PyExpat_XML_SetAttlistDeclHandler > 000000000000b6c0 T _PyExpat_XML_SetBase > 0000000000008a80 T _PyExpat_XML_SetCdataSectionHandler > 0000000000008a50 T _PyExpat_XML_SetCharacterDataHandler > 0000000000008a70 T _PyExpat_XML_SetCommentHandler > 0000000000008ac0 T _PyExpat_XML_SetDefaultHandler > 0000000000008ae0 T _PyExpat_XML_SetDefaultHandlerExpand > 0000000000008b00 T _PyExpat_XML_SetDoctypeDeclHandler > 0000000000008c10 T _PyExpat_XML_SetElementDeclHandler > 0000000000008a20 T _PyExpat_XML_SetElementHandler > 000000000000b780 T _PyExpat_XML_SetEncoding > 0000000000008ab0 T _PyExpat_XML_SetEndCdataSectionHandler > 0000000000008b30 T _PyExpat_XML_SetEndDoctypeDeclHandler > 0000000000008a40 T _PyExpat_XML_SetEndElementHandler > 0000000000008b90 T _PyExpat_XML_SetEndNamespaceDeclHandler > 0000000000008c30 T _PyExpat_XML_SetEntityDeclHandler > 0000000000008bb0 T _PyExpat_XML_SetExternalEntityRefHandler > 0000000000008bc0 T _PyExpat_XML_SetExternalEntityRefHandlerArg > 0000000000008b60 T _PyExpat_XML_SetNamespaceDeclHandler > 0000000000008ba0 T _PyExpat_XML_SetNotStandaloneHandler > 0000000000008b50 T _PyExpat_XML_SetNotationDeclHandler > 0000000000008c50 T _PyExpat_XML_SetParamEntityParsing > 0000000000008a60 T _PyExpat_XML_SetProcessingInstructionHandler > 00000000000089a0 T _PyExpat_XML_SetReturnNSTriplet > 0000000000008be0 T _PyExpat_XML_SetSkippedEntityHandler > 0000000000008aa0 T _PyExpat_XML_SetStartCdataSectionHandler > 0000000000008b20 T _PyExpat_XML_SetStartDoctypeDeclHandler > 0000000000008a30 T _PyExpat_XML_SetStartElementHandler > 0000000000008b80 T _PyExpat_XML_SetStartNamespaceDeclHandler > 0000000000008bf0 T _PyExpat_XML_SetUnknownEncodingHandler > 0000000000008b40 T _PyExpat_XML_SetUnparsedEntityDeclHandler > 00000000000089c0 T _PyExpat_XML_SetUserData > 0000000000008c40 T _PyExpat_XML_SetXmlDeclHandler > 0000000000008df0 T _PyExpat_XML_StopParser > 0000000000008970 T _PyExpat_XML_UseForeignDTD > 0000000000008960 T _PyExpat_XML_UseParserAsHandlerArg > > See how they are part of object and prefixed. > > You might do that same nm on pyexpat.so in your Python installation > and work out if local symbols or undefined, thus meaning they come > from external libexpat.so. > > It almost seems that your pyexpat.so is using libexpat.so and so you > can get problems mentioned in that document. > > Seems I will need to update that document to indicate that can occur > for latter Python versions if it was configured to use libexpat.so > instead of builtin code. > > Graham > -- 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.
