The host being libvirt starts to communicate with libvirt_lxc in src/lxc/lxc_process.c: monitor = virLXCMonitorNew(vm, cfg->stateDir, &monitorCallbacks);
On the receiving side this then crashes __GI_xdr_uint64_t is xdr_uint64_t is of glibc-2.31/sunrpc/xdr_intXX_t.c Once the libvirt_lxc process exists communication is via /run/libvirt/lxc/sl.sock then on libvirtd break on b virLXCMonitorNew On the receiving end we see: b virLXCControllerEventSendInit That receives it like Thread 1 "libvirt_lxc" hit Breakpoint 1, virLXCControllerEventSendInit (initpid=265337, ctrl=0x56399bb35c20) at ../../../src/lxc/lxc_controller.c:2304 2304 VIR_DEBUG("Init pid %lld", (long long)initpid); The pid here is 265337 and the process exists (gdb) p initpid $1 = 265337 $ ps axlf 4 0 265335 1 20 0 143352 19352 - tl ? 0:00 /usr/lib/libvirt/libvirt_lxc --name sl --console 25 --security=apparmor --handshake 30 4 0 265337 265335 20 0 4240 3452 - Ss+ pts/0 0:00 \_ /bin/bash (gdb) p *ctrl $3 = {name = 0x56399bb360f0 "sl", vm = 0x56399bb468a0, def = 0x56399bb44c10, handshakeFd = -1, initpid = 265337, nnbdpids = 0, nbdpids = 0x0, nveths = 0, veths = 0x0, nnicindexes = 0, nicindexes = 0x0, npassFDs = 0, passFDs = 0x0, nsFDs = 0x0, nconsoles = 1, consoles = 0x56399bb4a000, devptmx = 0x56399bb45800 "/run/libvirt/lxc/sl.devpts/ptmx", nloopDevs = 0, loopDevFds = 0x0, securityManager = 0x56399bb49830, daemon = 0x56399bb4b030, firstClient = true, client = 0x56399bb71080, prog = 0x56399bb41810, inShutdown = false, timerShutdown = 1, cgroup = 0x56399bb6f250, fuse = 0x56399bb3ef00} It wants to reply: 2308 virLXCControllerEventSend(ctrl, 2309 VIR_LXC_MONITOR_PROC_INIT_EVENT, 2310 (xdrproc_t)xdr_virLXCMonitorInitEventMsg, 2311 (void*)&msg); (gdb) p ctrl->client $6 = (virNetServerClientPtr) 0x56399bb71080 This eventually calls virNetMessageEncodePayload(msg, proc, data) (gdb) p *msg $14 = {tracked = false, buffer = 0x56399bb72000 "", bufferLength = 65540, bufferOffset = 28, header = {prog = 305402420, vers = 1, proc = 2, type = VIR_NET_MESSAGE, serial = 1, status = VIR_NET_OK}, cb = 0x0, opaque = 0x0, nfds = 0, fds = 0x0, donefds = 0, next = 0x0} (gdb) p data $15 = (void *) 0x7ffe62f988d0 (gdb) p proc $16 = (xdrproc_t) 0x56399aba6600 <xdr_virLXCMonitorInitEventMsg> All lookg quite normal, then it jumps with these values into xdr_virLXCMonitorInitEventMsg -> __GI_xdr_uint64_t and on the return path from there returns to 0x0 crashing due to that. Also needs: $ sudo apt install libvirt0-dbgsym And actually best a -O0 build of this. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1892826 Title: autopkgtest breaks in groovy at 6.6.0-1ubuntu1 for smoke-lxc To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1892826/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs