Symptoms:
When creating a snapshot on a Horizon Virtual Machine, you experience these symptoms:
/vmfs/volumes/<datastoreUUID>/<folder>/vmware.log
, you see entries similar to:vmx| DIGESTLIB-FILE : DigestLib_FlushMetaDataToDisk: digest header of parent digest has CID 0x3f45376c new CID of child digest is 0x529596f4, parent digest may be corrupt, failing meta-data update on child.
vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-flat.vmdk" : closed.
vmx| DISKLIB-LIB_CREATE : DiskLibPostCreateChild: could not init child digest disk: Invalid parameter (8).
vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-sesparse.vmdk" : closed.
vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-000001-sesparse.vmdk" : closed.
vmx| DISKLIB-LIB_CREATE : Encountered error in DiskLibPostCreateChild: A digest operation has failed.
..
vmx| DISKLIB-LIB_CREATE : Failed to create link: A digest operation has failed (66)
vmx| Er(02) vcpu-X - DISKLIB-LIB_CREATE : DiskLib_CreateChild: failed to create child disk: A digest operation has failed (66).
..
vmx| DISKLIB-LIB : DiskLibUnlinkInt: Disk delete successfully completed { result:0, Msg: 'The operation completed successfully', fileName:'/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-000001-digest.vmdk'}
vmx| SNAPSHOT: SnapshotBranchDisk: Failed to branch disk: '/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>.vmdk' -> '/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>.vmdk' : A digest operation has failed (66)
vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-flat.vmdk" : closed.
vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-flat.vmdk" : closed.
vmx| SNAPSHOT: SnapshotBranch failed: A digest operation has failed (5).
/var/run/log/vpxa.log
, you see entries similar to:YYYY-MM-DDTHH:MM:SS info vpxa[5899216] [Originator@6876 sub=Default opID=<OP-ID>] [VpxLRO] -- ERROR task-#### -- vpxa -- vpxapi.VpxaService.createSnapshot: vim.fault.GenericVmConfigFault:
--> Result:
--> (vim.fault.GenericVmConfigFault) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = (vmodl.LocalizableMessage) [
--> (vmodl.LocalizableMessage) {
--> key = "msg.checkpoint.save.fail2.std3",
--> arg = (vmodl.KeyAnyValue) [
--> (vmodl.KeyAnyValue) {
--> key = "1",
--> value = "msg.disklib.DIGEST"
--> }
--> ],
--> message = "An error occurred while saving the snapshot: A digest operation has failed."
--> },
--> (vmodl.LocalizableMessage) {
--> key = "msg.checkpoint.save.fail2.std",
--> arg = (vmodl.KeyAnyValue) [
--> (vmodl.KeyAnyValue) {
--> key = "1",
--> value = "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-Snapshot.vmsn"
--> }
--> ],
--> message = "An error occurred while saving snapshot file "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-Snapshot.vmsn"."
--> },
--> (vmodl.LocalizableMessage) {
--> key = "msg.snapshot.vigor.take.error",
--> arg = (vmodl.KeyAnyValue) [
--> (vmodl.KeyAnyValue) {
--> key = "1",
--> value = "msg.disklib.DIGEST"
--> }
--> ],
--> message = "An error occurred while taking a snapshot: A digest operation has failed."
--> }
--> ],
--> reason = "An error occurred while saving the snapshot: A digest operation has failed."
--> msg = "An error occurred while saving the snapshot: A digest operation has failed."
--> }
--> Args:
-->
--> Arg vmid:
--> 179
--> Arg name:
--> "VM Snapshot"
--> Arg description:
--> ""
--> Arg memory:
--> true
--> Arg quiesce:
--> false
The issue has been observed on Horizon persistent clone VMs.
To workaround the issue:
ddb.digestFilename = "<VMname>-digest.vmdk"
ddb.digestType = "file"
<VMname>-digest.vmdk
<VMname>-digest-flat.vmdk
scsi0:0.digest = "TRUE"