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 _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users