Shaken Fist CI started failing this afternoon with this message logged:
ERROR: Ansible requires blocking IO on stdin/stdout/stderr.
Non-blocking file handles detected: <stdout>
Specifically this was happening when using ansible-galaxy to install some requirements, but the check is a more generic check than that was implemented by this ansible pull request, which appears to have been released with ansible-core 2.14 on November 8. That sat around until today, when ansible 7.0.0 was released and broke CI for me.
To be completely honest I’m not sure what’s happening here — somewhere in GitHub actions calling a shell script that calls ansible-galaxy the stdout file descriptor gets set to non-blocking and everything breaks. I’m unsure exactly where because its a pain to track down.
That said, Jack came to the rescue with this gem:
ansible-galaxy install andrewrothstein.etcd-cluster | cat -
Which unblocks me. It will be interesting to see if other people encounter problems with this change.