id = 2915 title = "qemu: error reading initrd /home/build/pooldir/w.linux.initramfs" state = "closed" created_at = "2025-04-05T16:37:29.344Z" closed_at = "2025-04-09T20:24:18.759Z" labels = [] url = "https://gitlab.com/qemu-project/qemu/-/issues/2915" host-os = "Fedora 41" host-arch = "amd64" qemu-version = "QEMU emulator version 9.1.3 (qemu-9.1.3-2.fc41)" guest-os = "Fedora 41" guest-arch = "am64" description = """occasionally, qemu can't open the initrd file it's been supplied on the command line (I'm guessing this is qemu and not libvirt) ``` sudo virsh --connect qemu:///system start w.east --console error: Failed to start domain 'w.east'\\r\\nerror: internal error: QEMU unexpectedly closed the monitor (vm='w.east'): qemu: error reading initrd /home/build/pooldir/w.linux-transmogrify.initramfs: Failed to open file \\xe2\\x80\\x9c/home/build/pooldir/w.linux-transmogrify.initramfs\\xe2\\x80\\x9d: open() failed: Permission denied\\r\\n\\r\\n" ```""" reproduce = """1. create, using libvirt, a config that direct boots from initrd and kernel it creates a domain call linux, and from that creates {w.,w1,w2,w3}{east,west,north,road} 1. boots and then destroys these domains 1000's of times 2. occasionally above error occurs while trying to boot the domain""" additional = """I suspect it is this: ``` mapped_file = g_mapped_file_new(initrd_filename, false, &gerr); if (!mapped_file) { fprintf(stderr, "qemu: error reading initrd %s: %s\\n", initrd_filename, gerr->message); exit(1); } x86ms->initrd_mapped_file = mapped_file; ``` in `hw/i386/x86-common.c`. Which would suggest `g_mapped_file_new()` occasionally fails, which is worrying. The test framework is [Libreswan](https://testing.libreswan.org/), unresolved test results indicate a failed boot, for instance [debug log of failure](https://testing.libreswan.org/v5.2-370-ga09c7f410b/interop-ikev2-strongswan-20-strongswan-eap/OUTPUT/debug.log). The problem didn't happen with f40."""