Benjamin Smith
2022-Mar-24 20:48 UTC
PHP Warning: libvirt_domain_new(): Cannot get installation XML
Despite great success at using php-libvirt with other functions, I have been entirely unsuccessful in getting it to create a new domain/machine. Any time I do, and with virtually anything I try, I get the above error message. Running PHP 7.4 (remi) on otherwise stock AlmaLinux. *[root at sb4 html]# cat /etc/redhat-release AlmaLinux release 8.5 (Arctic Sphynx* *[root at sb4 html]# rpm -qa php php-fpm php-libvirt nginxphp-7.4.28-1.el8.remi.x86_64nginx-1.14.1-9.module_el8.3.0+2165+af250afe.alma.x86_64php-fpm-7.4.28-1.el8.remi.x86_64php-libvirt-0.5.5-1.el8.remi.7.4.x86_6412 XEON E312xx cores, 24 w/HT, 192GB RAM, etc. * When I run it, I find in php-fpm www.error-log: *[24-Mar-2022 20:05:51 UTC] PHP Warning: libvirt_domain_new(): Cannot get installation XML in /var/www/html/manage.php on line 190* Matching message onscreen: *Warning: libvirt_domain_new(): Cannot get installation XML in /var/www/html/manage.php on line 191* Here's the offending code: $networks = [ *'mac'* => '52:54:00:06:a7:df', *'network'* => 'default', *'model'* => *'e1000'*, ]; $disks = [ *'path'* => *"/var/lib/libvirt/images/myvm.qcow2"*, *'driver'* => *'qcow2'*, *'bus'* => *'ide'*, *'dev'* => *'hda'*, *'size'* => *'40G'*, *'flags'* => null, ]; error_reporting(-1); $result = libvirt_domain_new( $conn, 'myvm',* // name of the new domain* null,* // optional architecture string, can be NULL to get default (or false)* 2048,* // number of megabytes of RAM to be allocated for domain* 8192,* // maximum number of megabytes of RAM to be allocated for domain* 2,* // number of VCPUs to be allocated to domain* *'/var/www/html/AlmaLinux-8.4-x86_64-dvd.iso'*,* // installation ISO image for*$ $disks,* // array of disk devices for domain* $networks, null ); I've tried various values for $disks and $networks, setting error reporting to -1 (display anything and everything), journalctl -f on both the webserver and the virt host, etc but was never able to see any error other than this one. I've also been looking in the source code file for anything obvious, and I've been utterly unsuccessful in changing the error message. For example, inserting an invalid path for the ISO image doesn't result in an error message that it *looks* like it should be throwing errors about invalid ISO image. In fact, I've even tried passing ALL NULL/EMPTY VALUES and with the exception of the $conn connection variable, I only get this "Cannot get installation XML" error message: $result = libvirt_domain_new( $conn, null, null, null, null, null, null, [], [] ); Shouldn't I at least be seeing a message like "Name is 'myvm', memMB is 2048, maxmemMB is 8192" ? https://github.com/php/pecl-virtualization-libvirt/blob/master/src/libvirt-php.c -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20220324/b1155453/attachment-0001.htm>
Michal Prívozník
2022-Mar-29 06:54 UTC
PHP Warning: libvirt_domain_new(): Cannot get installation XML
On 3/24/22 21:48, Benjamin Smith wrote:> Despite great success at using php-libvirt with other functions, I have > been entirely unsuccessful in getting it to create a new domain/machine. > Any time I do, and with virtually anything I try, I get the above error > message.? > > Running PHP 7.4 (remi) on otherwise stock AlmaLinux. > *[root at sb4 html]# cat /etc/redhat-release > AlmaLinux release 8.5 (Arctic Sphynx > * > > *[root at sb4 html]# rpm -qa php php-fpm php-libvirt nginx > php-7.4.28-1.el8.remi.x86_64 > nginx-1.14.1-9.module_el8.3.0+2165+af250afe.alma.x86_64 > php-fpm-7.4.28-1.el8.remi.x86_64 > php-libvirt-0.5.5-1.el8.remi.7.4.x86_64 > 12 XEON?E312xx cores, 24 w/HT, 192GB RAM, etc.?* >Hey, so libvirt-php is not really that well maintained. The original author moved to different project and I used to do at least very basic maintenance but also got side tracked too often. Looking into the code, which lives at: https://gitlab.com/libvirt/libvirt-php it's the installation_get_xml() function that's failing: https://gitlab.com/libvirt/libvirt-php/-/blob/master/src/libvirt-php.c#L2353 and honestly, I don't have any clue why. Do you think you could attach a debugger and step through the function to find out which line is failing? Michal