Volume Snapshots Stuck in Error Deleting on Tintri VMstore
Problem
One or more Block Storage volume snapshots are stuck in error_deleting status on a Tintri VMstore-backed deployment and cannot be deleted via the PCD UI or CLI. Deletion attempts fail silently — no explicit error is surfaced — and the snapshot reverts to error_deleting after each attempt.
Running openstack volume snapshot list shows one or more snapshots in error_deleting status:
$ openstack volume snapshot list --all-projects | grep error_deleting| [SNAPSHOT_UUID_1] | [SNAPSHOT_NAME_1] | [VOLUME_NAME_1] | error_deleting | [SIZE] GiB |
| [SNAPSHOT_UUID_2] | [SNAPSHOT_NAME_2] | [VOLUME_NAME_2] | error_deleting | [SIZE] GiB |Attempting to delete the snapshot via CLI produces no error output, but the snapshot returns to error_deleting:
$ openstack volume snapshot delete <SNAPSHOT_UUID>Environment
Private Cloud Director Virtualization - All versions
Self-Hosted Private Cloud Director Virtualization - All versions
Component: Block Storage Service, Tintri VMstore
Cause
Tintri VMstore enforces referential integrity on snapshot objects. When a volume is created by cloning a snapshot — either explicitly or as a result of volume creation from an image that was snapshot-backed — Tintri increments the cloneReferenceCount on the source snapshot. Tintri does not permit deletion of a snapshot whose cloneReferenceCount is greater than zero, even when the snapshot is flagged as isOrphaned: true on the Tintri side.
When the Block Storage Service issues a delete call to the Tintri API, the API silently blocks the operation rather than returning an explicit error. The Block Storage Service receives no failure signal, releases the coordination lock, and the snapshot transitions back to error_deleting. This cycle repeats on every subsequent delete attempt.
Block Storage Service force-delete options do not bypass this constraint — the block is enforced at the Tintri storage layer, not within the Block Storage Service itself.
Diagnostics
Step 4 — Verify the clone reference count on the Tintri backend
Log in to the Tintri VMstore management UI or query the Tintri API directly from the Block Storage host to confirm cloneReferenceCount is blocking deletion.
A cloneReferenceCount value greater than 0 confirms that the Tintri backend is blocking deletion.
If all checks above match, proceed to Workaround.
Resolution
No permanent fix exists within the Block Storage Service for this behavior. The constraint is enforced at the Tintri VMstore storage layer and cannot be bypassed through Block Storage Service configuration. Use the Workaround below to release the clone reference before deleting the snapshot.
Workaround
The following steps release the clone reference on the Tintri backend, allowing the snapshot to be deleted. The order of these steps is critical — deleting the snapshot from PCD before the reference is released at the storage layer will return the snapshot to error_deleting.
Step 1 — Migrate the source volume to a different backend
Identify the source volume UUID from the snapshot details confirmed in Step 1 of the Diagnostics section. Migrate the volume off the Tintri backend to any other available backend. This causes Tintri to release the clone reference on the snapshot.
<DESTINATION_BACKEND_HOST> must be a valid backend host string in the format <BLOCK_STORAGE_HOST_UUID>@<BACKEND_NAME>#<POOL_PATH>. Run openstack volume backend pool list to find available backends.
Monitor the volume status until migration_status returns to None and status is available before proceeding to the next step.
Step 2 — Wait for the clone reference count to drop to zero
Log in to the Tintri VMstore management UI for the relevant appliance and navigate to the snapshot list for the affected VM. Wait until the snapshot entry shows cloneReferenceCount: 0. Do not proceed to Step 3 until this is confirmed.
Alternatively, poll the Tintri API from the Block Storage host:
Step 3 — Delete the snapshot object from the Tintri VMstore UI
After confirming cloneReferenceCount is 0, delete the snapshot directly from the Tintri VMstore management UI. This removes the underlying storage object before the Block Storage Service attempts deletion.
Navigate to the snapshot list in the Tintri UI, locate the snapshot by its description (snapshot-<SNAPSHOT_UUID>), and delete it.
Step 4 — Delete the snapshot from PCD and verify removal
With the underlying Tintri object removed, the Block Storage Service delete call will succeed because no storage object remains to block it.
Confirm the snapshot no longer appears in the list:
The snapshot has been successfully removed from both the Tintri backend and PCD.
Additional Information
The
cloneReferenceCountfield on a Tintri snapshot reflects the number of volumes created by cloning that snapshot. This count must reach0before Tintri permits snapshot deletion — either via the Tintri UI or via a Block Storage Service driver call.The
isOrphaned: trueflag on the Tintri snapshot indicates that Tintri has lost the association between the snapshot and its parent VM. This flag does not remove the clone reference block.Deleting the PCD snapshot before clearing the Tintri storage object will return the snapshot to
error_deleting. The order in the Workaround section must be followed exactly.If the source volume has already been deleted in PCD but the snapshot remains stuck, the volume migration step is not applicable. Work directly with the Tintri support team to manually remove the clone reference from the VMstore before attempting PCD deletion.
In some cases, the Block Storage log may contain a Tintri
ERR-API-3107error with the messageCannot delete the shared snapshot because it has younger or older siblings. This indicates the snapshot has sibling dependencies on the Tintri side in addition to the clone reference. Engage the Tintri support team to identify and remove all sibling and clone references before reattempting deletion.Platform9 is engaged with Tintri Engineering to address this behavior and provide a more direct resolution path in a future release.
If the standard workaround does not resolve the issue, contact Platform9 Support for assistance. A Block Storage database soft-delete is available as a last resort and must only be performed under Platform9 guidance.
Last updated
