Virtualbox “Callee RC: REGDB_E_CLASSNOTREG” (0x80040154)? - virtualbox

I was getting the Virtualbox problem
Callee RC: REGDB_E_CLASSNOTREG” (0x80040154)
all of a sudden. Problem started on VirtualBox 4.3 (I think). I upgraded to version 5 hoping to fix it but had no luck at that point.

My solution:
Check your directory C:\Users\yourname\.VirtualBox\ (yourname is in fact your username.)
On my PC there was a VirtualBox.xml with size of 0 Kb.
Also there was a VirtualBox.xml-prev with a size of 3 Kb.
Dates where somewhere around the time the problem started...
Renaming the VirtualBox.xml-prev one to the VirtualBox.xml SOLVED my issue.
For those without an xml file, here is my xml file, hopefully it helps .....
<?xml version="1.0"?>
<!-- ** DO NOT EDIT THIS FILE. ** If you make changes to this file while any VirtualBox related application ** is running, your changes will be overwritten later, without taking effect. ** Use VBoxManage or the VirtualBox Manager GUI to make changes. -->
-<VirtualBox version="1.12-windows" xmlns="http://www.innotek.de/VirtualBox-settings">
-<Global>
-<ExtraData>
<ExtraDataItem value="general,system,previewClosed,display,storage,audio,network,usb,sharedFolders,description" name="GUI/DetailsPageBoxes"/>
<ExtraDataItem value="m=59397901-1440-48ea-8781-6f86d06c7fbb" name="GUI/GroupDefinitions/"/>
<ExtraDataItem value="m=Sharepoint" name="GUI/LastItemSelected"/>
<ExtraDataItem value="415,153,770,550,max" name="GUI/LastWindowPosition"/>
<ExtraDataItem value="D:/virtualbox" name="GUI/RecentFolderHD"/>
<ExtraDataItem value="D:\virtualbox\Sharepoint.vdi;" name="GUI/RecentListHD"/>
<ExtraDataItem value="334,1261" name="GUI/SplitterSizes"/>
<ExtraDataItem value=",confirmGoingScale,remindAboutAutoCapture,remindAboutMouseIntegration,showRuntimeError.warning.HostAudioNotResponding,confirmInputCapture,warnAboutInaccessibleMedia" name="GUI/SuppressMessages"/>
<ExtraDataItem value="53" name="GUI/UpdateCheckCount"/>
<ExtraDataItem value="1 d, 2015-08-19, stable, 5.0.0" name="GUI/UpdateDate"/>
</ExtraData>
-<MachineRegistry>
<MachineEntry src="D:/virtualbox/Sharepoint/Sharepoint.vbox" uuid="{59397901-1440-48ea-8781-6f86d06c7fbb}"/>
</MachineRegistry>
-<MediaRegistry>
<HardDisks/>
<DVDImages/>
<FloppyImages/>
</MediaRegistry>
-<NetserviceRegistry>
-<DHCPServers>
<DHCPServer enabled="1" upperIP="192.168.56.254" lowerIP="192.168.56.101" networkMask="255.255.255.0" IPAddress="192.168.56.100" networkName="HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter"/>
</DHCPServers>
</NetserviceRegistry>
<SystemProperties exclusiveHwVirt="false" LogHistoryCount="3" webServiceAuthLibrary="VBoxAuth" VRDEAuthLibrary="VBoxAuth" defaultHardDiskFormat="VDI" defaultMachineFolder="C:\Users\yourname\VirtualBox VMs"/>
<USBDeviceFilters/>
</Global>
</VirtualBox>

I had the error...
Failed to create the VirtualBoxClient COM object.
The application will now terminate.
Callee RC: REGDB_E_CLASSNOTREG (0x80040154)
...when starting VirtualBox as normal user. Starting as administrator
worked on the other hand.
System: Windows 8, VirtualBox 5
Actually, the issue "suddenly" appeared after I played around with raw disk accesses. During these test, I re-installed VirtualBox as administrator.
What people not always know is that the registry has also an access right management, like files. Right-click on a folder to access the Autorisations window to display them.
When I re-installed as administrator, the registry keys where created with an admin level access. By this, I wasn't able anymore to start VirtualBox as non-admin.
Re-installing as normal user did not solve the problem. Probably because some admin-level keys could not be deleted.
Solution that worked for me:
Back-up .VirtualBox (optional, as all backups are :-)
Uninstall VirtualBox
Open Registry Editor regedit.exe as administrator.
Delete all remaining VirtualBox keys (especially the .NET, driver registrations, Compatibility Manager settings)
Reinstall VirtualBox using a user account.
Notes:
I did not test escalating the VirtualBox uninstaller process to administrator level with sysinternals. That might work as well.
Be careful with regedit. The GUI is quite '90s. Good to know: CTRL+F searches below the currently selected key, so be sure to go to the top when start searching.
I had one key for an USB driver that I wasn't able to delete due to access rights problems. Finally, this was not needed anyway.
Please don't forget to change access rights on VirtualBox disk files when they have been created with VirtualBox running as administrator.

Renaming the VirtualBox.xml-prev one to the VirtualBox.xml solved my issue.

After you upgrade to VirtualBox-5.0.8-103449 started getting error: Virtualbox "Callee RC: REGDB_E_CLASSNOTREG" (0x80040154)
No advice on the Internet did not help.
It helped only delete the entire contents of the folder "C:\Users\"user"\. VirtualBox" and then restart Oracle VM VirtualBox shortcut on the desktop.
Apparently when you remove the previous version of Virtualbox folder
"C:\Users\"user"\.VirtualBox" is removed.
As the contents of the folder should be removed manually after reinstalling VirtualBox, as well as in case of damage VirtualBox, for example due to lack of space on the hard disk.
Not to be confused with the folder "C:\Users\"user"\VirtualBox VMs"
This folder appears later, only after the establishment has a particular virtual machine.
sorry for machine translation.

In my case this error was caused by a zero-byte truncated VirtualBox.xml in the user's .VirtualBox folder. I found out after downgrading to 4.x and getting a more descriptive error message regarding a missing < tag.

As I already suggested on superuser, as of today (09/09/2015).
Upgrade to the new version that was released.You can find it here
There have been some changes concerning the Windows 10 Problems.

The solution is in the last paragraph.
I happened to have a different cause for the same error message under VirtualBox 5.0.20.
So I temporarily installed VirtualBox 5.1.10 which tries to analyse the situation and gives more info about probable culprit.
In my case the error message from VB 5.1.10 looked like following:
Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, but CLSID_VirtualBox w/ IUnknown works.
PSDispatch looks broken by the 'xxx' ({11B6009E-3F04-4478-A807-30FBD579FC07}) program, suspecting that it features the broken oleaut32.msm module as component {997FA962-E067-11D1-9396-00A0C90F27F9}.
We suggest you try uninstall 'xxx'.
See also https://support.microsoft.com/en-us/kb/316911 .
Result Code:
E_NOINTERFACE (0x80004002)
Component:
VirtualBoxClientWrap
Interface:
IVirtualBoxClient {d2937a8e-cb8d-4382-90ba-b7da78a74573}
Where 'xxx' is here a placeholder name for a specific program name it mentions and suggests to uninstall. (The specific name in my case is not important here).
So I did uninstall the specific program the new VirtualBox version accused, and after that VB started working again. Then I reinstalled the old VB version 5.0.20 I needed to continue using and all was well.

After some researching I found this thread with the step:
find C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv\VBoxDrv.inf right click and select Install

I had this same issue, I believe something corrupted whilst shutting down without correctly closing connections and I couldn't boot VB.
Tried all of the solutions above but none of them worked.
Without Uninstalling I went to the virtual box website and grabbed the most recent version and installed over the top and VB jumped into life.
Version 6.0.14 From 6.0.10

Related

Virtual Linux under Windows with Virtualbox

I've used this in the past but I must have got lucky. Now both Linux OSes I had have been deleted or screwed up but I can't for the life of me remember how I got them installed last time.
I really haven't got a clue, but are these the right steps:
(1) Uninstall all the old stuff
(2) Download Virtualbox 5.1.8 and install it
(3) Set up a new machine (eg. "Ubuntu64") and accept most of the defaults
I now know that that doesn't give me an OS to run! I need a "VDI" file containing a suitable Linux:
(4) Download Linux VDI for Virtualbox, unzip/un7zip etc to .vdi
Now is the tricky bit: how to I link this file to the Virtualbox new VM? In Storage, it seems to be set up to this file:
c:\Users\xxxxxx\VirtualBox VMs\Ubuntu\Ubuntu.vdi
That file exists but is some 2MB. Do I just copy the big .vdi I've just downloaded into that? Because if I do, it gives me an error:
UUID {7bfdc68e-2717-4c80-8613-6a2220358337} of the medium 'C:\Users
\xxxxxx\VirtualBox VMs\Ubuntu\Ubuntu.vdi' does not match the value
{553bdd10-e133-492f-85b9-3ec2c2fa4e67} stored in the media registry
('C:\Users\xxxxxx\.VirtualBox\VirtualBox.xml').
I would have edited that .xml file to match, but the UUID figure in that is different from either of the above! Anyway it seems like there is some official way of telling VB about this vdi; what is it? And if not, what have I done wrong? I downloaded another vdi with the same result.

Child_info_fork error running code on cygwin [duplicate]

I recently reinstalled Cygwin on my computer in order to get access to several command line elements that I was missing. I have never had previous difficulty with Cygwin, but after this reinstallation, an error message continues to appear after (almost) each command entered. For instance:
-bash-4.1$ wc m1.txt
3 [main] bash 2216 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x38D000)
-bash: fork: retry: Resource temporarily unavailable
2013930 4027950 74968256 m1.txt
Generally, the command still runs (as seen above), but not always. Occasionally, the 'error' message occurs several times in a row (the initial number "3" will then change to a "4" or "2", notably if I start a second Cygwin window.
Also, as soon as I start up Cygwin, I get the following message before the prompt:
3 [main] bash 6140 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x36D000)
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$
At the moment, I am debating whether to uninstall/reinstall Cygwin again or just live with the error messages, but I was curious if there might be an issue that I am unaware of.
(assuming Cygwin is installed at C:\Cygwin):
Open Task Manager and close any processes that look to be Cygwin related.
Open C:\Cygwin\bin in Windows Explorer
Verify that dash.exe, ash.exe, rebase.exe, and rebaseall exist in this folder
If any of them are missing, re-run Cygwin setup and select the dash, ash, and rebase packages
right-click your C:\Cygwin folder, uncheck Read-only (if its checked), and press OK.
When an error about not being able to switch some files comes up, select "Ignore All". Wait for this process to complete.
Browse to C:\Cygwin\bin in Windows Explorer
Right click dash.exe and click "Run as Administrator". A command Prompt should appear with nothing but a $
Type /usr/bin/rebaseall -v, hit enter, and wait for the process to complete.
If you get errors about Cygwin processes running, try Step 1 again. If that still doesn't work, Restart your computer into safe mode and try these steps again.
A commenter noted that, depending on your settings, you may have to type cd /usr/bin && ./rebaseall -v instead.
Try opening Cygwin again.
This process worked for me. I hope it works for you guys too.
Source: http://cygwin.wikia.com/wiki/Rebaseall
I would like to add the following to the above answers, as it is what I had to do after reinstalling Cygwin:
Navigate to the "/usr/bin" directory (usually, C:\cygwin\bin) and right click, Run as Administrator the file: dash.exe
Then, at the $ prompt type the following, hitting enter after each line:
cd /usr/bin/
/usr/bin/peflags * -d 1
/usr/bin/rebaseall -v
What it does is, it marks the dll's as "rebase-able," and then rebases them. You have to have peflags.exe in addition to the above files (in previous answers). You may have to restart windows after doing this and you will definitely need to make sure that there are no processes nor services belonging to cygwin running. (Use task manager, kill any related processes, and then under the services tab look for any service starting with CYG and stop it.)
After doing this, I was able to get cygwin to run without any errors about dll's being loaded to the wrong addresses aka fork errors, etc.
I hope that this helps others, as it was a pain to find.
SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures
and the rebase README file.
To add on to other answers here, we ran into the same issue but could not run the rebase command from the ash or dash shell. However, when launching the command from the Windows cmd shell, the following worked.
cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"
-v is to get verbose output
I found another information here :
http://cygwin.com/ml/cygwin/2014-02/msg00531.html
You have to delete the database at
/etc/rebase.db* and do in a "ash" windows :
peflags * -d 1
rebaseall
It works for me on 2 servers.
I solved this problem by restarting my computer. Probably installed a driver update and kept using sleep instead of shutting down.
Experienced the same issue when loading Cygwin with cygiconv-2.dll forking and not loading successfully in the Cygwin terminal, but after turning off my AntiVirus (it was specifically Ad-aware), the issue resolved, and Cygwin worked properly.
In case you are using babun's Cygwin, after rebaseall, try launching Cygwin by executing .babun\cygwin\cygwin.bat in a Windows command prompt or Windows explorer.
This works for me (while launching babun's default console - mintty results in fork error).
I had the error on win10 and i was trying to rebase to c: before install.
then i saw that the installer was installing it instead to c:/Users/myuser
so i was coping all files from c:/Users/myuser to c:.badun
and then restart plus open badun.bat
not shure if this was wise its now duplicated XD... but then it worked again.
Rebaseing didn't help in my case. In addition to what other people suggested, I noticed that reducing the length of PATH environment variable fixed the issue for me (and for other people as well as can be seen from this answer).
This issue is intermittent in nature & I found this issue when there is network is too slow to connect to remote machine on AWS.... I have Shell script that runs through Gitbash shell & it connects to AWS EC2 instance with ssh..... Most of the time, it ran correctly but 2 out 100 times it get into this issue bash: fork: retry: Resource temporarily unavailable .... Killing the MSYS2 terminal from task manager helps to overcome with this issue....
Negative side is you need to run the scripts from the beginning...
I had the same issue on Windows 10 and the mobaxterm app (which uses cygwin) and I tried all of answers listed here however for me, the solution was to simply delete the "CryptoPro CSP" application.
I started facing this problem after upgrading to windows 10. As of now I do not see that any of the above method working.
What I am noticing is that if you start cygwin with admin right (right click and say "run as admin") then it works fine.
Or you open cmd as administrator and then launch cygwin from there, then also it runs fine.
Just reinstall cygwin and select TCL and activate EXPECT

Darcs push fails for no apparent reason between Windows and Linux using VMware

I have a strange Darcs issue here.
I'm running a VM with a Linux guest OS and a Windows host OS. I've set up /mnt as a "shared folder"; any files placed here are actually stored in a folder on the host OS. Among other things, this causes all files to have their permissions set to 666 root,root. (Naturally, Windows doesn't support Unix-style file modes.)
Here's what happened:
cd /mnt/some-random-folder
darcs init
cd ~/some-random-folder
darcs pull /mnt/some-random-folder
Create a few files
darcs add the files
darcs record
So far, everything works fine. But now...
user1:~/some-random-folder> darcs push
Pushing to "/mnt/some-random-folder"...
Sun Jan 20 12:11:50 GMT 2013 User1
* Update dependencies.
Shall I push this patch? (1/1) [ynW...], or ? for more options: y
darcs: ./_darcs/tentative_pristine-0: rename: permission denied (Permission denied)
Apply failed!
Erm... what the heck just happened??
(And, more to the point, how do I make it stop happening and actually work?)
I tried using cp to synchronise the repos, thinking maybe the problem was that I started with a totally empty repo with no patches. That changes the error message (now it can't open _darcs\index - permission denied), but it still doesn't actually work.
Edit: Darcs 2.8.1 release.
Having played with this further, it appears that accessing files on the host OS from the guest OS does all sorts of strange things. Stuff like, I delete a file, ls tells me the file is gone, but when I try to write to that file, it says it can't because it already exists. Unmount and remount the filesystem and the problem goes away.
In short, I think this is probably nothing to do with Darcs at all, and is just the VMware drives being strange / buggy.
Permissions can be a bit tricky. It's worth checking to see if all file in that /mnt/some-random-folder really are writable by everybody.
I suspect this is not the ideal forum for this sort of question because it will likely involve a lot of back-and-forth chat to figure out what's going on. How about the darcs-users mailing list, or the #darcs IRC channel instead?

how to replace the uninstallation part of an MSI

I've build a msi installer using a VS2010 setup project.
Now the project does not deinstall because of a "1001 Exception: Invalid format for argument machineName" (see below) inside a custom action.
I am unsucessful at uninstalling the application using the remove from the system control or msiexec /uninstall.
Is there a way to force uninstallation?
Details:
As part of a custom action I register a custom event source which my app uses for event loging into the windows log:
public override void Install(IDictionary stateSaver) {
base.Install(stateSaver);
EventLog.CreateEventSource("VeodinRecorder","Application");
}
inside of the "Uninstall" I try to remove this Eventsource with
if (!EventLog.SourceExists("VeodinRecorder"))
EventLog.Delete("VeodinRecorder"); `
The EventLog.Delete also takes machinename as second argument
So I tried to overwrite the msi used for uninstallation with msiexec /fv and changed the uninstall action:
EventLog.Delete("VeodinRecorder",".");
EventLog.Delete("VeodinRecorder","Application");
I even left the whole "uninstall action" blank.
But nothing seemed to work.
Any Hints?
The full log:
Error 1001. Error 1001. An exception occurred while uninstalling. This exception will be ignored and the uninstall will continue. However, the application might not be fully uninstalled after the uninstall is complete. --> Invalid format for argument machineName.
MSI (s) (60!68) [22:49:00:101]:
DEBUG: Error 2769: Custom Action _3C1D0358_8969_4B01_B8FA_B6B43F4E9E4C.uninstall did not close 1 MSIHANDLEs.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2769. The arguments are: _3C1D0358_8969_4B01_B8FA_B6B43F4E9E4C.uninstall, 1,
CustomAction _3C1D0358_8969_4B01_B8FA_B6B43F4E9E4C.uninstall returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 22:49:00: InstallExecute. Return value 3.
Action ended 22:49:00: INSTALL. Return value 3.
It seems that the CustomAction.dll was not updated when I update the installation with msiexec /fv.
I now manually placed the newly build CustomAction.dll (with an empty uninstall override) into the installation folder and was able to uninstall.
Update: (Credits to #pcans) use ORCA to edit the currently installed msi and manually disable the uninstall custom action.
Just for reference I want to add that you can also patch the installed product with a minor upgrade to remove any faulty actions in the uninstall sequence before it gets called. This works because a minor upgrade is a reinstall of the same product, and not an uninstall and a reinstall of a new version (which is a major upgrade). You hence replace the uninstall sequence with a correct one before the erronous one gets run.
Creating the patch is quite complicated though, even with professional tools such as Wise or Installshield, but in certain cases this is the only fix that works to get the package properly uninstalled. A package "in the wild" in a company should be fixed this way.
Finally you can use msizap.exe from Microsoft to unregister a whole faulty package from the Windows Installer database, but this is not good since changes to the system are not rolled back at all and lots of junk is left everywhere. The tool itself also seems a bit shaky at times, sometimes creating new errors that are really difficult to fix. Preferably use it for debugging only.
One further note in this already long reply: a special case is when you run a custom action only during the uninstall sequence, and it then returns a faulty return code - sometimes even if it performed its operations ok. These actions can trigger a very annonying "uninstall only rollback situation". Effectively your uninstall is rolled back when it hits the custom action that was never run during install. This will rollback the uninstall and hence work as an installation - your product is left on the machine. Quite strange.
The bottom line: skip return codes for custom actions that are run during uninstall, use other verification mechanisms to ensure the action succeeded.

Windows Mobile fails to uninstall

Testing my app on some WM Std 6.1 I found out that it fails to uninstall. I receive this error:
“[app] was not completely removed. Do you want to remove it from the list of installed programs?"
Checking my setup.dll I can tell that Uninstall_Init and Uninstall_Exit are being called each time but all the files stays (they are not locked, I’ve checked) and its entry doesn’t disappear from the list of installed apps (whether I choose it to stay or not).
There are really only three possible reasons for this:
Uninstall_Init doesn't return continue.
Uninstall_Exit doesn't return continue.
The installer engine failed.
If you have verified that 1 & 2 then ok then 3 is going to be tough to figure out.
Some problems that I have encounted:
Check the DLL dependencies of your setup DLL and try to remove as many as possible. I've found that dependencies to MSXML can cause problems.
Remove any registry setup in your INF file, move it into your setup dll. I've found this to cause the uninstall to fail randomly on random devices because of this.
What I needed up doing for existing customers is write a uninstall application to remove our application manually if the uninstall worked. If you do need to write a manual unistall you need to do the following:
* Remove all your registry keys
* Remove all your files
* Remove registry key HKLM\Security\AppInstall{app name}
* In WM6.1 you need to remove a database record from the EDB database "SwMgmtMetadataStore" where the SWT_INSTALL_NAME_TAG property equals your {app name}.
Another thing worth investigating is the install log created by the cab install/uninstall process.
You can find this within the \Application Data\Volatile\ directory (usually called setup.log).
Copying this file to your desktop PC and opening it in notepad may provide more clues (such as files in use during uninstall) as to why the uninstall did not succeed.
I had several CAB files that worked perfectly on WM 6.0, but stopped working in WM 6.1.
Turns out it was because either the AppName or the Manufacturer had spaces in. Removing the spaces fixed the CAB files and they now successfully uninstall in WM 6.1!!