Page 1 of 1

Snapshot operation ruined the system

Posted: 18. Feb 2009, 23:44
by zoli11
Hi,

I tried to delete an older snapshot, but during the merging operation the system ran out of space.

Now I can't start the guest system any more, it complains about the vdi file, when I attach the VDI to another virtual system it bluescreens.

Great, four days of work deleted...

If anyone has any tips please let me know.

Virtualbox, be cursed.

Z11

Posted: 19. Feb 2009, 00:00
by vbox4me2
Great! so when you drive your car thru a carwash with the windows open you blame the carwash for flooding your car then...

Posted: 19. Feb 2009, 12:41
by zoli11
Well, it's not self-explanatory that deleting a snapshot will ruin the entire VDI file, if there's not enough *additional* space on the disc.

Second, where I learned programming we check the results of an operation before we *delete* the frigging files we started with.
(Furthermore we check if the needed resources are there before we start an operation, that's three lines of code)

But that's what you get if you use free software. Amateurish stuff that costs you more in time than the professional product would ever cost in money...

Posted: 19. Feb 2009, 14:09
by TerryE
I do think that this a case of the workman blaming the tool. If you read the relevant section in my tutorial All about VDIs, you will see that to delete a snapshot, VBox needs to append changed blocks to one of the snapshots, hence the space increase in the interim.

Perhaps where the design falls short is in the fact that since this is in effect an append operation, then the writeback of the blockmap could be deferred in this case to after the completion of the append so the in effect fail would result in the snapshot being logically the same as at the start.

Posted: 19. Feb 2009, 14:27
by zoli11
so the in effect fail would result in the snapshot being logically the same as at the start.
Excatly. That's a serious flaw, forget about "perhaps". If an operation can corrupt the entire system, then there has to be a check before the start and a fallback solution for the case of failure.
Especially, when that operation is part of the basic feature set. It's not that I wanted to do something out of the ordinary.

Trying to blame that on the user is denying sloppy programming through ignorance.


Z11