During uninstall/upgrade, tools launches
vmtoolsd.exe -n vmusr --kill
to stop the existing user process. The new instance however
crashes before it could send the message, and therefore the
existing vmuser process remains.
The problem is uninstall doesn't wait for the process to
finish, and proceeds with the uninstall. This removes the
Tools registry entry which vmtoolsd.exe tries to read on
startup. It hits the assert and crashes the process.
The fix is in two places. We fixed vmtoolsd.exe so it doesn't
assert if the registry entry doesn't exist, and updated the
installer to launch and wait for the process to finish before
continue.
Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
dfltdir = Util_SafeStrdup(VMTOOLS_DATA_DIR);
#else
dfltdir = GuestApp_GetInstallPath();
- ASSERT_MEM_ALLOC(dfltdir);
#endif
- catdir = dfltdir;
+ catdir = (dfltdir) ? dfltdir : ".";
}
file = g_strdup_printf("%s%smessages%s%s%s%s.vmsg",