[libvirt PATCH 1/4] qemu: virtiofs: kill the whole process group when stopping

Ján Tomko jtomko at redhat.com
Mon Mar 23 17:07:04 UTC 2020


On a Monday in 2020, Michal Prívozník wrote:
>On 23. 3. 2020 17:10, Ján Tomko wrote:
>> After startup, virtiofds forks itself to drop its privileges.
>> Kill the whole process group instead of just the parent.
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=1808697
>>
>> Signed-off-by: Ján Tomko <jtomko at redhat.com>
>> Reported-by: Andrew Jones <drjones at redhat.com>
>> ---
>>  src/qemu/qemu_virtiofs.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/qemu/qemu_virtiofs.c b/src/qemu/qemu_virtiofs.c
>> index d579ce1d33..d6159206eb 100644
>> --- a/src/qemu/qemu_virtiofs.c
>> +++ b/src/qemu/qemu_virtiofs.c
>> @@ -285,7 +285,7 @@ qemuVirtioFSStop(virQEMUDriverPtr driver G_GNUC_UNUSED,
>>
>>      rc = virPidFileReadPathIfAlive(pidfile, &pid, NULL);
>>      if (rc >= 0 && pid != (pid_t) -1)
>> -        virProcessKillPainfully(pid, true);
>> +        virProcessKillPainfully(-pid, true);
>>
>>      if (unlink(pidfile) < 0 &&
>>          errno != ENOENT) {
>>
>
>Ah, this means that other places are affected too (e.g. qemu-pr-helper,
>which shouldn't fork(), but libvirt can just use kill(-pid) to be sure).
>

I just realized that virProcessKillPainfully goes down all the way to
virProcessKill which ignores pids <= 1, so this patch is not doing what
it should.

Jano

>But since I've posted a patch that will remove these lines and replace
>them with a simple virPidFileForceCleanupPath(), we can do that in one
>place for the benefit of others.
>
>Michal
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200323/5e0da297/attachment-0001.sig>


More information about the libvir-list mailing list