diff options
author | Christian Heimes <cheimes@redhat.com> | 2018-11-19 14:54:04 +0100 |
---|---|---|
committer | Christian Heimes <cheimes@redhat.com> | 2018-11-20 09:31:32 +0100 |
commit | 7434a3299d25d1b96ac13ad33fb9ec96eb3da85e (patch) | |
tree | e5d222b3ee4f98608439de2713c54d0541526cee | |
parent | 122f968ceebbe80a47eca842a98bb39876264535 (diff) | |
download | freeipa-7434a3299d25d1b96ac13ad33fb9ec96eb3da85e.tar.gz freeipa-7434a3299d25d1b96ac13ad33fb9ec96eb3da85e.tar.xz freeipa-7434a3299d25d1b96ac13ad33fb9ec96eb3da85e.zip |
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 <cheimes@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
-rw-r--r-- | ipatests/pytest_ipa/integration/tasks.py | 25 |
1 files 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): |