Forum: Mongrel Mongrel service keeps re-starting ruby

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
5e25f7860e3b6b46d7cf289bf4614a78?d=identicon&s=25 Michael Pliskin (Guest)
on 2009-06-25 07:35
(Received via mailing list)
Hi all,

Some disclaimer first: I am a complete newbie in mongrel and this list,
so please forgive me if I say something weird. I have a problem, I've
googled for a solution for quite a while and failed so far, so decided
to ask here.

I am trying to set up my Rails application on Windows according to this
manual:
http://nlakkakula.wordpress.com/2008/11/24/10-step...
. Everything is ok however when I completed all the steps, Apache
complains that it cannot contact proxy - meaning there is something
wrong with mongrel. I digged further and found mongrel keeping
re-starting the ruby process. If I look into a task manager, the picture
is like:

-          A ruby.exe process is started

-          It eats 100% CPU for 5 seconds

-          It also eats about 25MB RAM

-          It dies then
And the process repeats forever. It looks like there is some error
happening but I don't know any way to capture it.

My OS is Win2k Advanced Server SP4. Any ideas?

Thanks,
  Mike Pliskin
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2009-06-25 14:26
(Received via mailing list)
On Thu, Jun 25, 2009 at 2:07 AM, Michael Pliskin<mike@comapping.com>
wrote:
> I am trying to set up my Rails application on Windows according to this
>
>
>
>
> Thanks,
>
>   Mike Pliskin
>

That behavior is normal with mongrel_service. has been implemented in
a way that the ruby process automatically restart in case of a
failure, which is seems is happening in the background.

To debug this, please start mongrel standalone:

cd my_app
mongrel_rails start

Doing that, you should see, on the console, what is happening.

Please paste the results on your reply so I can help you out.

Cheers,
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
5e25f7860e3b6b46d7cf289bf4614a78?d=identicon&s=25 Michael Pliskin (Guest)
on 2009-06-25 14:56
(Received via mailing list)
Dear Luis,

Thanks a lot for replying, I followed your advice and it revealed the
problem: it was the --prefix switch that caused it. When I start it like
E:\RailsApps\3vi>mongrel_rails start -e development -p 3001 -a 127.0.0.1
-l "e:/RailsApps/3vi/log/1.log" -P "e:/RailsApps/3vi/log/mongrel.pid" -t
0 -r "public" -n 1024 --prefix "/labelyzer"
I am given a ton of errors:
** Starting Mongrel listening at 127.0.0.1:3001
** Starting Rails with development environment...
** Mounting Rails at /labelyzer...
D:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:440:in
`load_missing_constant': uninitialized constant
ActionController::AbstractRequest (NameError)
        from
D:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:80:in
`const_missing'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/rails.rb:151:in
`rails'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mongrel_rails:113:in
`cloaker_'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/configurator.rb:149:in
`call'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/configurator.rb:149:in
`listener'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mongrel_rails:99:in
`cloaker_'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/configurator.rb:50:in
`call'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/configurator.rb:50:in
`initialize'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mongrel_rails:84:in
`new'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mongrel_rails:84:in
`run'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/command.rb:212:in
`run'
        from
D:/Ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mongrel_rails:281
        from D:/Ruby/bin/mongrel_rails:19:in `load'
        from D:/Ruby/bin/mongrel_rails:19

And if I skip --prefix, it's all fine. Any ideas?

Thanks in advance,
 Mike
0f50b9a2ad85666d537d39bda49327ee?d=identicon&s=25 Jonathan Rochkind (jrochkind)
on 2009-06-25 16:11
(Received via mailing list)
Are you using Rails 2.2?

The latest version of mongrel available by gem is broken with --prefix
and Rails 2.2.  I'd still expect it to simply report an error instead of
consuming all CPU, so that's odd (but I've never developed Rails on
Windows before either).

But if you are using Rails 2.2 that could still be it, since I too have
discovered that you can't use --prefix  with a Rails 2.2 app, without
either patching mongrel or patching your rails app. (I find patching the
Rails app to be easier and less scary, and can tell you how I've done it
if this is indeed your issue).

I do think it's a big odd that Rails 2.2 has been out for so long, but
mongrel hasn't released a gem that's compatible with it, or warned
people on the project page that there's a problem, or what have you.
Makes me kind of worried that there aren't very many (any?) people on
the mongrel development team, and one shouldn't count on future
versions.

Jonathan
0f50b9a2ad85666d537d39bda49327ee?d=identicon&s=25 Jonathan Rochkind (jrochkind)
on 2009-06-25 16:15
(Received via mailing list)
Ah, actually reading your stack trace, I see it is indeed the --prefix
and modern versions of Rails issue.  I still don't know why that
consumes all CPU instead of just reporting an error.

But mongrel is trying to call a method that no longer exists in RAils
2.3 like you have. (I think it dissappeared in Rails 2.2, but could be
wrong, it's definitely gone in Rails 2.3).

Try dropping this file in your app's config/initializers directory, to
basically restore the method that mongrel is trying to call, as a
wrapper for the new way to trigger this functionality.

config/initializers/patch_for_mongrel.rb  [name of file can be anything]

# Fix for mongrel which still doesn't know about Rails 2.2's changes,
grr.
# We provide a backwards compatible wrapper around the new
ActionController::base.relative_url_root,
# so it can still be called off of the actually non-existing
AbstractRequest class.

module ActionController
  class AbstractRequest < ActionController::Request
    def self.relative_url_root=(path)
      ActionController::Base.relative_url_root=(path)
    end
    def self.relative_url_root
      ActionController::Base.relative_url_root
    end
  end
end
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2009-06-25 16:30
(Received via mailing list)
On Thu, Jun 25, 2009 at 11:04 AM, Jonathan Rochkind<rochkind@jhu.edu>
wrote:
> Are you using Rails 2.2?
> The latest version of mongrel available by gem is broken with --prefix and
> Rails 2.2.  I'd still expect it to simply report an error instead of
> consuming all CPU, so that's odd (but I've never developed Rails on Windows
> before either).
>

Is consuming the CPU since mongrel_service is trying to restart the
ruby process once it failed.

Mea culpa,ruby 1.8.5 used to segfault from time to time and I've
implemented that automatic restart at that time to workaround it.

Since ruby is raising an error and exiting, mongrel_service is trying
to restart it :P

> team, and one shouldn't count on future versions.
>

I'm here, but basically being focused on updated One-Click Ruby
Installer project, which will make life more easy at least for me on
Windows ;-)

I think there is time for a 1.1.6 release with fixes for this and other
details.
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
5e25f7860e3b6b46d7cf289bf4614a78?d=identicon&s=25 Michael Pliskin (Guest)
on 2009-06-26 11:51
(Received via mailing list)
Hi Jonathan,

Thanks a million, your fix worked like a charm! Everything is ok now.
Thanks again for fast and superb response!

Mike
7e0572a4affe4b06721fe8ffe0ade509?d=identicon&s=25 Tiberiu Motoc (mr_tibs)
on 2009-08-18 21:18
It sure helped me.

Thanks,
Tiberiu
C262b66c0bccbea81ac3a0aa26bb5511?d=identicon&s=25 Sebastien Perret (sperret)
on 2010-12-13 12:24
Hi All,

I have exactly the same problem : mongrel keeps restarting the ruby
process.
I have installed the patch_for_mongrel.rb proposed by Jonathan. I have
ruby 1.8.7 (2010-06-23 patchlevel 299) [i386-mingw32]
My version of Gem is 1.3.7. Here is the result of my command :

U:\>mongrel_rails start -e production -p 3001 -a 10.0.5.201 -l
"mongrel.log" -P "mongrel.pid" -c "D:/wamp/www/redmine" -t 0 -r "public"
-n 1024
** Starting Mongrel listening at 10.0.5.201:3001
** Starting Rails with production environment...
D:/wamp/www/redmine/config/../vendor/rails/railties/lib/rails/gem_dependency.rb:119:Warning:
Gem::Dependency#version_requirements is deprecated and will be remo
ved on or after August 2010.  Use #requirement
d:/Ruby187/lib/ruby/1.8/yaml.rb:133:in `load': syntax error on line 74,
col 21: `    authentication: : login' (ArgumentError)
        from d:/Ruby187/lib/ruby/1.8/yaml.rb:133:in `load'
        from d:/Ruby187/lib/ruby/1.8/yaml.rb:144:in `load_file'
        from d:/Ruby187/lib/ruby/1.8/yaml.rb:143:in `open'
        from d:/Ruby187/lib/ruby/1.8/yaml.rb:143:in `load_file'
        from D:/wamp/www/redmine/config/initializers/40-email.rb:6
        from
D:/wamp/www/redmine/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`load_without_new_constant_marking'
        from
D:/wamp/www/redmine/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`load'
        from
D:/wamp/www/redmine/config/../vendor/rails/railties/lib/initializer.rb:622:in
`load_application_initializers'
        from
D:/wamp/www/redmine/config/../vendor/rails/railties/lib/initializer.rb:621:in
`each'
        from
D:/wamp/www/redmine/config/../vendor/rails/railties/lib/initializer.rb:621:in
`load_application_initializers'
        from
D:/wamp/www/redmine/config/../vendor/rails/railties/lib/initializer.rb:176:in
`process'
        from
D:/wamp/www/redmine/config/../vendor/rails/railties/lib/initializer.rb:113:in
`send'
        from
D:/wamp/www/redmine/config/../vendor/rails/railties/lib/initializer.rb:113:in
`run'
        from D:/wamp/www/redmine/config/environment.rb:20
        from
d:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
        from
d:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/../lib/mongrel/rails.rb:147:in
`rails'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/mongrel_rails:113:in
`cloaker_'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/../lib/mongrel/configurator.rb:149:in
`call'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/../lib/mongrel/configurator.rb:149:in
`listener'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/mongrel_rails:99:in
`cloaker_'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/../lib/mongrel/configurator.rb:50:in
`call'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/../lib/mongrel/configurator.rb:50:in
`initialize'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/mongrel_rails:84:in
`new'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/mongrel_rails:84:in
`run'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/../lib/mongrel/command.rb:212:in
`run'
        from
d:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mingw32/bin/mongrel_rails:281
        from d:/Ruby187/bin/mongrel_rails:19:in `load'
        from d:/Ruby187/bin/mongrel_rails:19

Any Idea ?
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2010-12-13 13:59
(Received via mailing list)
On Mon, Dec 13, 2010 at 8:24 AM, Sebastien Perret <lists@ruby-forum.com>
wrote:
> -n 1024
>
Yes, please read the exception: "syntax error on line 74, ..." that is
reading a YAML file, check there is no tab or incorrect indentation in
that file.

--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupry
C262b66c0bccbea81ac3a0aa26bb5511?d=identicon&s=25 Sebastien Perret (sperret)
on 2010-12-13 14:20
Attachment: yaml.rb (10 KB)
I have checked the .yml file. See attached to my post. The error refers
to a comment line. Nothing before the line 74 looks wrong. No tabulation
reached.
I have moved the yml file and install again ruby with the installer.exe.
The old yml file and the new one matches, no différence found. Pretty
strange ...
C262b66c0bccbea81ac3a0aa26bb5511?d=identicon&s=25 Sebastien Perret (sperret)
on 2010-12-13 14:30
Sorry, I have found many tabulation in this file replaced them with
space caracter but the problem remained.
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2010-12-13 14:53
(Received via mailing list)
On Mon, Dec 13, 2010 at 10:20 AM, Sebastien Perret
<lists@ruby-forum.com> wrote:
> I have checked the .yml file. See attached to my post. The error refers
> to a comment line. Nothing before the line 74 looks wrong. No tabulation
> reached.

You attached the ruby file from YAML, but if you look at the reference
in the output:

 `load': syntax error on line 74,
col 21: `    authentication: : login'

You have a YAML file that contains a ": login" that is not a symbol.
There should not be spaces for symbols.

Please check your yaml files, not the YAML parser.

> I have moved the yml file and install again ruby with the installer.exe.
> The old yml file and the new one matches, no diffrence found. Pretty
> strange ...

This has nothing to do with the YAML parser or Ruby, is one of your
configuration files.
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupry
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2010-12-13 15:50
(Received via mailing list)
On Mon, Dec 13, 2010 at 10:30 AM, Sebastien Perret
<lists@ruby-forum.com> wrote:
> Sorry, I have found many tabulation in this file replaced them with
> space caracter but the problem remained.
>

Can you pastie the file that contains the authentication line I
mentioned before? There must be a syntax error there you're not
seeing.

--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupry
C262b66c0bccbea81ac3a0aa26bb5511?d=identicon&s=25 Sebastien Perret (sperret)
on 2010-12-13 17:33
You solved my problem ! It was amazing for a php devlopper like me to
see the starting ruby service was parsing a yml file I edited one week
ago in the redmine application whereas redmine was still working fine
yesterday. Anyway thanks a lot for your help Luis, I would not think
about searching in my redmine directory the solution. regards.
This topic is locked and can not be replied to.