Comment 4 for bug 1847361

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Using proposed and UCA I did some experiments in Bionic:

qemu-block-extra:
     1:3.1+dfsg-2ubuntu3.2~cloud0 500
        500 http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/stein/main amd64
     1:2.11+dfsg-1ubuntu7.19 500
        500 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     1:2.11+dfsg-1ubuntu7.18 500
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages

I should be able to switch between those.

Also there is a trick to do all this without a complex ceph/issci setup.

cat > curldisk.xml << EOF
  <disk type='network' device='disk'>
    <driver name='qemu' type='raw'/>
    <source protocol="http" name="ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/mini.iso">
            <host name="archive.ubuntu.com" port="80"/>
    </source>
    <target dev='vdc' bus='virtio'/>
    <readonly/>
  </disk>
EOF

$ virsh attach-device lateload curldisk.xml

Among many (many!) dependent libs from the system this also will late-load the qemu curl .so file.

root@b:~# diff libsloaded.pre libsloaded.post
4a5,29
> qemu-syst 18362 libvirt-qemu mem REG 0,64 26936 2603 /lib/x86_64-linux-gnu/libnss_dns-2.27.so
> qemu-syst 18362 libvirt-qemu mem REG 0,64 39208 2529 /lib/x86_64-linux-gnu/libcrypt-2.27.so
> qemu-syst 18362 libvirt-qemu mem REG 0,64 1082648 10066 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
> qemu-syst 18362 libvirt-qemu mem REG 0,64 300888 3424 /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 60400 3418 /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 165880 10090 /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 88680 10058 /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 217560 3416 /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 661696 9860 /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 573464 9987 /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 35360 3420 /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 14256 2573 /lib/x86_64-linux-gnu/libkeyutils.so.1.5
> qemu-syst 18362 libvirt-qemu mem REG 0,64 265712 3410 /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 43616 9991 /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1
> qemu-syst 18362 libvirt-qemu mem REG 0,64 14248 308068 /lib/x86_64-linux-gnu/libcom_err.so.2.1
> qemu-syst 18362 libvirt-qemu mem REG 0,64 199104 9985 /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1
> qemu-syst 18362 libvirt-qemu mem REG 0,64 877056 9989 /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3
> qemu-syst 18362 libvirt-qemu mem REG 0,64 55544 173467 /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.8
> qemu-syst 18362 libvirt-qemu mem REG 0,64 327024 172527 /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.8
> qemu-syst 18362 libvirt-qemu mem REG 0,64 305456 3412 /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
> qemu-syst 18362 libvirt-qemu mem REG 0,64 55136 10054 /usr/lib/x86_64-linux-gnu/libpsl.so.5.2.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 113584 10059 /usr/lib/x86_64-linux-gnu/librtmp.so.1
> qemu-syst 18362 libvirt-qemu mem REG 0,64 153352 10024 /usr/lib/x86_64-linux-gnu/libnghttp2.so.14.15.2
> qemu-syst 18362 libvirt-qemu mem REG 0,64 510408 208529 /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.5.0
> qemu-syst 18362 libvirt-qemu mem REG 0,64 25600 308756 /usr/lib/x86_64-linux-gnu/qemu/block-curl.so
143a169,177
> qemu-syst 18362 libvirt-qemu 30u IPv4 9576974 0t0 TCP b.lxd:47940->urayuli.canonical.com:http (ESTABLISHED)
> qemu-syst 18362 libvirt-qemu 31u a_inode 0,13 0 10884 [eventfd]
> qemu-syst 18362 libvirt-qemu 32u a_inode 0,13 0 10884 [eventfd]
> qemu-syst 18362 libvirt-qemu 33u IPv4 9575416 0t0 TCP b.lxd:47942->urayuli.canonical.com:http (ESTABLISHED)
> qemu-syst 18362 libvirt-qemu 35u IPv4 9576979 0t0 TCP b.lxd:47948->urayuli.canonical.com:http (ESTABLISHED)
> qemu-syst 18362 libvirt-qemu 36u IPv4 9575825 0t0 TCP b.lxd:47950->urayuli.canonical.com:http (ESTABLISHED)
> qemu-syst 18362 libvirt-qemu 37u IPv4 9575418 0t0 TCP b.lxd:47952->urayuli.canonical.com:http (ESTABLISHED)
> qemu-syst 18362 libvirt-qemu 38u IPv4 9575826 0t0 TCP b.lxd:47954->urayuli.canonical.com:http (ESTABLISHED)
> qemu-syst 18362 libvirt-qemu 39u IPv4 9577729 0t0 TCP b.lxd:47956->urayuli.canonical.com:http (ESTABLISHED)

So in theory that should be a test setup for the reported case.

P.S. I'm not even that opposed to maybe version those packages only carrying .so libs - but dependency and "when to uninstall" logic might end up complex still.