VirtualBox

Ticket #17772 (new defect)

Opened 10 months ago

Last modified 8 months ago

Guru meditation 1155 on loading driver in guest

Reported by: gim Owned by:
Component: VMM Version: VirtualBox 5.2.12
Keywords: Cc:
Guest type: Windows Host type: Windows

Description

So we trying to load driver inside Windows 7 (6.1.7601.24000) guest machine on Windows 7 host machine with VirtualBox:

sc create ltest type= kernel start= demand error= ignore binpath= "<full path to sample>" DisplayName= ltest
sc start ltest

and we catch "Guru Meditation 1155 (VINF_EM_TRIPLE_FAULT)"

Actually the driver is windows kernel 6.1.7601.24000 (win7sp1_ldr.171231-1547), so it's like trying load second kernel to system. Yes, I known it's crazy, but anyway it's not ok catch guru meditation on this crazy actions.

Attachments

VBox.7z Download (46.7 KB) - added by gim 10 months ago.
VBox.log

Change History

Changed 10 months ago by gim

VBox.log

comment:1 Changed 10 months ago by gim

comment:2 Changed 10 months ago by janitor

  • priority changed from major to minor

comment:3 Changed 10 months ago by michaln

"It's not ok catch guru meditation on this" -- you are wrong. Any software running at privilege 0 can always trigger a triple fault, that's just a fact of life. You can try telling Intel that they've been doing their CPUs wrong all along, but you probably won't be very successful. A triple fault may or may not indicate a bug in the hypervisor. Chances are it doesn't.

You might be more successful in arguing that a triple fault should result in something other than a guru meditation, but it *will* kill the VM one way or another.

comment:4 Changed 10 months ago by gim

Yeah, I mean you can just reset VM and trying to boot. Why just stopping? Is it better in any way?

comment:5 Changed 10 months ago by socratis

You mean something like what's described in ch. "9.20.10. Action for handling a Guru Meditation" of the User Manual?

Trying to automatically reboot is not an available option, maybe because (if you ask me) it's not the smartest option to make when your VM crashes. But, (just like everything) "smartest" is open to interpretation...

comment:6 Changed 10 months ago by gim

You mean something like what's described in ch. "9.20.10. Action for handling a Guru Meditation" of the User Manual?

I don't known about all guru meditation cases, may be some of them real virtualbox's hypervisor problems and we need stop execution. But in this case I believe the problem inside guest.

Trying to automatically reboot is not an available option, maybe because (if you ask me) it's not the smartest option to make when your VM crashes. But, (just like everything) "smartest" is open to interpretation...

I mean what happens if on real hardware will be the same triple fault? CPU will reset its state and reboot will occur, yep? So I trying understand why you crashing whole VM process execution but not for example only reseting CPU emulation state, which will result reboot of the system?

comment:7 Changed 10 months ago by michaln

It would be possible to automatically reset the VM. We don't think that would be useful, because typically triple faults happen when booting a guest OS (e.g. due to incorrect configuration, unsupported CPU, etc.). So the choice is between a guru meditation and a reboot loop. We chose the former because it provides at least some diagnostic information.

Real hardware does not have that option and triple fault problems are stupidly difficult/expensive to debug. What real hardware actually does when it encounters a triple fault is system specific. It may reboot, and typically does, but does not have to and some machines don't.

comment:8 Changed 10 months ago by socratis

/me wonders if a 4th option ("Reboot") besides the "Default", "PowerOff" and "Ignore" could be implemented as an enhancement...

Last edited 10 months ago by socratis (previous) (diff)

comment:9 Changed 8 months ago by gim

We don't think that would be useful, because typically triple faults happen when booting a guest OS

May be typically. But not in this case...

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use