[Mongrel] mongrel_service fails to get "service.exe" from ppid?

Luis Lavena luislavena at gmail.com
Mon Mar 26 11:03:52 EDT 2007

On 3/26/07, blindance at gmail.com <blindance at gmail.com> wrote:
> Konnichiwa Mongrel users,
> mongrel_service cannot run as a windows service under my environment,
> with the windows message :
> "error 1053 : The service did not respond to the start or control
> request in a timely fashion."
> >From a part of "ServiceFB.log" at c:/ruby/bin,
> mongrel_service failed to get the process name of "service.exe".
> >ServiceController.RunMode()
> >CurrentPID: 540
> >ParentPID: 716
> >Parent Name: <unknown>
> >ServiceController.RunMode() done

Ok, it seems WinAPI behaves different on x64 environment compared to
normal 32bits.

Please note that ruby, mongrel and mongrel_service are 32bits
compilation, that will require some compatibility layer to run over
x64 Windows.

services run under windows (32bits) with "services.exe" as parent
process. Could you use ProcessExplorer [1] to check other services
working and who its process parent?

[1] http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx

> and a part of "gem list" is ;
> >mongrel (1.0.1)
> >mongrel_service (0.3.1)
> >rails (1.2.3, 1.2.2)
> >win32-service (0.5.2)
> I guess that the reason is my environment a bit complex and weird,
> * Windows XP Professional x64 Version2003 SP1
> * over VMWare Server 1.0.1
> *   over Windows Server 2003 R2 Standard x64
> In fact,
> I've confirmed that the mongrel_service and my webapp run well as a
> windows service under Windows XP 32bit edition,
> and both of
> > mongrel_rails start
> > mongrel_service console single -c [path/to/mywebapp] -p 3000 -e development
> run correctry even on such win64 stacks.
> Can anyone shed any light?

forcing mongrel_service to start in console mode will work always,
since the "magic trick" used to get parent process isn't used at all.

on Win32, services run as child process (spawned) by "services.exe" =>
"Services and Controller app"

I guess that's the problem under x64.

I attached a 7z file with proc_info.exe, which will test if the WinAPI
used works. Please run it front the command line, the expected output
will be:

this process (PID, name): 3484, proc_info.exe
parent process (PID, name): 3924, cmd.exe

If that works, that means the Services and Controller application
(services.exe) is named differently under x64, or due 32bits
compatibility run as child process of _another_ process :-P

With that information I could patch mongrel_service current version :-)


Luis Lavena
Multimedia systems
Leaders are made, they are not born. They are made by hard effort,
which is the price which all of us must pay to achieve any goal that
is worthwhile.
Vince Lombardi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: proc_info.7z
Type: application/octet-stream
Size: 8458 bytes
Desc: not available
Url : http://rubyforge.org/pipermail/mongrel-users/attachments/20070326/69e7c7e5/attachment-0001.obj 

More information about the Mongrel-users mailing list