John Wolfe [Tue, 7 Mar 2023 22:57:07 +0000 (14:57 -0800)]
=================================================
open-vm-tools 12.2.0 released at this point.
=================================================
Update of the ChangeLog with the final changes in preparation for
the open-vm-tools 12.2.0 release.
Katy Feng [Wed, 18 Jan 2023 03:22:16 +0000 (19:22 -0800)]
====================================================================
The "stable-12.2.x" branch was created from the "devel" branch here.
====================================================================
Update ChangeLog with the granular push of Jan. 17, 2023.
- plus ChangeLog update of Dec 31, 2022.
Katy Feng [Wed, 18 Jan 2023 03:08:33 +0000 (19:08 -0800)]
Track Linux filesystem id (FSID) for quiesced (frozen) filesystems
Tracking the filesystem FSID along with each file descriptor (FD)
as the ioctl FIFREEZE is done. An EBUSY could be seen because of
an attempt to freeze the same superblock more than once depending
on the OS configuration (e.g. usage of bind mounts). An EBUSY could
also mean another process has locked or frozen that filesystem.
When an EBUSY is received, the filesyste FSID is checked against the
list of filesystems that have already be quiesced. If not previously
seen, a warning that the filesystem is controlled by another process
is logged and the quiesced snapshot request will be rejected.
Katy Feng [Wed, 18 Jan 2023 03:08:33 +0000 (19:08 -0800)]
FreeBSD: Support newer releases and code clean-up for earlier versions.
Changes to allow open-vm-tools and drivers to be compiled for newer
FreeBSD releases and clean-up/remove code for earlier FreeBSD
releases that are no longer supported by the FreeBSD Foundation.
- remove old FreeBSD version support.
- trap SIGBUS while VmCheckSafe().
- fix build on recent versions.
- fix build after 1400043
- fix build after 1400051.
- replace deprecated NO_MAN by MK_MAN=no.
John Wolfe [Sun, 1 Jan 2023 06:13:07 +0000 (22:13 -0800)]
open-vm-tools SUSE: Detect the proto files for the containerd grpc client
On SUSE systems, the Go src'es are installed in a different location,
namely /usr/share/go/1.18/contrib/src.
Extend the config checks to detect that location.
John Wolfe [Sun, 1 Jan 2023 06:13:07 +0000 (22:13 -0800)]
Add missing error codes for AsyncSocket_GetGenericError()
AsyncSocket_GetGenericError() returns ETIMEDOUT or ECONNREFUSED
errors when they are encountered. Added cross-platform #defines that
represent these codes.
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
Inclusive terminology - "disabled"
Partial "disabled" clean-up:
- Change comments from "disable(d)" to "deactivate(d)"
- Change comments from "enable" to "activate" for grammar consistency
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
Linux guest identification: Make the code more robust.
The code to read and parse the os-release data isn't doing a good job
of protecting the tools daemon. Fixed this.
- do not depend on sscanf.
- bound the size of parameters;
- better checking for syntax errors.
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
Silence ComponentMgr logs for a missing support file.
Components managed by the componentMgr plugin are often optional.
The missing component script file is a normal condition.
Silenced the logs by changing the message level from g_info to g_debug.
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
Limit the number of RPC vsocket connect() retries for ECONNRESET errors.
If a guest VM has been configured with 'guest_rpc.rpci.usevsocket = "FALSE"'
to work around a problem in ESXi 6.0 ot 6.5 (KB 2149941), that guest VM
may experience high CPU usage on open-vm-tools 12.1.0 and 12.1.5.
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
[TimeInfo] Handle notifications and get updates
TimeInfo, which is part of TimeSync plugin, can be
used to query, set, subscribe, and receive updates for
time-related information from the host when guest is
using precisionclock to consume time from the host.
Previous changes laid foundation to subscribe and
unsubscribe for TimeInfo updates in open-vm-tools during
init/shutdown.
When open-vm-tools subscribes for TimeInfo updates, VMX
will send a notification GuestRPC to tools if and
when the timing properties change. This change
adds support to handle such GuestRPCs from VMX.
The handler for the GuestRPC is pretty straightforward
for now: it queues an async task that simply gets
all updates and logs them.
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
Limit retry if the VMX RESETs a vsock connection
If guest_rpc.rpci.usevsocket = "FALSE" is set, a vsock
connect() will always fail with RESET. This confused code that
thought it could only happen for secure sockets when they
were quickly re-used.
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
[TimeInfo] Subscribe/unsubscribe to notifications during init/shutdown
This change adds support for subscribing to time info notifications
when this feature is enabled in the tools. As a result VMX will
send time info notifications to the tools when host timing
properties change. The change adds support to perform subscribe/
unsubscribe GuestRPCs from tools. Note that, handling of notification
(received from VMX) will be implemented in the next change.
Katy Feng [Fri, 23 Dec 2022 00:25:50 +0000 (16:25 -0800)]
[TimeInfo] Introduce TimeInfo in TimeSync plugin
This change lays a foundation for upcoming changes to
support TimeInfo feature in open-vm-tools. TimeInfo feature
is introduced as part of TimeSync plugin and can be
used to query, set, subscribe, and receive updates for
time-related information from the host when guest is
using precisionclock to consume time from the host.
This change simply adds a new file and basic init/shutdown
routines which are called as part of TimeSync plugin
load/unload. The change also introduces a config option
to enable/disable this feature (default is off). The
feature is Linux-only for now.
Upcoming changes will add support for subscribing and
receiving TimeInfo updates.
John Wolfe [Tue, 29 Nov 2022 21:17:22 +0000 (13:17 -0800)]
=================================================
open-vm-tools 12.1.5 released at this point.
=================================================
Update of the ChangeLog with the final changes in preparation for
the open-vm-tools 12.1.5 release.
John Wolfe [Thu, 10 Nov 2022 20:01:14 +0000 (12:01 -0800)]
Avoid a vmtoolsd service error message if not on a VMware hypervisor.
When open-vm-tools comes preinstalled in a base Linux release, the
vmtoolsd services are started automatically at system start
and desktop login. If running on physical hardware or in a non-VMware
hypervisor, the services will emit an error message to the systemd's
logging service before stopping.
John Wolfe [Thu, 10 Nov 2022 20:01:14 +0000 (12:01 -0800)]
Make Linux perl based customization work with the cloud-init workflow.
To resolve issues seen where users want to set a vm's networking
and apply cloud-init userdata together before the vm is booted, the
deployPkg plugin has been modified to wait for cloud-init
execution to finish. This allows cloud-init to finish execution
completely before the customization process triggers a reboot
of the guest.
This change is solely in the deployPkg plugin side, so a user can get
this change by upgrading their open-vm-tools in the guest/template.
Crossport of change 10318445 and 10330918 from main to vmtools-prod-cpd.
John Wolfe [Thu, 10 Nov 2022 20:01:14 +0000 (12:01 -0800)]
Add a null undo function to the vmbackup null provider.
If a snapshot operation times out, vmbackup can attempt
to undo quiescing. Since no quiescing is done for the null
backup provider, no undo function was provided. If vmbackup
attempts to call the undo function, it dereferences a garbage
pointer resulting in a segfault.
Rather than add null backup provider specific checks to vmbackup,
this change adds a null undo function to provide vmbackup with a
valid function pointer it can call. The new undo function updates
the vmbackup state machine state with a new currentOpName, but
has no other effect. currentOpName is set to the calling
function name, e.g. __FUNCTION__.
John Wolfe [Fri, 4 Nov 2022 18:45:05 +0000 (11:45 -0700)]
Add explanatory comments for Coverity false positives.
Add comments for two memory leak false positives reported by a
Coverity scan of open-vm-tools. Don't annotate since the
annotations can't be made specified to the leaked variable, so
that if an actual leak were introduced in the future an annotation
would cause it to be reported as a false positive.
For the same reason, replace a leaked storage annotation added
previously with an explanatory comment.