AWS Thinkbox Discussion Forums

launcher exception on linux

We are getting the following launcher exceptions on a linux machine on startup:

2015-12-09 15:18:34:  BEGIN - lascript0003.scanlinevfxla.com\root
2015-12-09 15:18:34:  Deadline Launcher 8.0 [v8.0.0.41 Beta (cd240c614)]
2015-12-09 15:18:34:  Launcher Thread - Launcher thread initializing...
2015-12-09 15:18:34:  Launcher Thread - Launcher thread listening on port 17080
2015-12-09 15:18:34:  Launcher is running as a service or daemon, delaying startup for 60 seconds
2015-12-09 15:18:34:  This delay can be adjusted by setting the LauncherServiceStartupDelay setting in the system deadline.ini file
2015-12-09 15:18:35:  Auto Configuration: Picking configuration based on: lascript0003.scanlinevfxla.com / 172.18.4.14
2015-12-09 15:18:35:  Auto Configuration: No auto configuration could be detected, using local configuration
2015-12-09 15:18:36:  Launcher Thread - Remote Administration is now enabled
2015-12-09 15:18:36:  Launcher Thread - Automatic Updates is now enabled
2015-12-09 15:18:36:  ScanlineERROR:root:code for hash md5 was not found.
2015-12-09 15:18:36:  ScanlineTraceback (most recent call last):
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 139, in <module>
2015-12-09 15:18:36:  Scanline    globals()[__func_name] = __get_hash(__func_name)
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
2015-12-09 15:18:36:  Scanline    raise ValueError('unsupported hash type ' + name)
2015-12-09 15:18:36:  ScanlineValueError: unsupported hash type md5
2015-12-09 15:18:36:  ScanlineERROR:root:code for hash sha1 was not found.
2015-12-09 15:18:36:  ScanlineTraceback (most recent call last):
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 139, in <module>
2015-12-09 15:18:36:  Scanline    globals()[__func_name] = __get_hash(__func_name)
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
2015-12-09 15:18:36:  Scanline    raise ValueError('unsupported hash type ' + name)
2015-12-09 15:18:36:  ScanlineValueError: unsupported hash type sha1
2015-12-09 15:18:36:  ScanlineERROR:root:code for hash sha224 was not found.
2015-12-09 15:18:36:  ScanlineTraceback (most recent call last):
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 139, in <module>
2015-12-09 15:18:36:  Scanline    globals()[__func_name] = __get_hash(__func_name)
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
2015-12-09 15:18:36:  Scanline    raise ValueError('unsupported hash type ' + name)
2015-12-09 15:18:36:  ScanlineValueError: unsupported hash type sha224
2015-12-09 15:18:36:  ScanlineERROR:root:code for hash sha256 was not found.
2015-12-09 15:18:36:  ScanlineTraceback (most recent call last):
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 139, in <module>
2015-12-09 15:18:36:  Scanline    globals()[__func_name] = __get_hash(__func_name)
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
2015-12-09 15:18:36:  Scanline    raise ValueError('unsupported hash type ' + name)
2015-12-09 15:18:36:  ScanlineValueError: unsupported hash type sha256
2015-12-09 15:18:36:  ScanlineERROR:root:code for hash sha384 was not found.
2015-12-09 15:18:36:  ScanlineTraceback (most recent call last):
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 139, in <module>
2015-12-09 15:18:36:  Scanline    globals()[__func_name] = __get_hash(__func_name)
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
2015-12-09 15:18:36:  Scanline    raise ValueError('unsupported hash type ' + name)
2015-12-09 15:18:36:  ScanlineValueError: unsupported hash type sha384
2015-12-09 15:18:36:  ScanlineERROR:root:code for hash sha512 was not found.
2015-12-09 15:18:36:  ScanlineTraceback (most recent call last):
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 139, in <module>
2015-12-09 15:18:36:  Scanline    globals()[__func_name] = __get_hash(__func_name)
2015-12-09 15:18:36:  Scanline  File "/opt/Thinkbox/Deadline8/bin/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
2015-12-09 15:18:36:  Scanline    raise ValueError('unsupported hash type ' + name)
2015-12-09 15:18:36:  ScanlineValueError: unsupported hash type sha512

Seems like a missing python lib?

Seems to be isolated to that machine only, not sure why… On a couple other linux boxes i got deadline going so far, i have not seen the exception.

That looks like libssl/libcrypto related errors. It usually happens when Python can’t find the specific libcrypto/libssl versions that it was linked against, but we are shipping those with Deadline. Might be that it’s finding them elsewhere first, or it’s looking for the wrong version for whatever reason.

If you go to your Deadline install directory and run to following:

ldd bin/python/lib/python2.7/lib-dynload/_hashlib.so

That should tell you where Python’s hashlib is loading libcrypto/libssl from, currently. Note that it’s normal for this to not be found, since we set the LD_LIBRARY_PATH to our bin folder at launch. So, theoretically the following should resolve the links:

cd $DEADLINE_PATH
export LD_LIBRARY_PATH=`pwd`
ldd python/lib/python2.7/lib-dynload/_hashlib.so

You can also try doing an LDD on the libcrypto/libssl libraries that we ship themselves to see if they’re actually having trouble loading one of their dependencies for some reason.

Cheers,
Jon

On the bad machine:

[root@lascript0003 Deadline8]# ldd bin/python/lib/python2.7/lib-dynload/_hashlib.so
        linux-vdso.so.1 =>  (0x00007ffff19ff000)
        libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f821114f000)
        libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f8210d6f000)
        libpython2.7.so.1.0 => not found
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8210b51000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f82107bd000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f8210578000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f8210292000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f821008e000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f820fe61000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f820fc5d000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f820fa47000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003f56800000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f820f83b000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f820f638000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f820f41e000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f820f1fe000)

on a good one:

[root@lascript0005 Deadline8]# ldd bin/python/lib/python2.7/lib-dynload/_hashlib.so
        linux-vdso.so.1 =>  (0x00007fff1b19f000)
        libssl.so.10 => /lib64/libssl.so.10 (0x00007f3f46959000)
        libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f3f46572000)
        libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f3f461ab000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3f45f8f000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f3f45bce000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f3f45981000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f3f4569e000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f3f4549a000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f3f45267000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f3f45063000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f3f44e4d000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f3f44c49000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f3f44947000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3f46dd8000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f3f44738000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f3f44533000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f3f44319000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f3f440f3000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f3f43e92000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f3f43c6d000)

Pretty odd that it would not work on one, but work on the others… the installation was done the same way for all the boxes. Ill try to reinstall it, see what happens, maybe some setting could not be set during the install.

Looks like the bad one is loading the crypto libs from /user/lib64 whereas the good one is loading them from /lib64
If the content of the files are different between these locations (as Jon suggested), that could explain it.

Ran into this issue again today on another machine. Should a reinstall fix this?

Reinstalling might not fix it, if the order of the path does not change. In other words, if /user/lib64 is listed before /lib64 in the path, then the incorrect .so files might again get picked up from /user/lib64. If both folders are in the path, maybe try editing the path so that /lib64 appears first. You could also try deleting the crypto .so files from /user/lib64 so that they can only be found in /lib64. However, that might affect other programs.

I’ve noticed that on a machine where it works, the linux distro has python 2.7 in the base install. On the machine with the errors, the base install is 2.6.

It seems that the deadline installer is not appropriately setting up its environment to use its own libs, and is instead using the system libs?

It should be setting the LD_LIBRARY_PATH through the shell scripts… When you did the LDD test, did you export the Deadline bin folder to be in the LD_LIBRARY_PATH? It might be that our copies of libssl and libcrypto are failing to find one of their dependencies, so it’s reverting to the system libraries instead. Maybe try doing an LDD on the libcrypto/libssl that we ship with and see if anything’s missing. You’ll probably have to set LD_LIBRARY_PATH to the deadline bin for them to find any dependencies that might be in there.

You could probably add the ldd print to the shell scripts that launch Deadline (right before we call mono), to make sure the environment’s the same as when we launch Deadline.

Seems like the problem is libpython2.7.so.1.0 not being exported

[root@deadline01 bin]# export LD_LIBRARY_PATH=`pwd`
[root@deadline01 bin]# ldd python/lib/python2.7/lib-dynload/_hashlib.so
python/lib/python2.7/lib-dynload/_hashlib.so: /opt/Thinkbox/Deadline8/bin/libcrypto.so.10: no version information available (required by python/lib/python                                                                           2.7/lib-dynload/_hashlib.so)
python/lib/python2.7/lib-dynload/_hashlib.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/Thinkbox/Deadline8/bin/libssl.so.10)
python/lib/python2.7/lib-dynload/_hashlib.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/Thinkbox/Deadline8/bin/libcrypto.so.10)
        linux-vdso.so.1 =>  (0x00007fff587ff000)
        libssl.so.10 => /opt/Thinkbox/Deadline8/bin/libssl.so.10 (0x00007f7c158bf000)
        libcrypto.so.10 => /opt/Thinkbox/Deadline8/bin/libcrypto.so.10 (0x00007f7c15525000)
        libpython2.7.so.1.0 => not found
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7c152fb000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f7c14f66000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f7c14d22000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f7c14a3c000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f7c14837000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f7c1460b000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f7c14407000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f7c141f0000)
        /lib64/ld-linux-x86-64.so.2 (0x00000036eb400000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f7c13fe5000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f7c13de2000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7c13bc7000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f7c139a8000)

If i add that explicitly too:

[root@deadline01 bin]# export LD_LIBRARY_PATH=/opt/Thinkbox/Deadline8/bin/python/lib:${LD_LIBRARY_PATH}
[root@deadline01 bin]# ldd python/lib/python2.7/lib-dynload/_hashlib.so
python/lib/python2.7/lib-dynload/_hashlib.so: /opt/Thinkbox/Deadline8/bin/libcrypto.so.10: no version information available (required by python/lib/python2.7/lib-dynload/_hashlib.so)
python/lib/python2.7/lib-dynload/_hashlib.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/Thinkbox/Deadline8/bin/libssl.so.10)
python/lib/python2.7/lib-dynload/_hashlib.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/Thinkbox/Deadline8/bin/libcrypto.so.10)
        linux-vdso.so.1 =>  (0x00007fff5c1ff000)
        libssl.so.10 => /opt/Thinkbox/Deadline8/bin/libssl.so.10 (0x00007f95b79ad000)
        libcrypto.so.10 => /opt/Thinkbox/Deadline8/bin/libcrypto.so.10 (0x00007f95b7613000)
        libpython2.7.so.1.0 => /opt/Thinkbox/Deadline8/bin/python/lib/libpython2.7.so.1.0 (0x00007f95b7232000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f95b7008000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f95b6c73000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f95b6a2f000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f95b6749000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f95b6544000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f95b6318000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f95b6114000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f95b5efd000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f95b5cfa000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f95b5a76000)
        /lib64/ld-linux-x86-64.so.2 (0x00000036eb400000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f95b586a000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f95b5667000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f95b544d000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f95b522d000)

Also, there seems to be some warnings about missing glibc_2.14… If i dont add the deadline .so s for the bin folder, those errors dont appear. Something built incorrectly?

Actually, adding that folder still doesnt fix the error message, let me try your suggestion about libssl etc

I guess its due to some dynamically linked libc functions?

[root@deadline01 bin]# ldd /opt/Thinkbox/Deadline8/bin/libssl.so.10
/opt/Thinkbox/Deadline8/bin/libssl.so.10: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/Thinkbox/Deadline8/bin/libssl.so.10)
/opt/Thinkbox/Deadline8/bin/libssl.so.10: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/Thinkbox/Deadline8/bin/libcrypto.so.10)
        linux-vdso.so.1 =>  (0x00007fffc1f78000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00000036f8800000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00000036f8c00000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00000036f7c00000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00000036fa000000)
        libcrypto.so.10 => /opt/Thinkbox/Deadline8/bin/libcrypto.so.10 (0x0000003f87400000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00000036ec000000)
        libz.so.1 => /lib64/libz.so.1 (0x00000036ecc00000)
        libc.so.6 => /lib64/libc.so.6 (0x00000036eb800000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00000036f9800000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00000036f9000000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00000036ed800000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00000036ebc00000)
        /lib64/ld-linux-x86-64.so.2 (0x00000036eb400000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00000036ed400000)
[root@deadline01 bin]# ldd /opt/Thinkbox/Deadline8/bin/libcrypto.so.10
/opt/Thinkbox/Deadline8/bin/libcrypto.so.10: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/Thinkbox/Deadline8/bin/libcrypto.so.10)
        linux-vdso.so.1 =>  (0x00007fff715ff000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00000036ec000000)
        libz.so.1 => /lib64/libz.so.1 (0x00000036ecc00000)
        libc.so.6 => /lib64/libc.so.6 (0x00000036eb800000)
        /lib64/ld-linux-x86-64.so.2 (0x00000036eb400000)

OS is centos 6.6. Any chance for a recompile using 2.12? We cant really upgrade some of these servers, and centos 6 is 2.12

Yeah, we should definitely be shipping with libraries linked against 2.12 – all of the libraries we build should already be targeting it, I guess we just missed libssl/libcrypto :blush:

I’ll try to get those updated for the next beta, thanks for your help in figuring this out :slight_smile:

Cheers,
Jon

No worries, thanks a lot! I was worried it was something related to a dependency of deadline and this would not be an option, so this is good news for me :slight_smile:

Hey Jon,

Do you know when we could expect the rebuild using 2.12? The latest beta8 still seems to be using 2.14

cheers
l

Privacy | Site terms | Cookie preferences