The example was $PATH contained /etc for some reason, and tmp/hosttools/python3 ended up being a symlink to /etc/python3/, which is a directory. The hosttools population should verify that the target is an executable file (or symlink to).
Patches on the bitbake/oe-core lists.
Merged in oe-core 7f40c934c3aeb1d34f95f30b281e25a17c428fce.