30 July 2013

Error in the RPC receive loop: RpcIn: Unable to send

Problem:



Error message above is flooded in Event Viewer on a MS Windows VM guest when vmtools upgrade is performed to 5.1 but I encountered the same error recently after fresh installation of VMWare tools on new VM guest.
Error message for Linux guest is the same. According to KB2036350 - this should be fix the problem, however the tools.conf sometimes is not created.



Resolution:

The RPC errors mentioned above is caused because of missing vmtools configuration file (tools.conf) within VMware Tools directory. Once you put the configuration file in place and restart the VMTools service, everything seems to be OK.
This procedure is preferred in production environment because guest reboot is not required. You may resolve the problem by simply uninstall/install vmtools but you must schedule VM guest restart at your convenience.

Create tools.conf in the location for:
- MS Windows 2K/XP2K3
C:\Documents and Settings\All Users\Application Data\VMware\VMware Tools\tools.conf

- Windows Vista/7/2K8, and 2012:
C:\ProgramData\VMware\VMware Tools\tools.conf

- Linux:
/etc/vmware-tools/tools.conf

Put the following into the file:

[logging]
log = true

# Enable tools service logging to vmware.log

vmsvc.level = debug
vmsvc.handler = vmx

# Enable new “vmusr” service logging to vmware.log

vmusr.level = error
vmusr.handler = vmx

# Enable “Volume Shadow Copy” service logging to vmware.log

vmvss.level = debug
vmvss.handler = vmx


Then restart VM Tools

- Windows command prompt:
c:\Users\user1> net stop VMtools && net start VMtools

- Linux:
$sudo /etc/init.d/vmware-tools restart

I've used this simple VBscript below to copy tools.conf to the appropriate location and restart vmtools service. Use it standalone, for mass deployments - by MS Group Policy, VMware Guest Console or whatever you decide.


'Copy file: source - destination  
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "\\NAS\PATH_TO \tools.conf", "C:\Documents and Settings\All Users\Application Data\VMware\VMware Tools\"

' Stop & Start Service' 
Dim objWMIService, objItem, objService
Dim colListOfServices, strComputer, strService, intSleep 
strComputer = "."
intSleep = 10000
' Caution -> strService is case sensitive!
strService = " 'VMtools' "
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service Where Name ="_
& strService & " ")
For Each objService in colListOfServices
objService.StopService()
WSCript.Sleep intSleep
objService.StartService()
Next 
WScript.Quit




7 comments:

  1. Thanks man! This solved the problem which was present on a bunch of our Exchange servers

    ReplyDelete
  2. That fixed
    Thanks a lot

    ReplyDelete
  3. T H A N K Y O U!!!
    VMWare was not able to give the correct hint. appreciate!

    ReplyDelete
  4. Work for me!!! Thanks a lot!!!!

    ReplyDelete
  5. If you have multiple users logged on the machine you might have to kill all vmtools processes also for them.

    ReplyDelete

Note: only a member of this blog may post a comment.