Package: open-vm-tools
Version: 2:8.8.0+2012.05.21-724730-1+nmu2
Severity: important
Dear Maintainer,
The open-vm-tools package should be responsible for provinding drag-and-drop
support,
however there is a grave problem as there is no synchronization of this
operation.
* Expected Operation:
Dragging a file from the host into the virtual machine will result in
1) copying the data from the OS into the virtual machine (tmp folder)
2) copying the file from the tmp dir to the drop-location.
3) Having the file completely transferred
* Actual Operation:
The file will often be transfered partially as point 1 and 2 arent synchronized.
Easy to reproduce with big files, whereas dropping on existing files typically
works since you have to click the overwrite button
* Details:
the official vmware tools do this correctly by using a "vmblock" fileystem
that blocks access to the file in the tmp dir until its completely transfered.
This module is not running when using the open-vm tools
(still a problem with newer versions as far as I can tell.)
I tried running the vmblock fs by hand and editing the init.d script,
but my attempts apparently failed, possibly the order is rather important
The difference to the official tools seems to be primarly in this script,
and it seems there is alot of the startup/shutdown procedures missing.
-- System Information:
Debian Release: 7.3
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 3.2.0-4-686-pae (SMP w/6 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages open-vm-tools depends on:
ii libc6 2.13-38
ii libdumbnet1 1.12-3.1
ii libfuse2 2.9.0-2+deb7u1
ii libgcc1 1:4.7.2-5
ii libglib2.0-0 2.33.12+really2.32.4-5
ii libicu48 4.8.1.1-12+deb7u1
ii libprocps0 1:3.3.3-3
ii libstdc++6 4.7.2-5
Versions of packages open-vm-tools recommends:
ii ethtool 1:3.4.2-1
ii open-vm-dkms 2:8.8.0+2012.05.21-724730-1+nmu2
ii zerofree 1.0.2-1
Versions of packages open-vm-tools suggests:
ii open-vm-toolbox 2:8.8.0+2012.05.21-724730-1+nmu2
-- Configuration Files:
/etc/init.d/open-vm-tools changed:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC=`basename $0`
NAME=vmtoolsd
DAEMON=/usr/bin/$NAME
PIDPATH=/var/run
PIDFILE=$PIDPATH/$NAME.pid
DAEMON_ARGS="--background ${PIDFILE}"
SCRIPTNAME=/etc/init.d/${DESC}
[ -x "$DAEMON" ] || exit 0
.. /lib/init/vars.sh
.. /lib/lsb/init-functions
exit_if_not_in_vm () {
if [ ! -x /usr/bin/vmware-checkvm ] || ! /usr/bin/vmware-checkvm >
/dev/null 2>&1
then
[ "$VERBOSE" != no ] && log_daemon_msg "Not starting as we're not
running in a VM." "$NAME"
[ "$VERBOSE" != no ] && log_end_msg 0
exit 0
fi
}
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test
> /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
--exec $DAEMON
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
do_load_modules() {
vmware_start_vmblock
# the daemon works well without the modules, so ignore
# if they fail to load.
[ "$VERBOSE" != no ] && log_daemon_msg "Loading $DESC modules"
[ "$VERBOSE" != no ] && log_progress_msg "vmhgfs"
modprobe vmhgfs
[ "$VERBOSE" != no ] && log_progress_msg "vmsync"
modprobe vmsync
log_end_msg 0
}
do_remove_modules()
{
[ "$VERBOSE" != no ] && log_daemon_msg "Removing $DESC modules"
[ "$VERBOSE" != no ] && log_progress_msg "vmhgfs"
modprobe -r vmhgfs
[ "$VERBOSE" != no ] && log_progress_msg "vmsync";
modprobe -r vmsync
log_end_msg 0
}
vmware_start_vmblock() {
mkdir -p -m 1777 /tmp/VMwareDnD
if ! grep -q "fuse" /proc/filesystems; then
# Try to load fuse module if it is not there yet.
modprobe fuse > /dev/null 2>&1 || return 1
fi
# Vmblock-fuse dev path could be /var/run/vmblock-fuse
# or /run/vmblock-fuse. Bug 758526.
if grep -q "/run/vmblock-fuse fuse\.vmware-vmblock " /etc/mtab; then
true;
else
mkdir -p /var/run/vmblock-fuse
vmware-vmblock-fuse -o
subtype=vmware-vmblock,default_permissions,allow_other /var/run/vmblock-fuse
fi
}
vmware_stop_vmblock() {
# Check if the file system is mounted and only unmount if so.
# Start with FUSE-based version first, then legacy one.
#
# Vmblock-fuse dev path could be /var/run/vmblock-fuse,
# or /run/vmblock-fuse. Bug 758526.
if grep -q "/run/vmblock-fuse fuse\.vmware-vmblock " /etc/mtab; then
# if it's mounted, then unmount it
umount /var/run/vmblock-fuse
fi
}
case "${1}" in
start)
# Check if we're running inside VMWare
exit_if_not_in_vm
# load modules
do_load_modules
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1)
[ "$VERBOSE" != no ] && log_end_msg 0
RETVAL=0
;;
2)
[ "$VERBOSE" != no ] && log_end_msg 1
RETVAL=1
;;
esac
;;
stop)
# Check if we're running inside VMWare
exit_if_not_in_vm
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1)
[ "$VERBOSE" != no ] && log_end_msg 0
RETVAL=0
;;
2)
[ "$VERBOSE" != no ] && log_end_msg 1
RETVAL=1
;;
esac
do_remove_modules
;;
force-reload|restart)
exit_if_not_in_vm
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_remove_modules
do_load_modules
do_start
case "$?" in
0)
log_end_msg 0
RETVAL=0
;;
1) # Old process is still running
log_end_msg 1
RETVAL=1
;;
*) # Failed to start
log_end_msg 1
RETVAL=1
;;
esac
;;
*)
# Failed to stop
log_end_msg 1
RETVAL=1
;;
esac
;;
*)
log_success_msg "Usage: ${0} {start|stop|restart|force-reload}"
exit 1
;;
esac
exit $RETVAL
/etc/vmware-tools/tools.conf changed:
-- no debconf information
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]