[Pacemaker] Pure-FTPd resource script is wrong (at least on ubuntu and probably debian)

Dejan Muhamedagic dejanmm at fastmail.fm
Thu Nov 10 10:30:15 EST 2011


On Tue, Nov 08, 2011 at 07:24:48PM +0100, Mailing List SVR wrote:
> Il 08/11/2011 16:30, Dejan Muhamedagic ha scritto:
>> Hi,
>>
>> On Mon, Nov 07, 2011 at 06:48:22PM +0100, Mailing List SVR wrote:
>>> Hi,
>>>
>>> thanks for your answer
>>>
>>> Il 07/11/2011 18:27, Dejan Muhamedagic ha scritto:
>>>> Hi,
>>>>
>>>> On Sat, Nov 05, 2011 at 10:26:12PM +0100, Mailing List SVR wrote:
>>>>> Hi,
>>>>>
>>>>> the script doesn't create the pid file directory if missing and so
>>>> None of the resource agents does that. Anyway, it needs to be
>>>> created just once per node and arguably it should be part of
>>>> deployment.
>>> /var/run is a tmpfs so is cleaned every time you reboot the server, are
>>> you suggesting to do that in rc.local?
>> So directories are also removed on reboot. That wasn't the case
>> before, but I can now vaguelly recall that there was sometimes a
>> switch to tmpfs in some distributions. At any rate,
>> /etc/init.d/{corosync,heartbeat} should create the HA_RSCTMP
>> directory on start.
>>
>>>>    Note that the default pidfile directory (shared by
>>>> all agents) should be created by the init script (IIRC).
>>> please note that pure-ftpd on debian/ubuntu has the pid hardcoded to
>>>
>>> /var/run/pure-ftpd/pure-ftpd.pid
>> Hardcoded in the RA?
>
> no hardcoded in pure-ftpd package,

So, how can that influence the operation of the RA? Or are we
talking here about the init script?

> I think that as general rule if a user specify a pidfile the start  
> script should check if the pid dir exists since the pid are generally  
> stored in tmpfs
>
>> Then it differs from upstream (which is a
>> parameter):
>>
>> : ${OCF_RESKEY_pidfile="${HA_RSCTMP}/pure-ftpd-${OCF_RESOURCE_INSTANCE}.pid"}
>>
>> Note that this default also supports multiple ftpd resources.
>> It's also a very common pidfile business (many RAs use the same
>> naming scheme).
>>
>>> and in general if a resource script accept a pidfile as configuration
>>> parameters should try to create the directory if missing.
>>>
>>> Anyway is a fact that this resource script doesn't work on debian/ubuntu
>>> and the modify I sent solve the problem, please suggest a better
>>> approach if it is wrong (this is the first time I'm using resource
>>> scripts so maybe I'm missing something)
>> All RA should work out of the box if properly configured. But I
>> wonder why it didn't work for you. It would be best to involve
>> your distribution maintainer.
>
> yes I can do so, but consider that debian/ubuntu init scripts are not  
> yet lsb compliant, try:
>
> <initscript> status
>
> with the service not running you'll see exit code 4 and not 3, there are  
> bugs open since years for this issue and not yet resolved ... and  
> pure-ftpd is in universe ... I think I have few possibilities to see a  
> fix from debian/ubuntu ... I can recompile pure-ftpd or patch RA script,  
> the second is easy.
>
> I think the fix I proposed can only improve RA scripts in general,  
> however I can survive with a local modification if you don't agree

But we're running in circles, I still don't understand how comes
that the directory you need created is /var/run/pure-ftpd, when
it should've been /var/run/resource-agents. Which one is it?
In case it was the latter, then that directory should have
existed.

Thanks,

Dejan

> thanks anyway,
>
> Nicola
>
>
>> Cheers,
>>
>> Dejan
>>
>>> thanks
>>> Nicola
>>>
>>>> Thanks,
>>>>
>>>> Dejan
>>>>
>>>>> pure-ftpd starts but no pidfile is created and the motion function fails
>>>>> and try top start pure-ftpd again but this time the address is already
>>>>> in use and so on,
>>>>>
>>>>> must be added something like this before start pure-ftpd:
>>>>>
>>>>> if [ ! -e `dirname $PIDFILE` ];then
>>>>>          mkdir `dirname $PIDFILE`
>>>>> fi
>>>>>
>>>>> please apply,
>>>>>
>>>>> thanks
>>>>> Nicola
>>>>>
>>>>> P.S. I'm testing on ubuntu 11.10, note also that on ubuntu 11.10 seems
>>>>> the pid is hardcoded to /var/run/pure-ftpd/pure-ftpd.pid
>>>>>
>>>>> _______________________________________________
>>>>> Pacemaker mailing list:Pacemaker at oss.clusterlabs.org
>>>>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>>>>>
>>>>> Project Home:http://www.clusterlabs.org
>>>>> Getting started:http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
>>>>> Bugs:http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>> _______________________________________________
>> Pacemaker mailing list:Pacemaker at oss.clusterlabs.org
>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>>
>> Project Home:http://www.clusterlabs.org
>> Getting started:http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
>> Bugs:http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>>
>
>
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker




More information about the Pacemaker mailing list