Troubleshooting
This page collects rare, host-specific issues that do not affect most Sailwright setups.
Windows: Cygwin Ansible Shadowed by a Host Installation
Section titled “Windows: Cygwin Ansible Shadowed by a Host Installation”On Windows with Cygwin, the Ansible installation inside Cygwin can be shadowed by another Python or Ansible installation from the Windows host.
If that happens:
- Do not install Ansible directly on the Windows host.
- Remove conflicting host-level Ansible installations.
- Install and run Ansible through the Cygwin Python environment instead.
macOS: Ansible Fork Safety Crash
Section titled “macOS: Ansible Fork Safety Crash”Running Ansible on macOS can trigger a fork-safety crash similar to this:
TASK [Gathering Facts] ***************************************************************************************************************************************objc[9473]: +[NSNumber initialize] may have been in progress in another thread when fork() was called.objc[9473]: +[NSNumber initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.ERROR! A worker was found in a dead stateWork around it by setting this environment variable before running Ansible:
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YESLinux: virsh domifaddr Returns No IP
Section titled “Linux: virsh domifaddr Returns No IP”Linux libvirt provisioning waits for virsh domifaddr to report a guest IPv4
address. Sailwright checks the guest agent first, then libvirt DHCP leases. If both
sources return no address, provisioning cannot build the temporary Ansible
inventory.
First confirm the VM is running and query the same libvirt connection Sailwright uses:
virsh --connect qemu:///system domifaddr <domain> --source agentvirsh --connect qemu:///system domifaddr <domain> --source leaseIf the agent lookup is empty, wait for the guest to finish booting and make sure
the image has qemu-guest-agent installed and running. If the lease lookup is
empty, make sure the VM is attached to a libvirt-managed network with visible
DHCP leases:
virsh --connect qemu:///system net-info defaultvirsh --connect qemu:///system net-dhcp-leases defaultWhen the default network exists but is inactive, enable it:
sudo virsh --connect qemu:///system net-start defaultsudo virsh --connect qemu:///system net-autostart defaultFor DEV_ALCHEMY_LIBVIRT_URI=qemu:///session, run the same checks against
qemu:///session. Session VMs use libvirt user-mode networking by default, so
guest-agent visibility is usually the most reliable IP source.