On 08/21/2017 05:22 AM, llilulu wrote:
libvirt
version: 3.4.0
architecture: x86_64 ubuntu16.04-server
hypervisor: kvm,qemu
My program use libvirt event , the program is a module(.so) file in cloud application,
when unload the module, program will dump in virEventPoolRunOnce call.
program frame
This is perfectly expected. IIUC you're providing your own event loop
callbacks (virEventRegisterImpl()) which are implemented in your module.
Well, if you remove it dead pointers are left behind in libvirt's
internals and thus when libvirt tries to call your function it accesses
dead pointer and thus SIGSEGVs. The proper way to do it is to unload
your module only after the last call to libvirt (and after every
connection was closed).
Michal