Previously, merging of snapshots failed. This was because a TypeError made it impossible to merge a base raw volume. A patch to VDSM now corrects the TypeError and it is possible to merge base raw volumes. Merging of snapshots no longer fails.
Created attachment 593161[details]
vdsm log
I have a VM with several snapshots. I was trying to delete the middle snapshot.
The operation has failed. Here is the vdsm exception. Full vdsm log attached.
6f1a42b3-9c28-405b-97ec-09e9aa4bcd03::ERROR::2012-06-20 11:05:35,468::image::1137::Storage.Image::(merge) string indices must be i
ntegers, not str
Traceback (most recent call last):
File "/usr/share/vdsm/storage/image.py", line 1122, in merge
chainToRemove = self._baseRawVolumeMerge(sdDom, srcVolParams, volParams, [vols[vName] for vName in chain])
File "/usr/share/vdsm/storage/image.py", line 1039, in _baseRawVolumeMerge
ch = sdDom.produceVolume(imgUUID=srcVolParams['imgUUID'], volUUID=v['volUUID'])
TypeError: string indices must be integers, not str
8d7ade0c-ae49-4ba8-844d-d4e5e233e8e4::DEBUG::2012-06-20 11:05:35,469::task::588::TaskManager.Task::(_updateState) Task=`8d7ade0c-a
e49-4ba8-844d-d4e5e233e8e4`::moving from state aborting -> state racquiring
6f1a42b3-9c28-405b-97ec-09e9aa4bcd03::ERROR::2012-06-20 11:05:35,477::task::853::TaskManager.Task::(_setError) Task=`6f1a42b3-9c28-405b-97ec-09e9aa4bcd03`::Unexpected error
Traceback (most recent call last):
File "/usr/share/vdsm/storage/task.py", line 861, in _run
return fn(*args, **kargs)
File "/usr/share/vdsm/storage/task.py", line 320, in run
return self.cmd(*self.argslist, **self.argsdict)
File "/usr/share/vdsm/storage/securable.py", line 63, in wrapper
return f(self, *args, **kwargs)
File "/usr/share/vdsm/storage/sp.py", line 1802, in mergeSnapshots
image.Image(repoPath).merge(sdUUID, vmUUID, imgUUID, ancestor, successor, postZero)
File "/usr/share/vdsm/storage/image.py", line 1138, in merge
raise se.SourceImageActionError(imgUUID, sdUUID, str(e))
SourceImageActionError: Error during source image manipulation: 'image=816480cb-1102-4fc3-99c5-d32ad660eba1, source domain=a33013b6-24a4-4952-ba8d-7a85a6ca151a: string indices must be integers, not str'
Comment 2Eduardo Warszawski
2012-06-22 12:18:14 UTC
Created attachment 593161 [details] vdsm log I have a VM with several snapshots. I was trying to delete the middle snapshot. The operation has failed. Here is the vdsm exception. Full vdsm log attached. 6f1a42b3-9c28-405b-97ec-09e9aa4bcd03::ERROR::2012-06-20 11:05:35,468::image::1137::Storage.Image::(merge) string indices must be i ntegers, not str Traceback (most recent call last): File "/usr/share/vdsm/storage/image.py", line 1122, in merge chainToRemove = self._baseRawVolumeMerge(sdDom, srcVolParams, volParams, [vols[vName] for vName in chain]) File "/usr/share/vdsm/storage/image.py", line 1039, in _baseRawVolumeMerge ch = sdDom.produceVolume(imgUUID=srcVolParams['imgUUID'], volUUID=v['volUUID']) TypeError: string indices must be integers, not str 8d7ade0c-ae49-4ba8-844d-d4e5e233e8e4::DEBUG::2012-06-20 11:05:35,469::task::588::TaskManager.Task::(_updateState) Task=`8d7ade0c-a e49-4ba8-844d-d4e5e233e8e4`::moving from state aborting -> state racquiring 6f1a42b3-9c28-405b-97ec-09e9aa4bcd03::ERROR::2012-06-20 11:05:35,477::task::853::TaskManager.Task::(_setError) Task=`6f1a42b3-9c28-405b-97ec-09e9aa4bcd03`::Unexpected error Traceback (most recent call last): File "/usr/share/vdsm/storage/task.py", line 861, in _run return fn(*args, **kargs) File "/usr/share/vdsm/storage/task.py", line 320, in run return self.cmd(*self.argslist, **self.argsdict) File "/usr/share/vdsm/storage/securable.py", line 63, in wrapper return f(self, *args, **kwargs) File "/usr/share/vdsm/storage/sp.py", line 1802, in mergeSnapshots image.Image(repoPath).merge(sdUUID, vmUUID, imgUUID, ancestor, successor, postZero) File "/usr/share/vdsm/storage/image.py", line 1138, in merge raise se.SourceImageActionError(imgUUID, sdUUID, str(e)) SourceImageActionError: Error during source image manipulation: 'image=816480cb-1102-4fc3-99c5-d32ad660eba1, source domain=a33013b6-24a4-4952-ba8d-7a85a6ca151a: string indices must be integers, not str'