[libvirt-users] dump in virEventPollRunOnce

Michal Privoznik mprivozn at redhat.com
Mon Aug 28 11:25:42 UTC 2017


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




More information about the libvirt-users mailing list