Quantcast
Channel: schwarz-weiss.cc
Viewing all articles
Browse latest Browse all 63

vmware with debian stretch – libcurl problem

$
0
0

Prelude
It seems this is not the first time of vmware and libcurl problems:

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.


Viewing all articles
Browse latest Browse all 63