On Tue, Apr 14, 2009 at 03:56:28PM +0200, Radek Hladik wrote: > > When running from command line everything seems to work fine. This is of > course singlethreaded and potential resource leaks need not to cause a > problem. However when running from webserver, the result is much more > interesting. When connecting to qemu:///system (via local socket) using > <? > libvirt_connect($uri,true); > ?> > I can crash the libvirt daemon after cca 10 page reloads - sometimes > with message > Apr 13 15:32:44 kvmtest kernel: libvirtd[8263]: segfault at 4 ip > 00000039d7223fc0 sp 00007fa6fbc29a88 error 6 in > libdbus-1.so.3.4.0[39d7200000+3c000] > in system log, sometimes without any message. Crashing the libvirtd daemon is not your fault ! It is supposed to be completely robust against whatever bad stuff the client may throw at it. So even if the client has a bug, then it shouldn't crash the daemon. If possible it'd be helpful if you can get a stack trace from the daemon. You can do this by stopping the demon '/etc/init.d/libvirtd stop' and then running it under GDB directly 'gdb /usr/sbin/libvirtd' make sure you have libvirt-debuginfo RPM installed if using Fedora, or have built with '-g' debug option if built manually. > When connecting to qemu+tcp:///system using credentials (explained later): > <? > libvirt_connect($uri,true,Array(VIR_CRED_AUTHNAME=>"fred",VIR_CRED_PASSPHRASE=>"fred")); > ?> > > It works but httpd processes open a lot pipes and after a few hours with > page refreshing every 10 sec I even ran into error: > [Mon Apr 13 02:40:26 2009] [error] [client 10.38.25.152] PHP Warning: > libvirt_connect() unable to make pipe: Too many open files This is interesting. It suggests that the virConnectPtr object you have created is not being relased. Each object will require at least 2 file descriptors, so if they're not released, then either the libvirtd daemon, or the PHP client, or the OS as a whole will run out of file descriptors and start showing this error message. > And if you are still reading then I can point you to > http://phplibvirt.cybersales.cz/ where you can download the source code > and browse the documentation - you can find there list of implemented > functions and brief instructions how to install the extension. But be > warned it really can crash your libvirt and maybe apache! For > completeness: I use Fedora 10 with some rawhide updates: > httpd-2.2.11-6.x86_64 > php-5.2.9-1.fc11.x86_64 > php-devel-5.2.9-1.fc11.x86_64 > libvirt-0.6.0-2.fc11.x86_64 > qemu-0.9.1-12.fc11.x86_64 > libvirt-devel-0.6.0-2.fc11.x86_64 I'd recommend updating to the latest libvirt 0.6.2 release that should be available in rawhide now. It fixed quite a few crashes & leaks, which you may be unlucky enough to be hitting Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list