[Mongrel] mongrel_cluster, start on boot, stale pids
Jonathan Rochkind
rochkind at jhu.edu
Wed Mar 5 13:15:57 EST 2008
Believe it or not, I have indeed upgraded to 1.0.5 of mongrel_cluster
and 1.1.4 of mongrel. At least I think I have. I have installed the
newer versions of the gems, and I believe it's what my scripts are using.
What makes you think it looks like I am not? Because maybe I'm not even
though I intend to be.
I wonder again, if the sample script distributed with the gem at
resources/mongrel_cluster doesn't work/isn't supported... should someone
with commit privs remove it? Or add a comment to it warning it might not
work?
Jonathan
Eden Li wrote:
> I use mongrel_rails cluster::* instead of mongrel_cluster_ctl, however
> it looks like you're using an older version of mongrel_cluster. You
> might try upgrading to 1.0.5.
>
> On Mar 5, 2008, at 9:45 AM, Jonathan Rochkind wrote:
>
>
>> Actually, I have investigated further, and am pretty sure I am
>> duplicating the problem condition properly.
>>
>> mongrel_cluster_ctl start --clean doesn't seem to work properly, it's
>> throwing that error. Hmm.
>>
>> I am guessing that the script I find in the mongrel_cluster gem at
>> resources/mongrel_cluster, which is reccommended on that wiki
>> page... is
>> not actually what you all are using. And perhaps shouldn't be
>> included
>> in the distro anymore? What are others using to ensure mongrel
>> clusters start at boot?
>>
>> Jonathan
>>
>> Jonathan Rochkind wrote:
>>
>>> Thanks that's helpful, I'm investigating that.
>>>
>>> Using the instructions at:
>>>
>>> http://mongrel.rubyforge.org/wiki/MongrelCluster#OnBootInitializationSetup
>>>
>>> I had a little bash script at /etc/init.d/mongrel_cluster that was
>>> copied from
>>> /path/to/mongrel_cluster_gem/resources/mongrel_cluster
>>>
>>> That bash script calls mongrel_cluster_ctl with various options. I
>>> have added a "--clean" option to the "start" condition. Would it
>>> make sense to suggest this be added to resources/mongrel_cluster in
>>> the actual gem, to not require this change?
>>>
>>> However, now I'm trying to set up an intentionally created stale
>>> pid, to test this feature. I am invoking mongrel_cluster_ctl
>>> manually (but in the manner of the resources/mongrel_cluster
>>> script) with the --clean option. I get this:
>>>
>>> ****
>>> /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>>> mongrel_cluster/init.rb:83:in `unlink': No such file or directory -
>>> tmp/pids/mongrel.3000.pid (Errno::ENOENT)
>>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>>> mongrel_cluster/init.rb:83:in `start'
>>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>>> mongrel_cluster/init.rb:79:in `each'
>>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>>> mongrel_cluster/init.rb:79:in `start'
>>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>>> mongrel_cluster/init.rb:232:in `run'
>>> from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.4/bin/../lib/
>>> mongrel/command.rb:212:in `run'
>>> from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.4/bin/
>>> mongrel_rails:281
>>> from /usr/bin/mongrel_rails:18:in `load'
>>> from /usr/bin/mongrel_rails:18
>>> mongrel_rails cluster::start returned an error.
>>> *****
>>>
>>> That was using a mongrel_config.yml file that did have 'cwd' set.
>>> There certainly is a tmp/pids/mongrel.3000.pid off of the 'cwd'
>>> location. But perhaps the 'unlink' isn't being executed off the
>>> 'cwd' location as it ought to be?
>>>
>>> Is this a bug in mongrel_cluster_ctl --clean, or perhaps just a bug
>>> in my attempt to duplicate the problem condition and make sure I've
>>> solved it?
>>>
>>> Thanks for any help.
>>>
>>> Jonathan
>>>
>>>
>>>
>>> Eden Li wrote:
>>>
>>>
>>>> Newer versions of mongrel_cluster have a --clean option which will
>>>> remove stale pids if it finds them. Provide that option to
>>>> mongrel_rails cluster::* in your scripts.
>>>>
>>>> On Mar 5, 2008, at 8:59 AM, Jonathan Rochkind wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> So I am using the instructions here to have mongrel_cluster start
>>>>> my
>>>>> various mongrel-deployed apps on server boot.
>>>>> http://mongrel.rubyforge.org/wiki/MongrelCluster
>>>>>
>>>>> There is a problem mentioned here:
>>>>> http://www.ruby-forum.com/topic/105849
>>>>>
>>>>> In summary---if the server (or the mongrel processes) die
>>>>> ungracefully
>>>>> leaving their pids behind, then on next boot, mongrel_cluster won't
>>>>> succesfully start them up, choking on the leftover pids.
>>>>>
>>>>> What is the reccommended solution to this? I'd like to have my
>>>>> mongrels
>>>>> automatically start on boot, in a way that forces them to start
>>>>> even
>>>>> if
>>>>> there are stale pids. Thanks for any advice!
>>>>>
>>>>> [ PS: I just discovered this problem the hard way, when my server
>>>>> unexpetedly lost power, and my production apps failed to start up
>>>>> on
>>>>> the
>>>>> next boot! Very unpleasant. ]
>>>>>
>>>>> Jonathan
>>>>>
>>>>>
>>>>> --
>>>>> Jonathan Rochkind
>>>>> Digital Services Software Engineer
>>>>> The Sheridan Libraries
>>>>> Johns Hopkins University
>>>>> 410.516.8886
>>>>> rochkind (at) jhu.edu
>>>>>
>>>>> _______________________________________________
>>>>> Mongrel-users mailing list
>>>>> Mongrel-users at rubyforge.org
>>>>> http://rubyforge.org/mailman/listinfo/mongrel-users
>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Mongrel-users mailing list
>>>> Mongrel-users at rubyforge.org
>>>> http://rubyforge.org/mailman/listinfo/mongrel-users
>>>>
>>>>
>>>>
>>>
>> --
>> Jonathan Rochkind
>> Digital Services Software Engineer
>> The Sheridan Libraries
>> Johns Hopkins University
>> 410.516.8886
>> rochkind (at) jhu.edu
>>
>> _______________________________________________
>> Mongrel-users mailing list
>> Mongrel-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/mongrel-users
>>
>
> _______________________________________________
> Mongrel-users mailing list
> Mongrel-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mongrel-users
>
--
Jonathan Rochkind
Digital Services Software Engineer
The Sheridan Libraries
Johns Hopkins University
410.516.8886
rochkind (at) jhu.edu
More information about the Mongrel-users
mailing list