Opened 7 years ago

Last modified 7 years ago

#73 new defect

Failed to create the VirtualBoxClient COM object

Reported by: David McKenna Owned by:
Priority: minor Milestone:
Component: Main Keywords:
Cc:

Description

I had Virtual Box working fine with a WinXP volume, but haven't started it up in about 2 months until today. Now when I double click the VirtualBox icon, I get this error:

Failed to create the VirtualBoxClient COM object. The application will now terminate.
Callee RC: NS_ERROR_ABORT (0x80004004)

I tried re-installing VBox but no help. The only things that may have changed in the past 2 months or so would be AN drivers and RPM ports (which I strive to stay current with). Any idea what may be wrong?

Change History (18)

comment:1 by Valery V. Sedletski, 7 years ago

If you get this error, this, probably, means that VBox failed to load one of its required libraries. They can be own VBox libraries, or some dependent libraries, installed with yum. If you are sure VBox itself installed correctly, you should try reinstalling all dependent libraries by yum. You can try "yum remove", then "yum install" (or "yum reinstall") on these libraries. The list of all libs is at the main VBox page at Netlabs: http://trac.netlabs.org/vbox/. This is the same problem as with newer FireFox/Seamonkey. Some libs, required by XUL.DLL are mising, or broken. But instead of XUL.DLL, missing/broken are some dependencies of VBoxRT.dll. Most probably, you have removed some required DLL's.

comment:2 by David McKenna, 7 years ago

Thanks for the tip. I did 'Yum reinstall...' on all the listed libraries (and it worked), but still I can't start VirtualBox. I also used PMdll to check if all libraries needed are available, and they are. I have a feeling this may be due to an upgrade in either libcx or pthread (recently updated), but it will be tricky to downgrade them because the most recent python requires these most recent versions....

comment:3 by David McKenna, 7 years ago

It's libcx... had version 0.6.1-2 installed (from netlabs-exp). Manually copied version 0.6.0-1 (from netlabs-rel) over it and VirtualBox started working. Should this be reported as a bug?

comment:4 by Valery V. Sedletski, 7 years ago

Hmm, just updated all dependency libs for VBox, including libcx 0.6.1-1 -> 0.6.1-2, and everything is working for me. Maybe, libcx 0.6.1-2 has some requirements which are not written into its dependencies, so it didn't installed? So, I have this requirements, but you don't. Not sure if it could be a bug. (Just looked into it, it depends on gcc1.dll and libc066.dll, maybe, you need to update these libs too). Anyway, congratulations that everything is now working!

comment:5 by David McKenna, 7 years ago

Strange! I definitely cannot start VBox with the 0.6.1 version of libcx. Is there any way to enable some kind of logging with VBox so maybe I could get an idea of what is going wrong?

comment:6 by dmik, 7 years ago

David, you may try PMDLL to see if there any LIBCx DLL req that's missing. Do you get any popuplog entry btw?

comment:7 by David McKenna, 7 years ago

No popuplog, only the error message in the title. I tried PMdll, but it appears that everything expected is available. I went ahead and reinstalled all requirements again, but still VirtualBox won't start unless I put libcx version 0.6.0 in. No other app has any problems that I have seen.

Last edited 7 years ago by David McKenna (previous) (diff)

comment:8 by Valery V. Sedletski, 7 years ago

Did you tried to update everything, not only libcx? (I mean, doing "yum update")? AFAIK, libcx only requires gcc1.dll and libc066.dll. BTW, Dmitry meant, use PMDLL on libcx0.dll only, not on whole VirtualBox.exe.

Last edited 7 years ago by Valery V. Sedletski (previous) (diff)

comment:9 by David McKenna, 7 years ago

Yes, I am current on all libraries (from netlabs-exp and netlabs-rel). I did run PMdll on libcx0.dll and everything was shown as available. I did 'Yum reinstall...' on all requirements again (including libgcc1 and libc066), but no change... I do not have gcc installed (I don't develop apps)... does that matter?

comment:10 by Valery V. Sedletski, 7 years ago

gcc1.dll doesn't require the whole GCC installed, of course. Sorry, no ideas so far ;( The only idea would be to delete all ports tree and reinstall from scratch, with YUM bootstrap.

comment:11 by David McKenna, 7 years ago

Well, for now I can start VirtualBox using Run! and the 0.6.0 version of libcx in the VirtualBox directory. Good enough for now since I only use VirtualBox occasionally. When new versions of libcx come out, I'll try them with VirtualBox.

comment:12 by David McKenna, 7 years ago

Just read the wiki on the libcx github site, and set LIBCX_HIGHMEM=2. Now VirtualBox works with 0.6.1 version of libcx. So apparently somebody doesn't like being loaded high on my machine...

comment:13 by dmik, 7 years ago

Hmm, interesting. It's the first case when using highmem by default causes problems. @Valerius, do you have the latest LIBCx installed? (0.6.1)? Do you use any specific LIBCX_HIGHMEM value or leave it empty?

comment:14 by Valery V. Sedletski, 7 years ago

2dmik: I have the latest libcx-0.6.1-2.oc00.pentium4 installed, and no LIBCX_HIGHMEM variable in config.sys. VirtualBox starts successfully.

Note: Now VirtualBox.exe starts successfully. VboxSDL.exe previously started ok too, but after I rebooted, I now have the following errors:

_fmutex operation failed:  LIBC Heap request

Killed by SIGABRT
pid=0x01cf ppid=0x01ce tid=0x0001 slot=0x00e8 pri=0x0200 mc=0x0011 ps=0x0017
L:\SRC\VBOX\OUT\OS2.X86\RELEASE\BIN\VBOXSDL.EXE
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

What should be specified in the LIBCX_HIGHMEM? What means "2" here?

Last edited 7 years ago by Valery V. Sedletski (previous) (diff)

comment:15 by David McKenna, 7 years ago

Go here: https://github.com/bitwiseworks/libcx

Scroll down to the 'C heap displacement' section.

Specifically:

LIBCX_HIGHMEM=2 restores the original kLIBC voting process and disables any LIBCx intervention (for compatibility with old applications).

comment:16 by Valery V. Sedletski, 7 years ago

2David McKenna: yes, thanks for explanation

2dmik: So far, libcx-0.6.1-2 is installed. VirtualBox.exe works ok, but VboxSDL.exe crashes. With LIBCX_HIGHMEM=2, VBoxSDL.exe works ok too, without it it crashes.

comment:17 by dmik, 7 years ago

Valerius, my guess is that SDL passes memory to some API that doesn't like high memory. We should either find that place in SDL and force low memory there or force low memory for the whole VBoxSDL binary (LIBCx README.md has a description on how to do that).

David, it may depend on the video driver you are using... (just a guess).

comment:18 by David McKenna, 7 years ago

I'm using Panorama. I also get a crash (creates a .trp file) when trying to start VBOXSDL, but works with LIBCX_HIGHMEM=2.

Note: See TracTickets for help on using tickets.