[vbox-dev] vhd format not stable?

Alexander Eichner Alexander.Eichner at Sun.COM
Mon Jun 15 18:09:12 GMT 2009


Hi Huihong,

I attached a patch which I think fixes the crash.
If it is possible please apply it and verify that this fixes the crash.
Thanks a lot!

Kind regards,
Alexander Eichner

Am Donnerstag, den 11.06.2009, 08:05 -0700 schrieb Huihong Luo:
> Alex,
>  
> No problem, and thanks for the quick fix.
>  
> There might be more bugs, I will keep testing.
>  
> Some times, the error occurs some other places, an error message
> something like "there are 5993 child disks", the number is kind of
> random. When this error occurs, the whole disk become inaccessible,
> and I have to recreate the whole vm.
>  
> Huihong
> 
> --- On Thu, 6/11/09, Alexander Eichner <Alexander.Eichner at Sun.COM>
> wrote:
> 
>         
>         From: Alexander Eichner <Alexander.Eichner at Sun.COM>
>         Subject: Re: [vbox-dev] vhd format not stable?
>         To: vbox-dev at virtualbox.org
>         Date: Thursday, June 11, 2009, 1:52 AM
>         
>         Hi Huihong,
>         
>         thanks for the report. This bug is fixed now and should appear
>         soon in
>         the public svn.
>         
>         Kind regards,
>         Alexander Eichner
>         
>         Am Donnerstag, den 11.06.2009, 09:55 +0200 schrieb Frank
>         Mehnert:
>         > Actually the .vhd format is less tested than the .vdi
>         format. Which
>         > VBox version are you using?
>         > 
>         > On Thursday 11 June 2009, Huihong Luo wrote:
>         > > It seems VHD format is not stable as VDI. VBoxSVC.exe
>         pretty much always
>         > > crashes when a snapshot is being discarded. I am running
>         an XP guest on
>         > > Vista host. The VHD's capacity is over 100G. 
>         > > If you look at the following stack, the crash was caused
>         by
>         > > pImage->pszParentFilename is NULL inside
>         > > static int vhdDynamicHeaderUpdate(PVHDIMAGE pImage) in
>         VHDHDDCore.cpp
>         > >  
>         > > I used the very recent SVN source.
>         > >  
>         > > //////////
>         > > vboxsvc.exe crash stack:
>         > >  
>         > > VBoxRT.dll!RTPathFilename(const char * pszPath=0x00000000)
>         Line 240 C++
>         > >   VBoxDDU.dll!vhdDynamicHeaderUpdate(VHDIMAGE *
>         pImage=0x00000000)  Line
>         > > 362 + 0x12 bytes C++ VBoxDDU.dll!vhdFlush(void *
>         pBackendData=0x01c2caf0) 
>         > > Line 1157 C++ VBoxDDU.dll!vhdClose(void *
>         pBackendData=0x01c2caf0, bool
>         > > fDelete=false)  Line 880 + 0x6 bytes C++ VBoxDDU.dll!
>         VDClose(VBOXHDD *
>         > > pDisk=0x01e0e218, bool fDelete=false)  Line 2268 C++
>         > > VBoxSVC.exe!HardDisk::taskThread(RTTHREADINT *
>         thread=0x00000000, void *
>         > > pvUser=0x00e0e2b8)  Line 4063 + 0xb bytes C++
>         > > VBoxSVC.exe!HardDisk::Task::runNow()  Line 220 C++
>         > >   VBoxSVC.exe!HardDisk::mergeTo(HardDisk::MergeChain *
>         aChain=0x01c2cfe0,
>         > > ComObjPtr<Progress,ComStrongRef> * aProgress=0x01e06fe8,
>         bool aWait=true) 
>         > > Line 2844 + 0x9 bytes C++
>         > > VBoxSVC.exe!
>         HardDisk::discard(ComObjPtr<Progress,ComStrongRef> &
>         > > aProgress={...}, HardDisk::MergeChain * aChain=0x01c2cfe0)
>         Line 2248 + 0xe
>         > > bytes C++
>         > > VBoxSVC.exe!
>         SessionMachine::discardSnapshotHandler(SessionMachine::DiscardS
>         > >napshotTask & aTask={...})  Line 10584 C++
>         > > VBoxSVC.exe!SessionMachine::DiscardSnapshotTask::handler()
>         Line 8251 + 0x9
>         > > bytes C++ VBoxSVC.exe!
>         SessionMachine::taskHandler(RTTHREADINT *
>         > > __formal=0x01c32108, void * pvUser=0x01e06fe0)  Line 11412
>         C++
>         > > VBoxRT.dll!rtThreadMain(RTTHREADINT * pThread=0x01c32108,
>         unsigned int
>         > > NativeThread=4312, const char * pszThreadName=0x01c32170)
>         Line 635 + 0xa
>         > > bytes C++ VBoxRT.dll!rtThreadNativeMain(void *
>         pvArgs=0x01c32108)  Line 106
>         > > + 0xb bytes C++ msvcr80.dll!__endthreadex()  + 0x3b bytes
>         > >   msvcr80.dll!__endthreadex()  + 0xc7 bytes 
>         > >   kernel32.dll!@BaseThreadInitThunk at 12()  + 0x12 bytes 
>         > >   ntdll.dll!___RtlUserThreadStart at 8()  + 0x27 bytes 
>         > >   ntdll.dll!__RtlUserThreadStart at 8()  + 0x1b bytes 
>         > 
>         > 
>         > 
>         > _______________________________________________
>         > vbox-dev mailing list
>         > vbox-dev at virtualbox.org
>         > http://vbox.innotek.de/mailman/listinfo/vbox-dev
>         
>         
>         _______________________________________________
>         vbox-dev mailing list
>         vbox-dev at virtualbox.org
>         http://vbox.innotek.de/mailman/listinfo/vbox-dev
>         
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> http://vbox.innotek.de/mailman/listinfo/vbox-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vhd.patch
Type: text/x-patch
Size: 2148 bytes
Desc: not available
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20090615/5fad03be/attachment.bin>


More information about the vbox-dev mailing list