VirtualBox

13 年 前 建立

12 年 前 結束

#9364 closed defect (duplicate)

VBoxSVC crashes when restoring old snapshot.

回報者: jguerrero 負責人:
元件: other 版本: VirtualBox 4.1.0
關鍵字: restore snapshot 副本:
Guest type: other Host type: Mac OS X

描述 (由 Klaus Espenlaub 作最後更新)

This guest was imported into 4.1.0 from a prior version. I had created about 4 snapshots and then deleted one of the
older ones (not sure of the order here though). Then I started up the guest, did some work and decided to go back to
an older snapshot. I powered off the VM and unchecked the option to create a new snapshot. I then highlighted the
oldest snapshot and clicked the button to restore it. Apparently, VBoxSVC crashed and the GUI displayed my guest as
inaccessible. Thankfully, I was able to exit VirtualBox and restart it and find that the guest was once again accessible.

Unfortunately, I did not open this ticket soon enough. I do not see a guest log that is old enough to cover the time period
of the crash. I will upload the oldest one which at least shows some of the "then current state" (I am still on the same
"snapshot chain"). I will also upload the MacOSX crash report.

I also have another MacOSX crash report from 4.0.12 where I was also trying to restore an old snapshot. Please advise
if that would be interesting for you and I will upload it, too.

Thanks

PS: here is the stack trace of the offending thread, in case it is easier for the ticket search engine to index this ticket for

someone else's search.

Thread 14 Crashed:
0   VBoxSVC                       	0x000dd73b std::list<ComObjPtr<MediumAttachment>, std::allocator<ComObjPtr<MediumAttachment> > >::remove(ComObjPtr<MediumAttachment> const&) + 11
1   VBoxSVC                       	0x001594d6 SessionMachine::restoreSnapshotHandler(SessionMachine::RestoreSnapshotTask&) + 1158
2   VBoxSVC                       	0x0015c238 SessionMachine::RestoreSnapshotTask::handler() + 24
3   VBoxSVC                       	0x00150c48 SessionMachine::taskHandler(RTTHREADINT*, void*) + 40
4   VBoxRT.dylib                  	0x003e6fe0 rtThreadMain + 64
5   VBoxRT.dylib                  	0x00439d8e rtThreadNativeMain(void*) + 142
6   libSystem.B.dylib             	0x9a811259 _pthread_start + 345
7   libSystem.B.dylib             	0x9a8110de thread_start + 34

附加檔案 (4)

VBox.log.3 copy (105.9 KB ) - 13 年 前, 由 jguerrero 新增
Oldest log file for the crashed guest.
VBoxSVC_2011-08-01-104812_localhost.crash (33.1 KB ) - 13 年 前, 由 jguerrero 新增
VBoxSVC.log.1 copy (24.7 KB ) - 13 年 前, 由 jguerrero 新增
Probably log from restarting vbox after crash.
VBoxSVC.log.2 copy (2.9 KB ) - 13 年 前, 由 jguerrero 新增
Probably log from before (or during) crash.

下載所有附檔: .zip

更動歷史 (12)

13 年 前jguerrero 編輯

附檔: 新增 VBox.log.3 copy

Oldest log file for the crashed guest.

13 年 前jguerrero 編輯

comment:1 13 年 前jguerrero 編輯

Just a clarification on the "imported from an earlier version" comment.
This guest was created and upgraded several times through various vbox versions.
I was having issues and was unsure if they were due to 4.1.0 or not, so I had exported
the guest a few times and re-imported it. I do not know which version did the export
that I ultimately imported from. However, my point was simply that I was expecting that
the import process will "fix up" any legacy issues with guests saved by an older version.

comment:2 13 年 前jguerrero 編輯

I found VBoxSVC logs from before (probably during) the crash (.2 extension) and after the crash (.1 extension). Uploading.

13 年 前jguerrero 編輯

附檔: 新增 VBoxSVC.log.1 copy

Probably log from restarting vbox after crash.

13 年 前jguerrero 編輯

附檔: 新增 VBoxSVC.log.2 copy

Probably log from before (or during) crash.

comment:3 13 年 前jguerrero 編輯

FWIW, I have just restored another old snapshot on this same VM, but this time, it did not crash.
This time, I shutdown vbox and took a backup of the xml files prior to starting vbox up again
and doing the snapshot restore.

In the prior restore that crashed, I may have had a few VMs opened concurrently and stopped and
started VMs, and created more snapshots on the fly, including saving machine state. I could not
say how many VMs were open when I tried the restore. There may not have been any open, but
it had been my practice to start and stop VMs without waiting for any of the operations to finish.
May I ask if that is a frowned upon practice?

comment:4 13 年 前Frank Mehnert 編輯

Hopefully fixed in VBox 4.1.4. Please confirm.

comment:5 13 年 前Frank Mehnert 編輯

狀態: newclosed
處理結果: fixed

comment:6 13 年 前moggie 編輯

Doesn't look fixed. Running 4.1.12 on Linux (gentoo). I got fed up so recompiled virtualbox with symbols.

Single snapshot. Booted the VM briefly so it was changed, then shutdown and attempted to restore the snapshot. Segfault:

#0  std::list<ComObjPtr<MediumAttachment>, std::allocator<ComObjPtr<MediumAttachment> > >::remove (this=0x0, __value=...)
    at /portbuild/portage/app-emulation/virtualbox-4.1.12/work/VirtualBox-4.1.12/src/VBox/Main/src-server/MachineImpl.cpp:12926
#1  0x000000000052bd1a in SessionMachine::restoreSnapshotHandler (this=0x983550, 
    aTask=...)
    at /portbuild/portage/app-emulation/virtualbox-4.1.12/work/VirtualBox-4.1.12/src/VBox/Main/src-server/SnapshotImpl.cpp:1934
#2  0x00000000005296f9 in SessionMachine::taskHandler (pvUser=0x7f1ea8090bf0)
    at /portbuild/portage/app-emulation/virtualbox-4.1.12/work/VirtualBox-4.1.12/src/VBox/Main/src-server/SnapshotImpl.cpp:1334
#3  0x00007f1ec370f13c in rtThreadMain (pThread=0x7f1ea802f630, 
    NativeThread=<optimized out>, pszThreadName=<optimized out>)
    at /portbuild/portage/app-emulation/virtualbox-4.1.12/work/VirtualBox-4.1.12/src/VBox/Runtime/common/misc/thread.cpp:703
#4  0x00007f1ec375b3ee in rtThreadNativeMain (pvArgs=0x7f1ea802f630)
    at /portbuild/portage/app-emulation/virtualbox-4.1.12/work/VirtualBox-4.1.12/src/VBox/Runtime/r3/posix/thread-posix.cpp:255
#5  0x00007f1ec39d2d0c in start_thread () from /lib64/libpthread.so.0
#6  0x00007f1ec2789dbd in clone () from /lib64/libc.so.6

After continuing, the UI immediately changed the VM name to Snapshot 1, and marked the VM inaccessible. When I've seen this without gdb running, the UI pretends the snapshot was restored, but when I delete the snapshot, that's when it gets screwed up and marks the VM inaccessible.

I suspect this is the cause of many of the "inaccessible" or otherwise corrupted VM stored state bugs, for instance:

https://www.alldomusa.eu.org/ticket/9457 https://www.alldomusa.eu.org/ticket/9808 https://www.alldomusa.eu.org/ticket/9843 https://www.alldomusa.eu.org/ticket/10264 ...

Once the vm is inaccessible you have to go into the .vbox xml, and tweak all the snapshot-related settings and the mounted disk image uuid to get it to work again.

I can only imagine how painful this is for people who have complex snapshot trees and aren't willing to ditch all the snapshots.

How this isn't a blocker is beyond me. I loathe making snapshots in virtualbox because of this bug.

最後由 Frank Mehnert 編輯於 13 年 前 (上一筆) (差異)

comment:7 13 年 前moggie 編輯

狀態: closedreopened
處理結果: fixed

comment:8 12 年 前Klaus Espenlaub 編輯

描述: 修改 (差異)
狀態: reopenedclosed
處理結果: duplicate

While this bug is older than #9604 and #10491, they're all duplicates.

注意: 瀏覽 TracTickets 來幫助您使用待辦事項功能

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette