VirtualBox

Ticket #10126 (closed defect: fixed)

Opened 2 years ago

Last modified 2 years ago

cannot resume saved state with 4.1.8

Reported by: yrro Owned by:
Priority: major Component: other
Version: VirtualBox 4.1.8 Keywords:
Cc: Guest type: other
Host type: Windows

Description (last modified by misha) (diff)

I suspended my VM with 4.1.6, then upgraded to 4.1.8. Resuming the machine now fails with the following error:

Failed to open a session for the virtual machine leela.

Failed to load unit 'HGCM' (VERR_SSM_LOADED_TOO_MUCH).

Result Code: E_FAIL (0x80004005)
Component: Console
Interface: IConsole {1968b7d3-e3bf-4ceb-99e0-cb7c913317bb}

Host is Windows 7 amd64, guest is Linux 3.1.

Attachments

leela-2012-01-05-10-27-55.log Download (86.2 KB) - added by yrro 2 years ago.
virtualbox log file
vberrlog.tmp.txt Download (84.4 KB) - added by Michael P. 2 years ago.
Virtualbox error log

Change History

Changed 2 years ago by yrro

virtualbox log file

comment:1 Changed 2 years ago by Perryg

Have you tried discarding the saved state?

comment:2 Changed 2 years ago by yrro

No, as I wanted to keep it. I downgraded to 4.1.6 instead. :)

Changed 2 years ago by Michael P.

Virtualbox error log

comment:3 Changed 2 years ago by Michael P.

I have the same problem after update from 4.1.6 to 4.1.8. No snapshot will start. Same assert fails. Running 64bit linux as host and 32bit linux as guest. A newly created virtual machine works OK with snapshots, but none of the old ones will load.

/var/log/apt$ uname -a
Linux zx81 2.6.38-13-generic #53-Ubuntu SMP Mon Nov 28 19:33:45 UTC 
2011 x86_64 x86_64 x86_64 GNU/Linux
/var/log/apt$ grep virtualbox *
history.log:Upgrade: virtualbox-4.1:amd64 (4.1.6-74713~Ubuntu~natty, 
4.1.8-75467~Ubuntu~natty)
Last edited 2 years ago by Michael P. (previous) (diff)

comment:4 Changed 2 years ago by Michael P.

A piece of log that might be interesting:

00:00:07.350 OpenGL Error: Assertion failed: ptl->bytes, file /home/vbox/vbox-4.1.8/src/VBox/GuestHost/OpenGL/state_tracker/state_snapshot.c, line 188
...(removed 12 lines like above)
00:00:07.451 AssertLogRel /home/vbox/vbox-4.1.8/src/VBox/VMM/VMMR3/SSM.cpp(5991) int ssmR3DataReadUnbufferedV2(SSMHANDLE*, void*, size_t): !pSSM->u.Read.fEndOfData
00:00:07.451 cbBuf=18446744072950519801AssertLogRel /home/vbox/vbox-4.1.8/src/VBox/Main/src-client/HGCM.cpp(1287) static int HGCMService::LoadState(SSMHANDLE*): <NULL>
00:00:07.451 rc=VERR_SSM_LOADED_TOO_MUCH VBoxSharedCrOpenGL
00:00:07.451 SSM: LoadExec failed for 'HGCM' instance #0 (version 2, pass 0xffffffff): VERR_SSM_LOADED_TOO_MUCH
00:00:07.451 VMSetError: /home/vbox/vbox-4.1.8/src/VBox/VMM/VMMR3/SSM.cpp(8155) int ssmR3LoadExecV2(VM*, SSMHANDLE*); rc=VERR_SSM_LOADED_TOO_MUCH
00:00:07.451 VMSetError: Failed to load unit 'HGCM'
00:00:07.451 Changing the VM state from 'LOADING' to 'LOAD_FAILURE'.
00:00:07.451 Changing the VM state from 'LOAD_FAILURE' to 'POWERING_OFF'

Problem could (??) be related to numerous asserts in state_snapshot.c: https://www.virtualbox.org/browser/trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_snapshot.c

or to SSM.cpp:5991 (some version readable here:  http://www.virtualbox.org/svn/vbox/trunk/src/VBox/VMM/VMMR3/SSM.cpp )

static int ssmR3DataReadUnbufferedV2(PSSMHANDLE pSSM, void *pvBuf, size_t cbBuf)
{
...
    do
    {
        /*
         * Read the next record header if no more data.
         */
        if (!pSSM->u.Read.cbRecLeft)
        {
            int rc = ssmR3DataReadRecHdrV2(pSSM);
            if (RT_FAILURE(rc))
                return pSSM->rc = rc;
        }
        AssertLogRelMsgReturn(!pSSM->u.Read.fEndOfData, ("cbBuf=%zu", cbBuf), pSSM->rc = VERR_SSM_LOADED_TOO_MUCH);
...
171	static int32_t crStateLoadTextureObjData(CRTextureObj *pTexture, PSSMHANDLE pSSM)
172	{
173	    int32_t rc, face, i;
174	   
175	    CRASSERT(pTexture && pSSM);
176	
177	    for (face = 0; face < 6; face++) {
178	        CRASSERT(pTexture->level[face]);
179	
180	        for (i = 0; i < CR_MAX_MIPMAP_LEVELS; i++) {
181	            CRTextureLevel *ptl = &(pTexture->level[face][i]);
182	            CRASSERT(!ptl->img);
183	
184	            rc = SSMR3GetMem(pSSM, ptl, sizeof(*ptl));
185	            AssertRCReturn(rc, rc);
186	            if (ptl->img)
187	            {
188	                CRASSERT(ptl->bytes);
189	
190	                ptl->img = crAlloc(ptl->bytes);
...
Last edited 2 years ago by Michael P. (previous) (diff)

comment:5 Changed 2 years ago by misha

  • Description modified (diff)

Thanks for the report. We've fixed the issue, please try the following test builds:

and let me know whether it fixes the issue.

It would be great if you could try both to load saved states created with VBox 4.1.6 and with VBox 4.1.8 to ensure both of those work correctly.

Last edited 2 years ago by frank (previous) (diff)

comment:6 Changed 2 years ago by frank

Did anyone manage to test one of these builds?

comment:7 Changed 2 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in VBox 4.1.10.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use