Hello Michal,

I am using libvirt 1.1.3 and perl-Sys-Virt 1.1.3 and perl-5.16 on Fedora 19 x86_64

The zombie process appears after open libvirt connection with qemu-tls, and perl module is binding for libvirt library XS.

Here is my running example with zombie process:

$ perl test-chldhandle-bug-fixed.pl & sleep 15 && echo && ps axf | grep perl && echo
[2] 12427
init... pid=12427
while...
fork 1
end... pid=12430
receive chld
fork 2
end... pid=12431
receive chld
2014-03-19 11:06:38.712+0000: 12427: info : libvirt version: 1.1.3.1, package: 2.fc19 (Unknown, 2014-03-17-15:02:00, cmar-laptop.lan)
2014-03-19 11:06:38.712+0000: 12427: warning : virNetTLSContextCheckCertificate:1140 : Certificate check failed Certificate [session] owner does not match the hostname 10.10.4.249
connection open
fork 3
end... pid=12432
fork 4
end... pid=12440

12427 pts/2    S      0:00  |   \_ perl test-chldhandle-bug-fixed.pl
12432 pts/2    Z      0:00  |   |   \_ [perl] <defunct>
12440 pts/2    Z      0:00  |   |   \_ [perl] <defunct>
12442 pts/2    S+     0:00  |   \_ grep --color=auto perl


Regards,

-- 
Carlos Rodrigues 

Engenheiro de Software Sénior

Eurotux Informática, S.A. | www.eurotux.com

(t) +351 253 680 300 (m) +351 911 926 110


On Seg, 2014-03-17 at 13:37 +0100, Michal Privoznik wrote:
On 17.03.2014 12:13, Carlos Rodrigues wrote:
> Hell Michal,
>
> Thank you for your answer, but this doesn't fix my problem.
>
> Run your fixed script and we get the same behavior:
>
> $ perl test-chldhandle-bug-fixed.pl
> init... pid=29713
> while...
> fork 1
> end... pid=29716
> receive chld
> fork 2
> end... pid=29717
> receive chld
> 2014-03-17 11:10:37.234+0000: 29713: info : libvirt version: 1.0.5.7, package: 2.fc19 (Fedora Project, 2013-11-17-23:21:57, buildvm-18.phx2.fedoraproject.org)
> 2014-03-17 11:10:37.234+0000: 29713: warning : virNetTLSContextCheckCertificate:1099 : Certificate check failed Certificate [session] owner does not match the hostname 10.10.4.249
> connection open
> fork 3
> end... pid=29827
> fork 4
> end... pid=29930
> go next...
>
>

I'm not a perl expert, but I don't think it's a libvirt bug anyhow. 
Moreover, I don't see any zombies:

$ perl test-chldhandle-bug-fixed.pl & sleep 5 && echo && ps axf | grep 
perl && echo
[1] 11239
init... pid=11239
while...
fork 1
end... pid=11241
receive chld
fork 2
end... pid=11242
receive chld
connection open

11239 pts/18   S      0:00  |   \_ perl test-chldhandle-bug-fixed.pl
11245 pts/18   S+     0:00  |   \_ grep --colour=auto perl

fork 3
end... pid=11246
receive chld
fork 4
end... pid=11247
receive chld
go next...

btw: with older version I'm seeing this:

11399 pts/18   S      0:00  |   \_ perl test-chldhandle-bug.pl
11401 pts/18   Z      0:00  |   |   \_ [perl] <defunct>
11402 pts/18   Z      0:00  |   |   \_ [perl] <defunct>
11405 pts/18   S+     0:00  |   \_ grep --colour=auto perl

What zombies are you seeing? Perl ones or libvirt or ..,?

Michal