On Fri, Mar 16, 2012 at 7:35 AM, Eric Blake <<a href="mailto:eblake@redhat.com">eblake@redhat.com</a>> wrote:<br>> On 03/15/2012 08:26 PM, Jesse Cook wrote:<br>>><br>>> v0.9.10 client did not want to play nicely with the v0.9.10 server via<br>
>> qemu+ssh.  I got frustrated and just tried running the test from a<br>>> client running an older version of libvirt.  When connecting to<br>>> v0.9.10, it behaved the same way the pre-patched did in my cover<br>
>> letter.  I don't have full test results because of the communication<br>>> errors I was getting. I'll try to either figure it out tomorrow or<br>>> just use the older version as the client (pre-patch and patch).<br>
><br>> Since qemu already uses rpc mechanism, I've found it easy to<br>> mix-and-match by doing this in two terminals both logged in as root, and<br>> both located in a libvirt.git checkout directory (if you don't mind<br>
> building as root; if you do mind building as root, then have three,<br>> where the third is a regular user running as non-root to do the builds):<br>><br>> setup:<br>> 1# git clone libvirt ...<br>> 1# cd libvirt<br>
> 1# ./autobuild.sh --system<br>> 1# apply patches I'm interested in testing<br>> 1# make<br>> 2# cd libvirt<br>><br>> old libvirtd server, old virsh client:<br>> 1# service libvirtd start<br>> 2# virsh ...<br>
> 1# service libvirtd stop<br>><br>> old libvirtd, new virsh<br>> 1# service libvirtd start<br>> 2# tools/virsh ...<br>> 1# service libvirtd stop<br>><br>> new libvirtd, old virsh<br>> 1# daemon/libvirtd<br>
> 2# virsh ...<br>> 1# Ctrl-C<br>><br>> new libvirtd, new virsh<br>> 1# daemon/libvirtd<br>> 2# tools/virsh ...<br>> 1# Ctrl-C<br>><br>> That gives me testing of all four protocol combinations, assuming that<br>
> the installed version is a current release without my patch, and my<br>> just-built in-tree version has my patch.  No need to complicate protocol<br>> testing with multi-host qemu+ssh:// stuff.<br>><br>> --<br>
> Eric Blake   <a href="mailto:eblake@redhat.com">eblake@redhat.com</a>    +1-919-301-3266<br>> Libvirt virtualization library <a href="http://libvirt.org">http://libvirt.org</a><br>><br><br>Eric,<br><br>Thanks.  v0.9.10 was giving me a lot of trouble, so I just compiled two versions of the test code in the cover letter.  One uses the patched libs and one the unchanged libs.<br>
<br>N.B. I compiled the patched version using the following change due to the issues with using 65536:<br><br> /* Upper limit on lists of storage pool names. */<br>-const REMOTE_STORAGE_POOL_NAME_LIST_MAX = 256;<br>+const REMOTE_STORAGE_POOL_NAME_LIST_MAX = 7084;<br>
<br>Results:<br><br>With the patched version of libvirt installed and unpatched libvirtd running:<br><br>for i in `ls -1 /etc/libvirt/storage/*`; do virsh pool-start $(basename $i .xml); done &>/dev/null<br>~/pool-test-unpatched<br>
Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>Before virConnectListStoragePools<br>libvir: Remote error : too many remote undefineds: 407 > 256<br>After virConnectListStoragePools<br>Active: -1<br>
Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Inactive: -1<br>~/pool-test-patched<br>Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>Before virConnectListStoragePools<br>
After virConnectListStoragePools<br>Active: 407<br>Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Inactive: -1<br>for i in `ls -1 /etc/libvirt/storage/*`; do virsh pool-destroy $(basename $i .xml); done &>/dev/null<br>
~/pool-test-unpatched<br>Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>Active: -1<br>Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Before virConnectListDefinedStoragePools<br>
libvir: Remote error : too many remote undefineds: 407 > 256<br>After virConnectListDefinedStoragePools<br>Inactive: -1<br>~/pool-test-patched<br>Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>
Active: -1<br>Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Before virConnectListDefinedStoragePools<br>After virConnectListDefinedStoragePools<br>Inactive: 407<br><br><br>With the unchanged version of libvirt installed and unpatched libvirtd running:<br>
<br>for i in `ls -1 /etc/libvirt/storage/*`; do virsh pool-start $(basename $i .xml); done &>/dev/null<br>~/pool-test-unpatched<br>Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>Before virConnectListStoragePools<br>
libvir: Remote error : too many remote undefineds: 407 > 256<br>After virConnectListStoragePools<br>Active: -1<br>Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Inactive: -1<br>
~/pool-test-patched<br>Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>Before virConnectListStoragePools<br>libvir: RPC error : internal error maxnames > REMOTE_STORAGE_POOL_NAME_LIST_MAX<br>
After virConnectListStoragePools<br>Active: -1<br>Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Inactive: -1<br>for i in `ls -1 /etc/libvirt/storage/*`; do virsh pool-destroy $(basename $i .xml); done &>/dev/null<br>
~/pool-test-unpatched<br>Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>Active: -1<br>Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Before virConnectListDefinedStoragePools<br>
libvir: Remote error : too many remote undefineds: 407 > 256<br>After virConnectListDefinedStoragePools<br>Inactive: -1<br>~/pool-test-patched<br>Before virConnectNumOfStoragePools<br>After virConnectNumOfStoragePools<br>
Active: -1<br>Before virConnectNumOfDefinedStoragePools<br>After virConnectNumOfDefinedStoragePools<br>Before virConnectListDefinedStoragePools<br>libvir: RPC error : internal error maxnames > REMOTE_STORAGE_POOL_NAME_LIST_MAX<br>
After virConnectListDefinedStoragePools<br>Inactive: -1<br><br>-- Jesse