[libvirt-users] Libvirtd freezes

Michal Privoznik mprivozn at redhat.com
Thu May 4 09:23:39 UTC 2017


On 05/04/2017 11:20 AM, Stefano Ricci wrote:
> 2017-05-03 8:56 GMT+02:00 Michal Privoznik <mprivozn at redhat.com>:
>> On 05/01/2017 09:57 AM, Stefano Ricci wrote:
>>> 2017-05-01 7:32 GMT+02:00 Michal Privoznik <mprivozn at redhat.com>:
>>>> On 04/30/2017 07:12 PM, Stefano Ricci wrote:
>>>>
>>>>>
>>>>> The version used for backtrace is 3.2.0, now I have also tried the
>>>>> current downloaded with git but the problem is always present.
>>>>> This is the current version log file, set as shown on the DebugLogs page:
>>>>>
>>>>> https://drive.google.com/open?id=0By9lwQyveHENdEt4aEtZcUV3ZEU
>>>>
>>>> Couple of my findings:
>>>>
>>>> 2017-04-30 16:19:34.894+0000: 870: debug : virDriverLoadModuleFile:49 : Load module file '/usr/lib/libvirt/storage-backend/libvirt_storage_backend_rbd.so'
>>>> 2017-04-30 16:19:35.324+0000: 870: debug : virDriverLoadModuleFunc:71 : Lookup function 'virStorageBackendRBDRegister'
>>>>
>>>> it takes nearly .5s to load libvirt_storage_backend_rbd.so
>>>>
>>>> But apart from that there is nothing unusual in the logs. So how do you observe the hang? How long it is anyway - assuming it goes away after some time. Or does it hang indefinitely?
>>>>
>>>> BTW: is this all the debug messages you have? Because in there, the last line is how libvirtd starts qemu-system-x86_64 in order to fetch its capabilities. I'd expect libvirt setting qmp_capabilities on the monitor at least.
>>>>
>>>> Michal
>>>
>>> Virtlib logs end in the way you see, only when i kill the qemu process
>>> then it starts logging and it is possible to connect remotely with
>>> virsh.
>>
>> I see. There's nothing suspicious in the logs. The fact that libvirt
>> waits for qemu suggests that qemu did not go daemon. I mean, we pass
>> -daemonize to qemu, but that doesn't work. I wonder if we cannot do what
>> we are doing usually when spawning qemu processes: fork() + exec()
>> instead of relying on -daemonize which is broken.
>>
>> BTW: you can verify that qemu did not deamonize itself by consulting the
>> libvirtd log:
>>
>> 2017-04-30 16:19:36.633+0000: 886: debug : virCommandRunAsync:2451 :
>> Command result 0, with PID 962
>>
>> This means, that PID 962 is qemu. However, when going daemon double fork
>> is needed, therefore 'pgrep qemu' should print different number than
>> 962. But I guess it doesn't, does it?
>>
>> Michal
> 
> Fixed, the problem was qemu with the device (I saw that in certain
> conditions there was segmentation fault)), I recompiled with the
> correct configuration and now everything works, thanks for the
> availability, patience shown.
> Thanks again.

You're very welcome. Thanks to this discussion happened on the list we
now have this information available for others. Should they ever run
into the same problem, they know how to fix it.

Michal




More information about the libvirt-users mailing list