What might be the problems is that _hashlib.so is using libcrypto.so and httpd
is using libcrypt_i.so.
My understanding from searching about these libraries is that they probably
provide the same functionality.
Older versions of Solaris didn't have a similar crypto, but newer Solaris
versions do.
My guess is that your Python installation was built for an older Solaris
version, or on the expectation that libcrypto_i.so didn't exist, or maybe it
didn't check, used its own copy of the crypto library.
The httpd though is using the proper Solaris version of the library.
As I guess the APIs are likely similar, what is probably happening is that one
is loaded by httpd first, but then when that from _hashlib.so
is loaded there is a clash of symbols and it fails to load. This causes it to
fallback to _md5.so which does exist.
I therefore thing the only solution would be to get a version of Python which
uses the proper Solaris library so that there is no clash with what httpd has
already loaded into the process.
You might get a better idea of the reason _hashlib.so is failing to load by
writing a WSGI hello world script and get it working, and then modify it to do:
import _hashlib
in the body of the WSGI application so that it tries to load that as part of
the request. Any error should then be logged in the Apache error log.
Graham
On 19/02/2015, at 10:45 PM, [email protected] wrote:
> Also
>
> #ldd /opt/webtier/python_64/lib/python2.6/lib-dynload/_hashlib.so
> libssl.so.1.0.0 => /opt/webtier/ssl/lib/libssl.so.1.0.0
> libcrypto.so.1.0.0 => /opt/webtier/ssl/lib/libcrypto.so.1.0.0
> libpython2.6.so.1.0 =>
> /opt/webtier/python_64/lib/libpython2.6.so.1.0
> libgcc_s.so.1 => /usr/sfw/lib/sparcv9/libgcc_s.so.1
> libsocket.so.1 => /lib/64/libsocket.so.1
> libnsl.so.1 => /lib/64/libnsl.so.1
> libdl.so.1 => /lib/64/libdl.so.1
> libc.so.1 => /lib/64/libc.so.1
> librt.so.1 => /lib/64/librt.so.1
> libm.so.2 => /lib/64/libm.so.2
> libmp.so.2 => /lib/64/libmp.so.2
> libmd.so.1 => /lib/64/libmd.so.1
> libscf.so.1 => /lib/64/libscf.so.1
> libaio.so.1 => /lib/64/libaio.so.1
> libdoor.so.1 => /lib/64/libdoor.so.1
> libuutil.so.1 => /lib/64/libuutil.so.1
> libgen.so.1 => /lib/64/libgen.so.1
> /platform/SUNW,T5440/lib/sparcv9/libc_psr.so.1
> /platform/SUNW,T5440/lib/sparcv9/libmd_psr.so.1
> ----------------------------------------------------------------------------------------------
> #ldd httpd
> libaprutil-1.so.0 =>
> /opt/webtier/Middleware/Oracle_WT1/lib/libaprutil-1.so.0
> libexpat.so.0 =>
> /opt/webtier/Middleware/Oracle_WT1/ohs/lib/libexpat.so.0
> libcrypt_i.so.1 => /usr/lib/64/libcrypt_i.so.1
> libapr-1.so.0 =>
> /opt/webtier/Middleware/Oracle_WT1/lib/libapr-1.so.0
> libuuid.so.1 => /lib/64/libuuid.so.1
> libsendfile.so.1 => /lib/64/libsendfile.so.1
> librt.so.1 => /lib/64/librt.so.1
> libm.so.1 => /lib/64/libm.so.1
> libsocket.so.1 => /lib/64/libsocket.so.1
> libnsl.so.1 => /lib/64/libnsl.so.1
> libresolv.so.2 => /lib/64/libresolv.so.2
> libpthread.so.1 => /lib/64/libpthread.so.1
> libdl.so.1 => /lib/64/libdl.so.1
> libdms2.so => /opt/webtier/Middleware/Oracle_WT1/lib/libdms2.so
> libiau.so => /opt/webtier/Middleware/Oracle_WT1/lib/libiau.so
> libclntsh.so.11.1 =>
> /opt/webtier/Middleware/Oracle_WT1/lib/libclntsh.so.11.1
> libthread.so.1 => /lib/64/libthread.so.1
> libc.so.1 => /lib/64/libc.so.1
> libgen.so.1 => /lib/64/libgen.so.1
> libaio.so.1 => /lib/64/libaio.so.1
> libmd.so.1 => /lib/64/libmd.so.1
> libmp.so.2 => /lib/64/libmp.so.2
> libscf.so.1 => /lib/64/libscf.so.1
> libnnz11.so => /opt/webtier/Middleware/Oracle_WT1/lib/libnnz11.so
> libkstat.so.1 => /lib/64/libkstat.so.1
> libsched.so.1 => /usr/lib/64/libsched.so.1
> libm.so.2 => /lib/64/libm.so.2
> libdoor.so.1 => /lib/64/libdoor.so.1
> libuutil.so.1 => /lib/64/libuutil.so.1
> /platform/SUNW,T5440/lib/sparcv9/libc_psr.so.1
> /platform/SUNW,T5440/lib/sparcv9/libmd_psr.so.1
>
>
> On Wednesday, February 18, 2015 at 2:31:48 PM UTC+2, [email protected]
> wrote:
> I recent migrated to a new apache server and when i am trying to run my wsgi
> project i am getting the below error.
>
> I manage to track down the problem, but i can not find how to fix it...
>
> The problem is in the
> /opt/webtier/python_64/lib/python2.6/site-packages/django/utils/hashcompat.py,
> it tries to import hashlib and it fails. Since there is a try catch block in
> the hashcompat.py it then tries to import md5 which is deprecated ....
>
>
>
> [Wed Feb 18 13:12:21 2015] [error] <mod_wsgi.Log object at 0x1007f6870>
> [Wed Feb 18 13:12:22 2015] [error] | wgtproxy | __init__ |
> [Wed Feb 18 13:12:22 2015] [error] | wgtproxy settings |
> [Wed Feb 18 13:12:22 2015] [error]
> /opt/webtier/python_64/lib/python2.6/site-packages/django/utils/hashcompat.py:15:
> DeprecationWarning: the md5 module is deprecated; use hashlib instead
> [Wed Feb 18 13:12:22 2015] [error] import md5
> [Wed Feb 18 13:12:22 2015] [error] [client xx.xx.xx.xx] mod_wsgi (pid=15944):
> Exception occurred processing WSGI script
> '/opt/wgt_proxy/wgtproxyProj/wgtproxy/apache/django.wsgi'.
> [Wed Feb 18 13:12:22 2015] [error] [client xx.xx.xx.xx] Traceback (most
> recent call last):
> [Wed Feb 18 13:12:22 2015] [error] [client xx.xx.xx.xx] File
> "/opt/webtier/python_64/lib/python2.6/site-packages/django/core/handlers/wsgi.py",
> line 230, in __call__
> [Wed Feb 18 13:12:22 2015] [error] [client xx.xx.xx.xx]
> self.load_middleware()
> [Wed Feb 18 13:12:22 2015] [error] [client xx.xx.xx.xx] File
> "/opt/webtier/python_64/lib/python2.6/site-packages/django/core/handlers/base.py",
> line 42, in load_middleware
> [Wed Feb 18 13:12:22 2015] [error] [client xx.xx.xx.xx] raise
> exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' %
> (mw_module, e))
> [Wed Feb 18 13:12:22 2015] [error] [client xx.xx.xx.xx] ImproperlyConfigured:
> Error importing middleware django.middleware.common: "No module named _md5"
> [Wed Feb 18 13:12:22 2015] [error] [client xx.x.x.xx] Request Failed for :
> /wgtproxy, Resp Code : [500]
>
>
>
> I did a test wsgi script that the only thing is to print "Hello word" but at
> the beginning i am also importing hashlib in order to verify that the hashlib
> is the problem :
>
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] mod_wsgi (pid=15943):
> Exception occurred processing WSGI script
> '/opt/wgt_proxy/wgtproxyProj/wgtproxy/apache/test.wsgi'.
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] Traceback (most
> recent call last):
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] File
> "/opt/wgt_proxy/wgtproxyProj/wgtproxy/apache/test.wsgi", line 6, in <module>
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] import hashlib
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] File
> "/opt/webtier/python_64/lib/python2.6/hashlib.py", line 136, in <module>
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] md5 =
> __get_builtin_constructor('md5')
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] File
> "/opt/webtier/python_64/lib/python2.6/hashlib.py", line 63, in
> __get_builtin_constructor
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] import _md5
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] ImportError: No
> module named _md5
> [Wed Feb 18 14:16:32 2015] [error] [client xx.xx.xx.xx] Request Failed for :
> /test, Resp Code : [500]
>
>
> Αccording to
> https://code.google.com/p/modwsgi/wiki/ApplicationIssues#SSL_Shared_Library_Conflicts
> it seems that when it tries to import hashlin it can not, the exception is
> masked and tries to import _md5 which of course it does not exist ...
>
> The strange thing is that i can import hashlib without errors or exceptions
> from python ... the issue is when apache+mod_wsgi tries to do it it fails!
>
> I did also did the " ldd /bin/httpd " command but my apache is not
> referencing any libssl.so library!!!
>
> Has anybody come across this issue ??? Can someone help???
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/modwsgi.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.