[Freeipa-devel] [PATCH] 1014 configurable service timeout
Rob Crittenden
rcritten at redhat.com
Tue May 29 14:31:23 UTC 2012
Martin Kosek wrote:
> On Thu, 2012-05-24 at 11:38 -0400, Rob Crittenden wrote:
>> Petr Viktorin wrote:
>>> On 05/18/2012 10:03 PM, Rob Crittenden wrote:
>>>> Rob Crittenden wrote:
>>>>> A hardcoded timeout was used in ipactl for service restarts, set rather
>>>>> low. A separate timeout was hardcoded into the installer.
>>>>>
>>>>> I centralized them into a single timeout, configurable in the standard
>>>>> way in /etc/ipa/*.conf.
>>>>>
>>>>> On install it will always default to 120 seconds and remain there unless
>>>>> changed in default.conf (not replicated either).
>>>>>
>>>>> I tested this on systemd systems and sysV systems and it works ok for
>>>>> me. You'll also want to double-check that this works when other 389-ds
>>>>> instances are installed.
>>>>>
>>>>> Getting the naming of instances right was a bit tricky.
>>>>
>>>> Noticed a problem on upgrades and fixed that. Updated patch attached.
>>>>
>>>> rob
>>>>
>>>>
>>>
>>> Please rebase the patch onto current master.
>>>
>>>
>>
>> Done
>
> This is a good start. I just found few places where I found that the
> remaining wait function calls are redundant:
>
> 1) install/tools/ipactl:
>
> if lurl.urlscheme == 'ldapi':
> - wait_for_open_socket(lurl.hostport, timeout=6)
> + wait_for_open_socket(lurl.hostport,
> timeout=api.env.startup_timeout)
> else:
> (host,port) = lurl.hostport.split(':')
> - wait_for_open_ports(host, [int(port)], timeout=6)
> + wait_for_open_ports(host, [int(port)],
> timeout=api.env.startup_timeout)
>
> Aren't these calls redundant? We already wait for ports when dirsrv is
> started (dirsrv.start()) or restarted (dirsrv.restart()).
It is redundant in some cases but there are some calls we make where
this is used to determine the availability of the service. This call is
needed.
> 2) ipaserver/install/replication.py:
> - installutils.wait_for_open_ports('localhost', [389, 636], 300)
> + ipautil.wait_for_open_ports('localhost', [389, 636], 300)
>
> Isn't this now redundant? Port check should be done in service restart.
Yes, looks like this call can go.
> 3) ipaserver/install/plugins/updateclient.py:
>
> - installutils.wait_for_open_socket(socket_name)
> + wait_for_open_socket(socket_name)
>
> Also seems redundant, dirsrv should be already up as it was restarted
> via our Service framework. Though we only check for ports in the Service
> framework, I wonder if this is enough and we can be sure that when ports
> are up, the LDAPI socket is also up.
No, sockets and ports are separate, particularly when updating. In fact,
we disable the ports so a wait_for_port() will always fail which is why
I added the wait flag. This may be a case I missed with upgrades. Let me
test upgrades again...
rob
More information about the Freeipa-devel
mailing list