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