[Xymon] [External] Memory leak in Windows Virtual Disk service caused by Xymon Windows Powershell client

Beck, Zak zak.beck at accenture.com
Wed Mar 14 10:21:42 CET 2018


Hi Seb

I’ve got hundreds of VMs running the Powershell client on Windows Server 2008R2, 2012R2 and 2016 and I don’t see this issue. I just checked a couple of servers, vds.exe is between 2MB and 20MB and around 21 threads. Same version of vds.exe too.

I’m wondering if function XymonDiskPart has something to do with it. This only runs on slow scans (every 6 hours-ish by default). This runs ‘diskpart’ and then

“list disk”
For each disk returned, “select disk {n}” and then “detail disk”

Maybe you could try this from the command prompt on a server with vds stopped and see if it restarts it. You could also try commenting out this line (3875, towards the end) in the client and see what happens (insert a # at the beginning of the line):

        $script:diskpartData = XymonDiskPart


Alternatively, it could be the disk utilisation code which is using Windows API calls in kernel32.dll – FindFirstVolume, FindNextVolume, FindVolumeClose, GetVolumeInformation, GetVolumePathNamesForVolumeNameW, GetDiskFreeSpaceEx and GetDriveType. The MSDN documentation for these doesn’t mention the Virtual Disk Service but I guess they could be using it.

Zak

From: SebA [mailto:spah at syntec.co.uk]
Sent: Tuesday, 13 March 2018 18:14
To: Beck, Zak <zak.beck at accenture.com>; Xymon Mailing List <xymon at xymon.com>
Subject: [External] Memory leak in Windows Virtual Disk service caused by Xymon Windows Powershell client

I have noticed a memory and thread leak in the Windows Virtual Disk service - or vds.exe from the process list.  This service is set to Manual by default and gets started when starting the XymonPSClient service on Windows 2008 R2.  It starts off using 32 threads, but grows forever, the virtual memory and physical memory (which starts under 6 MB) used slowly grow too.

Has anyone noticed this problem and do they have a solution to it?

On Windows Server 2012, the Virtual Disk service does not get started by Xymon Windows Powershell client, so it's obviously not started directly by the client, but by a request for information.  I looked into known memory leaks for vds.exe and the one I found was not applicable to 2008 R2, only 2008 and Vista.  The version of vds.exe we have is later than the version with the fix: 6.1.7601.17514 from 2010.

The quick workaround is simply to stop the Virtual Disk Service - but as soon as the PSclient has used it, it does not stop properly and terminates unexpectedly, so one needs to set it not to restart on crash, or stop it immediately after starting, or to Disabled.  But it would be good to know why it is starting, not stopping, and leaking threads / memory!

Kind regards,

SebA

________________________________

This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy.
______________________________________________________________________________________

www.accenture.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20180314/3e208738/attachment.html>


More information about the Xymon mailing list