From a20fe7c19b810f2d3e3654602425a5a4f6f2f312 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Nov 23 2018 11:58:41 +0000 Subject: 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 --- diff --git a/ipatests/pytest_ipa/integration/tasks.py b/ipatests/pytest_ipa/integration/tasks.py index fe23eba..159ba5f 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):