[Freeipa-devel] [PATCH] 232 Increase service startup timeout default
Alexander Bokovoy
abokovoy at redhat.com
Wed Jan 15 12:21:44 UTC 2014
On Wed, 15 Jan 2014, Jan Cholasta wrote:
>On 15.1.2014 12:17, Martin Kosek wrote:
>>On 01/15/2014 11:20 AM, Alexander Bokovoy wrote:
>>>On Wed, 15 Jan 2014, Jan Cholasta wrote:
>>>>Hi,
>>>>
>>>>the attached patch should fix <https://fedorahosted.org/freeipa/ticket/4078>.
>>>>
>>>>I have also attached patch 179, which fixes a related bug in certificate
>>>>renewal.
>>>
>>>NACK for this part:
>>>>This fixes a possible NSS database corruption in renew_ca_cert.
>>>>---
>>>>ipaserver/install/installutils.py | 3 ---
>>>>1 file changed, 3 deletions(-)
>>>>
>>>>diff --git a/ipaserver/install/installutils.py
>>>>b/ipaserver/install/installutils.py
>>>>index 67eabc2..0ba9c2e 100644
>>>>--- a/ipaserver/install/installutils.py
>>>>+++ b/ipaserver/install/installutils.py
>>>>@@ -820,9 +820,6 @@ def stopped_service(service, instance_name=""):
>>>> root_logger.debug('Service %s%s is not running, continue.', service,
>>>> log_instance_name)
>>>> yield
>>>>- root_logger.debug('Starting %s%s.', service, log_instance_name)
>>>>- ipaservices.knownservices[service].start(instance_name)
>>>>- return
>>>> else:
>>>> # Stop the service, do the required stuff and start it again
>>>> root_logger.debug('Stopping %s%s.', service, log_instance_name)
>>>You need to wrap yield into try: finally: block. I have a patch for
>>>similar case in private_cache() few lines above this code.
>
>There is no cleanup needed for this particular yield. Also this is
>not really the concern of the patch, it does exactly what the commit
>message says. Since you are already fixing a similar case, I would
>suggest you amend your patch with any changes you deem necessary, I
>don't see why a single fix should be dispersed among multiple
>patches.
Patch attached, it obsoletes your patch 179.
--
/ Alexander Bokovoy
-------------- next part --------------
>From a201bd425d988257769f096093198e16c23e7065 Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy <abokovoy at redhat.com>
Date: Wed, 15 Jan 2014 14:16:49 +0200
Subject: [PATCH 2/2] ipaserver/install/installutils: clean up properly after
yield
When a context to which we yield generates exception, the code in
private_ccache() and stopped_service() didn't get called for cleanup.
Additionally, in stopped_service() one should not start a previously
stopped service after the context returned control to us because the
original state was with stopped service already.
Fixes https://fedorahosted.org/freeipa/ticket/4078
---
ipaserver/install/installutils.py | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/ipaserver/install/installutils.py b/ipaserver/install/installutils.py
index cc53f75..67216f1 100644
--- a/ipaserver/install/installutils.py
+++ b/ipaserver/install/installutils.py
@@ -786,15 +786,16 @@ def private_ccache(path=None):
os.environ['KRB5CCNAME'] = path
- yield
-
- if original_value is not None:
- os.environ['KRB5CCNAME'] = original_value
- else:
- os.environ.pop('KRB5CCNAME')
+ try:
+ yield
+ finally:
+ if original_value is not None:
+ os.environ['KRB5CCNAME'] = original_value
+ else:
+ os.environ.pop('KRB5CCNAME')
- if os.path.exists(path):
- os.remove(path)
+ if os.path.exists(path):
+ os.remove(path)
@contextmanager
@@ -820,13 +821,13 @@ def stopped_service(service, instance_name=""):
root_logger.debug('Service %s%s is not running, continue.', service,
log_instance_name)
yield
- root_logger.debug('Starting %s%s.', service, log_instance_name)
- ipaservices.knownservices[service].start(instance_name)
return
else:
# Stop the service, do the required stuff and start it again
root_logger.debug('Stopping %s%s.', service, log_instance_name)
ipaservices.knownservices[service].stop(instance_name)
- yield
- root_logger.debug('Starting %s%s.', service, log_instance_name)
- ipaservices.knownservices[service].start(instance_name)
+ try:
+ yield
+ finally:
+ root_logger.debug('Starting %s%s.', service, log_instance_name)
+ ipaservices.knownservices[service].start(instance_name)
--
1.8.4.2
More information about the Freeipa-devel
mailing list