From 7434a3299d25d1b96ac13ad33fb9ec96eb3da85e Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Mon, 19 Nov 2018 14:54:04 +0100 Subject: [PATCH] PR-CI: Restart rpcbind when it blocks kadmin port Every now and then, a PR-CI job fails because rpcbind blocks the kadmin port 749/UDP and kadmin.service fails to start. When NFS secure port is configured, rpcbind reserves a random low port. A new workaround detects the blocked port and restarts rpcbind.service. See: https://pagure.io/freeipa/issue/7769 Signed-off-by: Christian Heimes Reviewed-By: Thomas Woerner --- ipatests/pytest_ipa/integration/tasks.py | 25 ++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/ipatests/pytest_ipa/integration/tasks.py b/ipatests/pytest_ipa/integration/tasks.py index e1d119db2..937f2eeff 100644 --- a/ipatests/pytest_ipa/integration/tasks.py +++ b/ipatests/pytest_ipa/integration/tasks.py @@ -160,15 +160,32 @@ def prepare_host(host): host.put_file_contents(env_filename, env_to_script(host.to_env())) -def allow_sync_ptr(host): - kinit_admin(host) - host.run_command(["ipa", "dnsconfig-mod", "--allow-sync-ptr=true"], - raiseonerr=False) +def rpcbind_kadmin_workaround(host): + """Restart rpcbind in case it blocks 749/UDP + + See https://pagure.io/freeipa/issue/7769 + See https://bugzilla.redhat.com/show_bug.cgi?id=1592883 + """ + for _i in range(5): + result = host.run_command(['ss', '-ulnp', 'sport', '=', '749']) + if 'rpcbind' in result.stdout_text: + logger.error("rpcbind blocks 749/UDP, restarting service") + host.run_command(['systemctl', 'restart', 'rpcbind.service']) + time.sleep(2) + else: + break def apply_common_fixes(host): prepare_host(host) fix_hostname(host) + rpcbind_kadmin_workaround(host) + + +def allow_sync_ptr(host): + kinit_admin(host) + host.run_command(["ipa", "dnsconfig-mod", "--allow-sync-ptr=true"], + raiseonerr=False) def backup_file(host, filename):