VirtualBox

Ticket #10126 (closed defect: fixed)

Opened 10 years ago

Last modified 10 years ago

cannot resume saved state with 4.1.8

Reported by: yrro Owned by:
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 10 years ago.
virtualbox log file
vberrlog.tmp.txt Download (84.4 KB) - added by Michael P. 10 years ago.
Virtualbox error log

Change History

Changed 10 years ago by yrro

virtualbox log file

comment:1 Changed 10 years ago by Perryg

Have you tried discarding the saved state?

comment:2 Changed 10 years ago by yrro

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

Changed 10 years ago by Michael P.

Virtualbox error log

comment:3 Changed 10 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 10 years ago by Michael P. (previous) (diff)

comment:4 Changed 10 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 10 years ago by Michael P. (previous) (diff)

comment:5 Changed 10 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 10 years ago by frank (previous) (diff)

comment:6 Changed 10 years ago by frank

Did anyone manage to test one of these builds?

comment:7 Changed 10 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