Prelude
It seems this is not the first time of vmware and libcurl problems:
- https://sovietux.wordpress.com/2015/05/11/vmware-11-crashing-with-curl-7-42/
- http://alexmufatti.it/2013/08/20/vmware-crash-on-startup-after-curl-update/
I’m using vmware workstation for private and job based tasks. The version 10.0.6 works flawlessly but after I updated to version 11.1.0 the program keeps crashing. The crashes happens not with the vmx, but the gui disappears silently. In the logs you’ll see similiar backtraces:
SymBacktrace[0] 00007fff7b1ace50 rip=00007f35429d47de in function Util_BacktraceWithFunc in object /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0 loaded at 00007f3542618000 SymBacktrace[1] 00007fff7b1ace80 rip=00007f35427784ea in function Panic_Panic in object /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0 loaded at 00007f3542618000 SymBacktrace[2] 00007fff7b1ad2b0 rip=00007f354277869d in function Panic in object /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0 loaded at 00007f3542618000 SymBacktrace[3] 00007fff7b1ad390 rip=00007f35427bb308 in function (null) in object /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0 loaded at 00007f3542618000 SymBacktrace[4] 00007fff7b1ad480 rip=00007f354e90f8d0 in function (null) in object /lib/x86_64-linux-gnu/libpthread.so.0 loaded at 00007f354e900000 SymBacktrace[5] 00007fff7b1ada38 rip=00007f354e3bd664 in function cfree in object /lib/x86_64-linux-gnu/libc.so.6 loaded at 00007f354e341000 SymBacktrace[6] 00007fff7b1ada40 rip=00007f354c9061cd in function CRYPTO_free in object /usr/lib/vmware/lib/libcrypto.so.1.0.1/libcrypto.so.1.0.1 loaded at 00007f354c8a1000 SymBacktrace[7] 00007fff7b1ada50 rip=00007f3541afd14d in function SSL_CTX_set_alpn_protos in object /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 loaded at 00007f3541abf000 SymBacktrace[8] 00007fff7b1ada70 rip=00007f35423f95cf in function (null) in object /usr/lib/x86_64-linux-gnu/libcurl.so.4 loaded at 00007f35423a3000 SymBacktrace[9] 00007fff7b1adc00 rip=00007f35423fc510 in function (null) in object /usr/lib/x86_64-linux-gnu/libcurl.so.4 loaded at 00007f35423a3000 SymBacktrace[10] 00007fff7b1adc30 rip=00007f35423b5d9d in function (null) in object /usr/lib/x86_64-linux-gnu/libcurl.so.4 loaded at 00007f35423a3000 SymBacktrace[11] 00007fff7b1adc50 rip=00007f35423c6101 in function (null) in object /usr/lib/x86_64-linux-gnu/libcurl.so.4 loaded at 00007f35423a3000 SymBacktrace[12] 00007fff7b1adc70 rip=00007f35423d99d6 in function (null) in object /usr/lib/x86_64-linux-gnu/libcurl.so.4 loaded at 00007f35423a3000 SymBacktrace[13] 00007fff7b1add10 rip=00007f35423da9a4 in function (null) in object /usr/lib/x86_64-linux-gnu/libcurl.so.4 loaded at 00007f35423a3000 SymBacktrace[14] 00007fff7b1ade30 rip=00007f35423daab7 in function curl_multi_socket_action in object /usr/lib/x86_64-linux-gnu/libcurl.so.4 loaded at 00007f35423a3000 SymBacktrace[15] 00007fff7b1ade50 rip=00007f353e6ae537 in function (null) in object /usr/lib/vmware/lib/libcds.so/libcds.so loaded at 00007f353e693000 SymBacktrace[16] 00007fff7b1ade90 rip=00007f353d54abfa in function (null) in object /usr/lib/vmware/lib/libvmwareui.so.0/libvmwareui.so.0 loaded at 00007f353cbc2000 SymBacktrace[17] 00007fff7b1adef0 rip=00007f354cf19b4d in function g_main_context_dispatch in object /lib/x86_64-linux-gnu/libglib-2.0.so.0 loaded at 00007f354ced0000 SymBacktrace[18] 00007fff7b1adf80 rip=00007f354cf19f20 in function (null) in object /lib/x86_64-linux-gnu/libglib-2.0.so.0 loaded at 00007f354ced0000 SymBacktrace[19] 00007fff7b1adfe0 rip=00007f354cf1a242 in function g_main_loop_run in object /lib/x86_64-linux-gnu/libglib-2.0.so.0 loaded at 00007f354ced0000 SymBacktrace[20] 00007fff7b1ae010 rip=00007f3544ffb597 in function gtk_main in object /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 loaded at 00007f3544ecb000 SymBacktrace[21] 00007fff7b1ae090 rip=00007f353c5e76b9 in function main in object /usr/lib/vmware/lib/libvmware.so/libvmware.so loaded at 00007f353c3c1000 SymBacktrace[22] 00007fff7b1ae320 rip=00007f354f1755c7 in function main in object /usr/lib/vmware/bin/vmware loaded at 00007f354f15f000 SymBacktrace[23] 00007fff7b1ae420 rip=00007f354e362b45 in function __libc_start_main in object /lib/x86_64-linux-gnu/libc.so.6 loaded at 00007f354e341000 SymBacktrace[24] 00007fff7b1ae4e0 rip=00007f354f174ce9 in function (null) in object /usr/lib/vmware/bin/vmware loaded at 00007f354f15f000
The problem is caused by the libcurl library. Debian stretch uses a too new version of the library (version: 7.42.1). It seems that the gui does some background tasks, which uses the libcurl interface. There are two possible ways of fixing this problem:
1) downgrade and hold the old packages
wget http://ftp.de.debian.org/debian/pool/main/c/curl/curl_7.38.0-4_amd64.deb wget http://ftp.de.debian.org/debian/pool/main/c/curl/libcurl3_7.38.0-4_amd64.deb wget http://ftp.de.debian.org/debian/pool/main/c/curl/libcurl3-gnutls_7.38.0-4_amd64.deb
Install downloaded packages
dpkg -i *
set packages to hold with aptitude
aptitude hold curl libcurl3 libcurl3-gnutls
verify hold status
aptitude search ~ahold
2) use library from /usr/lib/vmware/lib/ directory
vmware shipps own library versions which are located in /usr/lib/vmware/lib/. With LD_LIBRARY_PATH is it possible to load the right library version in front of starting the main program. I recommend to change the vmware / vmplayer scripts.
Diff for vmplayer
--- /usr/bin/vmplayer.old 2015-05-12 13:49:19.584721486 +0200 +++ /usr/bin/vmplayer 2015-05-12 13:50:33.144982915 +0200 @@ -102,6 +102,7 @@ if "$BINDIR"/vmware-modconfig --appname="VMware Player" --icon="vmware-player" && vmware_module_exists $vmmon; then + export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libcurl.so.4/libcurl.so.4 exec "$libdir"/bin/"vmplayer" "$@" fi
Diff for vmware
--- /usr/bin/vmware.old 2015-05-12 15:39:11.468239667 +0200 +++ /usr/bin/vmware 2015-05-12 15:59:25.512554310 +0200 @@ -52,6 +52,7 @@ # If there are command line arguments like -version, launch the binary without # checking configuration state or running the module updater. if echo "$1" | grep -q "^-"; then + export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libcurl.so.4/libcurl.so.4 exec "$libdir"/bin/"vmware" "$@" fi @@ -102,6 +103,7 @@ if "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation" && vmware_module_exists $vmmon; then + export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libcurl.so.4/libcurl.so.4 exec "$libdir"/bin/"vmware" "$@" fi
I hope vmware will fix this in the near future.