Knowledge Base

The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides
 
Search the VMware Knowledge Base (KB)   View by Article ID
 

QueryChangedDiskAreas API call returns a FileFault error (2035976)

Symptoms

When you execute the QueryChangedDiskAreas API call with a snapshot parameter, and with an offset of 0 and a changeId of *, the call returns a FileFault error similar to:
2012-09-04T11:56:17.846+02:00 [03616 info 'Default' opID=52dc4afb] [VpxLRO] -- ERROR task-internal-4118 -- vm-26512 -- vim.VirtualMachine.queryChangedDiskAreas: vim.fault.FileFault:
--> Result:
--> (vim.fault.FileFault) {
-->    dynamicType = <unset>,
-->    faultCause = (vmodl.MethodFault) null,
-->    file = "/vmfs/volumes/4ff2b68a-8b657a8e-a151-3cd92b04ecdc/VM/VM.vmdk",
-->    msg = "Error caused by file /vmfs/volumes/4ff2b68a-8b657a8e-a151-3cd92b04ecdc/VM/VM.vmdk",
--> }

Cause

This issue occurs when attempting to call QueryChangedAreaDisks on a CBT-enabled virtual machine which has been migrated to a different datastore. Occasionally, this issue has also been observed on CBT-enabled virtual machines which have not been migrated.

Resolution

This is a known issue, and is being reviewed by VMware.

To work around this issue, disable then re-enable Changed Block Tracking (CBT) on the affected virtual machine:

  1. Remove any existing snapshots. For more information, see Understanding virtual machine snapshots in VMware ESXi and ESX (1015180).

  2. Disable CBT using the VI API or the Managed Object Browser (MOB):

    • To disable CBT using the Managed Object Browser:

      Note: For more information on using the Managed Object Browser, see Using the MOB to Explore the Object Model in the vSphere API/SDK Documentation.

      1. Access the virtual machine in the MOB, and click on the ReconfigVM_Task method.
      2. Modify the VirtualMachineConfigSpec parameter to set changeTrackingEnabled to false.

        For example:

        <spec>
           <changeTrackingEnabled>false</changeTrackingEnabled>
        </spec>


    • To disable CBT using the VI API:

      • Use the setChangeTrackingEnabled API call.

        For example:

        VirtualMachineConfigSpec spec = vimPortType.getVMConfigSpec(vmMor);
        spec = new VirtualMachineConfigSpec();
        spec.setChangeTrackingEnabled(false);
        boolean reconfiguration = vimPortType.reconfigVM(vmMor, spec);


  3. Enable CBT using the VI API or Managed Object Browser. Follow the process in step 2, but set the value to true.

  4. Take a snapshot of the virtual machine.

  5. Call QueryChangedDiskAreas with the current snapshot.

Additional Information

To be alerted when this article is updated, click Subscribe to Document in the Actions box.

For related information, see Changed Block Tracking (CBT) on virtual machines (1020128).

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 7 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.
What can we do to improve this information? (4000 or fewer characters)
  • 7 Ratings
Actions
KB: