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.

Reply via email to