Crowd 2.8 service 64-bit fails to start - not a valid Win32 application
Symptoms
You can successfully install Crowd as a service following this documentation, however it fails when you try to start the service with an Windows error:
The ApacheTomcat 7 Crowd service could not be started.
A service specific error occured: 1.
The System event log has the following message:
The Atlassian Stash service terminated with service-specific error Incorrect function.
The following appears in the log: <Crowd install directory>/logs/commons-daemon.YYYY-MM-DD.log
[2013-02-19 20:51:42] [info] Commons Daemon procrun (1.0.10.0 64-bit) started
[2013-02-19 20:51:42] [info] Running 'ApacheTomcat 7 Crowd' Service...
[2013-02-19 20:51:42] [info] Starting service...
[2013-02-19 20:51:42] [error] %1 is not a valid Win32 application.
[2013-02-19 20:51:42] [error] Failed creating java C:\devTools\Java\x32\jdk1.6.0_33\jre\bin\server\jvm.dll
[2013-02-19 20:51:42] [error] %1 is not a valid Win32 application.
[2013-02-19 20:51:42] [error] ServiceStart returned 1
[2013-02-19 20:51:42] [error] %1 is not a valid Win32 application.
[2013-02-19 20:51:42] [info] Run service finished.
[2013-02-19 20:51:42] [info] Commons Daemon procrun finished
Diagnosis
Unlike the similar scenarios with JIRA and Confluence, in which you cannot install the service, but similarly to Stash in the case of Crowd 2.8 you are able to install the service but cannot start it.
Cause
This is caused by the bundled tomcat version of Crowd being the 32-bit version. This is being tracked here:
Resolution
The same workaround described here can be used in this case.
1) Replace the executable files according the workaround above.
2) Start CMD as administrator.
3) Remove the existing Crowd service (if it was installed already).
4) Install Crowd service again.