Lesstep
GitHub Actions・ansible-test・2026年11月4日に確認

GitHub の Ubuntu のランナーで ansible-test 2.22 と devel の「mount -o remount,rw /sys/fs/cgroup/ && pkill sleep」returned exit status 1

ansible-test は、コレクションの sanity・unit・integration のテストを既定のテスト用コンテナーの中で動かします。そのコンテナーは env sleep 60 ; exec /sbin/init で起動し、そのあと特権のヘルパーのコンテナーが中の cgroup のファイルシステムをマウントし直して、pkill sleep で起こします。いまカーネル 7.0.0-1017-azure の GitHub の ubuntu-24.04 と ubuntu-26.04 のランナーでは、このヘルパーがよく 1 で終わり、ansible-test はテストを1つも動かさないうちに止まります(ansible/ansible #87731・未解決)。

どう見えるか

Starting new "ansible-test-controller-ENwvCcfN" container.
Run command: docker run ... --cgroupns private -dt ... quay.io/ansible/default-test-container:v2.23-2 sh -c 'env sleep 60 ; exec /sbin/init'
Run command: docker run --pid host --privileged --name ansible-test-init-controller-ENwvCcfN --rm quay.io/ansible/ansible-test-utility-container:3.6.0 nsenter -t 2937 -m -p sh -c 'mount -o remount,rw /sys/fs/cgroup/ && pkill sleep'
FATAL: Host job(s) failed. See previous error(s) for details.
ERROR: Host DockerConfig(...) job failed:
Command "docker run --pid host --privileged ... 'mount -o remount,rw /sys/fs/cgroup/ && pkill sleep'" returned exit status 1.

SAP のコレクションの実行のログを縮めたものです(ansible-test-gh-action #138)。コンテナーの名前の最後のランダムな文字と、nsenter -t のあとのプロセス ID は実行ごとに変わります。

当たるもの

カーネルが疑われている理由

落ちたジョブはすべて 7.0.0-1017-azure で動いていました。issue が立ったのは10月21日で、24.04 のイメージが 6.17.0-1022-azure からこのカーネルに変わったあとです。10月の終わりの数日、6.17 のカーネルのイメージでジョブはまた通り、20261026 のイメージで 7.0 が戻ると、また落ち始めました。ansible-test のメンテナーの1人は、プロジェクトの Azure Pipelines の VM をこのカーネルに上げたところ同じエラーが出たので、元に戻しています。

カーネルの何が原因かは、まだ分かっていません。issue にある説明の1つは競合です。env が sleep を始める前に pkill sleep が動くと、起こす相手が見つからずに 1 を返します。起こすのを最大30秒やり直すプルリクエスト(ansible/ansible #87864)は、メンテナーがやり直しではなく原因を求めたあと、マージされずに閉じられました。

本当の直しが出るまでの手

2.22 と devel のジョブを、カーネルが 6.8.0-1070-azure の ubuntu-22.04 で動かし、ほかは ubuntu-latest のままにします。matrix の変数の名前は自分のものに合わせます:

jobs:
  sanity:
    runs-on: ${{ contains(fromJSON('["stable-2.22", "devel"]'), matrix.ansible) && 'ubuntu-22.04' || 'ubuntu-latest' }}

amazon.ai のプルリクエストが、devel のジョブでこれをしています(amazon.ai #90)。ubuntu-24.04 に固定しても直りません。そのイメージにも新しいカーネルが入っているからです。

または、community.sonic や vmware.vmware のように、devel のジョブが落ちてもワークフローは落とさないようにします(ジョブに continue-on-error: ${{ matrix.ansible == 'devel' }})。マージを止める安定版のジョブは残りますが、issue が直るまでは devel の本当の失敗も見えなくなります。

見分け方

ほかの 26.04 の失敗

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べるので、matrix のうち 2.22 と devel のジョブだけが赤くなったことがすぐ分かり、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

JetBrains Marketplace で入れる

GitHub と GitHub Actions は GitHub, Inc. の商標、Ansible は Red Hat, Inc. の登録商標、Ubuntu は Canonical Ltd. の商標、Linux は Linus Torvalds の登録商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・Red Hat・Canonical・Linux Foundation・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:「The ubuntu-latest label will migrate to Ubuntu 26」 · カーネル 7.0.0-1017-azure の MongoDB · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English