The scheduled full-distro molecule matrix converge-fails for every scenario that deploys Kibana (es_kibana, elasticstack_default, cert_renewal) on debian12, ubuntu2204 and ubuntu2404, while rockylinux, debian13 and ubuntu2604 pass. I found this while stress-testing the runner host, so it is not new, but it is worth fixing on its own.
The failing task is the Kibana readiness wait. Its shell block starts with set -o pipefail but the task has no args: executable: /bin/bash, so Ansible runs it under /bin/sh. On the images where /bin/sh is dash (debian12, ubuntu2204, ubuntu2404) dash rejects the option and the command dies immediately with set: Illegal option -o pipefail (rc 2) on every one of the 60 retries, so converge never gets past the wait. Where /bin/sh is bash the same block runs fine, which is why the other distros are green and why the PR-time matrix (rockylinux10 + debian13) never trips over it.
There are two copies of this same block, both missing the executable:
- roles/kibana/tasks/restart_and_verify_kibana.yml (the
set -o pipefail at line 32)
- roles/kibana/tasks/main.yml (line 158)
The fix is to add the same args: executable: /bin/bash these blocks need, which is already the convention elsewhere in the collection, for example roles/kibana/tasks/kibana-security.yml. Both copies should move together so the readiness wait behaves identically wherever it runs.
The scheduled full-distro molecule matrix converge-fails for every scenario that deploys Kibana (es_kibana, elasticstack_default, cert_renewal) on debian12, ubuntu2204 and ubuntu2404, while rockylinux, debian13 and ubuntu2604 pass. I found this while stress-testing the runner host, so it is not new, but it is worth fixing on its own.
The failing task is the Kibana readiness wait. Its shell block starts with
set -o pipefailbut the task has noargs: executable: /bin/bash, so Ansible runs it under/bin/sh. On the images where/bin/shis dash (debian12, ubuntu2204, ubuntu2404) dash rejects the option and the command dies immediately withset: Illegal option -o pipefail(rc 2) on every one of the 60 retries, so converge never gets past the wait. Where/bin/shis bash the same block runs fine, which is why the other distros are green and why the PR-time matrix (rockylinux10 + debian13) never trips over it.There are two copies of this same block, both missing the executable:
set -o pipefailat line 32)The fix is to add the same
args: executable: /bin/bashthese blocks need, which is already the convention elsewhere in the collection, for example roles/kibana/tasks/kibana-security.yml. Both copies should move together so the readiness wait behaves identically wherever it runs.