WaHostBootstrapper Error After Installing SDK 1.8

2

I've recently upgraded our Azure SDK to 1.8 (From 1.6). On deploying all our web and worker roles come online without issue except for 1.

This 1 worker role is the only 1 with 2 instances (The rest are single instances); all dlls are set to CopyLocal = "true", connection strings are the same as the worker roles that successfully come online and I cannot see any difference in the code.

The errors being thrown when I remote desktop into 1 of the instances are:

Faulting application name: WaHostBootstrapper.exe, version: 6.0.6002.18488, time stamp: 0x50a71329
Faulting module name: ntdll.dll, version: 6.1.7601.17696, time stamp: 0x4e8147f0
Exception code: 0xc0000374
Fault offset: 0x00000000000a0d6f
Faulting process id: 0x7d8
Faulting application start time: 0x01ce24b6e86ff75c
Faulting application path: E:\base\x64\WaHostBootstrapper.exe
Faulting module path: D:\Windows\SYSTEM32\ntdll.dll
Report Id: 33abe8c7-90aa-11e2-b534-00155d3a2649

And:

A fatal error occurred when attempting to access the SSL server credential private key. 
The error code returned from the cryptographic module is 0x8009030d. 
The internal error state is 10001.

In the Azure Management Portal the Roles go through a cycle of:

  • Starting Role
  • Preparing Node
  • Recovering Role

I have been trying to ascertain what the issue is for hours to no avail.

Additional details

Below is the raw WaHostBoostrapperLog; there are a number of these logs with the only difference being that the PID changes in each one.

<- WapXmlReadRoleModel=0x1
<- WapXmlReadContainerId=0x1
<- WapGetVirtualAccountName=0x1
<- WapGetAppCmdPath=0x1
<- WapSetDefaultEnvironment=0x1
<- WapXmlReadContainerId=0x1
<- WapGetVirtualAccountName=0x1
<- WapGetAppHostConfigPath=0x1
<- GetDebugger=0x1
<- GetStartupTaskDebugger=0x1
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Executing Startup Task type=2 rolemodule=Diagnostics cmd="E:\plugins\Diagnostics\DiagnosticsAgent.exe" 
Executing "E:\plugins\Diagnostics\DiagnosticsAgent.exe" .
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Registering client with PID 2180.
Client DiagnosticsAgent.exe (2180) registered.
Executing Startup Task type=0 rolemodule=Diagnostics cmd="E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup
Executing "E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup.
Registering client with PID 1468.
Client DiagnosticsAgent.exe (1468) registered.
Program "E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup exited with 0. Working Directory = E:\plugins\Diagnostics
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Executing Startup Task type=2 rolemodule=RemoteAccess cmd="E:\plugins\RemoteAccess\RemoteAccessAgent.exe" 
Executing "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" .
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Registering client with PID 988.
Client RemoteAccessAgent.exe (988) registered.
Executing Startup Task type=0 rolemodule=RemoteAccess cmd="E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup
Executing "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup.
Registering client with PID 1624.
Client RemoteAccessAgent.exe (1624) registered.
Program "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup exited with 0. Working Directory = E:\plugins\RemoteAccess
<- GetDebugger=0x1
<- GetRoleHostDebugger=0x1
<- WapXmlReadContainerId=0x1
<- WapGetVirtualAccountName=0x1
Executing base\x64\WaWorkerHost.exe .
Role host process PID: 2264.
Registering client with PID 2264.
Client WaWorkerHost.exe (2264) registered.
Client process 2264 is the role host.
Role host process registered.
Getting status from client DiagnosticsAgent.exe (2180).
Client reported status 0.
Getting status from client DiagnosticsAgent.exe (1468).
Failed to connect to client DiagnosticsAgent.exe (1468).
<- CRuntimeClient::OnRoleStatusCallback(0x000000000044EB40) =0x800706ba
Getting status from client RemoteAccessAgent.exe (988).
Client reported status 0.
Getting status from client RemoteAccessAgent.exe (1624).
Failed to connect to client RemoteAccessAgent.exe (1624).
<- CRuntimeClient::OnRoleStatusCallback(0x000000000044EBD0) =0x800706ba
Getting status from client WaWorkerHost.exe (2264).
Failed to connect to client WaWorkerHost.exe (2264).
<- CRuntimeClient::OnRoleStatusCallback(0x000000000044E5A0) =0x800706ba
c#
iis
azure
azure-worker-roles
asked on Stack Overflow Mar 20, 2013 by Luke Merrett

1 Answer

1

After doing a side-by-side comparison between the worker roles that work and the one that was causing the above errors; I noticed that the role which was unable to start had an unnecessary reference to both another worker role and a unit testing project.

Whilst this silently worked in the prior versions of the SDK (1.6); the 1.8 version appeared to have an issue with one of the references.

After removing the unnecessary references the role came online without issue.

If you encounter the WaHostBootstrapper I'd recommend:

  • Ensuring all dlls are set to CopyLocal = "true" (As indicated in this question)
  • Remove any unnecssary references from the project
  • Remove any references that may cause conflicts
answered on Stack Overflow Mar 20, 2013 by Luke Merrett • edited May 23, 2017 by Community

User contributions licensed under CC BY-SA 3.0