I have observed that it is impossible to take snapshots of a VirtualBox machine if it has any disk images attached to SATA ports 2 and higher. This condition results in an error message that the VDI file is is use by another task. I have reliably been able to reproduce this in a new VirtualBox VM by attaching any hard drives to any SATA port with the exception of 0 and 1 with Windows Vista Ultimate and Windows XP host operating systems and a variety of guest operating systems.
Although I have not set up a development environment for working on VirtualBox, I believe the problem can be traced to /trunk/src/VBox/Devices/PC/BIOS/rombios.c in the lines between 5392 and 5404 as it can be found in revision [13190]. I believe these lines are causing the checks for isBusy() (/trunk/src/VBox/Main/HardDiskImpl.cpp) to fail.
| HD attached to | Snapshot result
|
| IDE Pri/M | Success
|
| IDE Pri/S | Success
|
| IDE Sec/S | Success
|
| SATA 0 (IDE Emulation) | Success
|
| SATA 1 (IDE Emulation) | Success
|
| SATA 0 (No IDE Emulation) | Success
|
| SATA 1 (No IDE Emulation) | Success
|
| SATA 2 (IDE Emulation) | FAIL
|
| SATA 2 (No IDE Emulation) | FAIL
|