[ https://issues.apache.org/jira/browse/CLOUDSTACK-9142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15262838#comment-15262838 ]
ASF subversion and git services commented on CLOUDSTACK-9142: ------------------------------------------------------------- Commit c03e359824327b56af6b1921155d8796d2958f9c in cloudstack's branch refs/heads/4.7 from [~williamstev...@gmail.com] [ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c03e359 ] Merge pull request #1348 from DaanHoogland/CLOUDSTACK-9142 CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe wayThe problem arises when the origin hypervisor has an ip addres that ends with 1, like '10.10.10.1' and the qemu VM description is containing an address that has that as part of its address, '10.10.10.100' for instance. now migrating to '10.10.10.10' will change both addresses in the xml description file for qemu. It is fixed and unit tests are added. I am not sure yet how to integration test this. Regression will probably work so creating a PR now. * pr/1348: CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way Signed-off-by: Will Stevens <williamstev...@gmail.com> > Migrate VM changes xmlDesc in an unsafe way > ------------------------------------------- > > Key: CLOUDSTACK-9142 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9142 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: KVM, Management Server > Affects Versions: 4.6.0, 4.7.0 > Reporter: David Amorim Faria > Assignee: Daan Hoogland > Priority: Critical > > This issue appears with commit > https://github.com/apache/cloudstack/commit/a709f34ff93579981afbd4df0f4334b61ada29a8 > where xmlDesc has some content replaced: {code} > xmlDesc = > dm.getXMLDesc(xmlFlag).replace(libvirtComputingResource.getPrivateIp(), > command.getDestinationIp()); > {code} > This line from LibvirtComputingResource.java was refactored into > LibvirtMigrateCommandWrapper.java in commit > https://github.com/apache/cloudstack/commit/28e55462f15bdd8699e97b668c4ffc01735a533d > Example, node1 is 10.0.0.1, node2 is 10.0.0.2, rbd mon_host is 10.0.0.13. > VM is running on kvm node1 and this happened when migrating a VM from node1 > to node2, where the kvm nodes and the RBD mon nodes (mon_host) use IP > addresses in the same range, and the mon_host has an ip address that > partially matches the ip address (string) of the first kvm node. > In the process list one can see that the mon_host changes from 10.0.0.13 to > 10.0.0.23 in the destination host, blocking the migration after a timeout due > to primary storage not being available. > {code} > root 25206 1.8 0.0 440184 17188 ? Sl 13:33 0:00 > /usr/libexec/qemu-kvm -name r-74-VM -S -machine > pc-i440fx-rhel7.0.0,accel=kvm,usb=off -cpu > host,+rdtscp,+pdpe1gb,+dca,+pcid,+pdcm,+xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pclmuldq,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme > -m 256 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid > 1a32b655-0acf-424b-8722-9e7f507a3070 -smbios type=1,manufacturer=Apache > Software Foundation,product=CloudStack KVM > Hypervisor,uuid=1a32b655-0acf-424b-8722-9e7f507a3070 -no-user-config > -nodefaults -chardev > socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-r-74-VM/monitor.sock,server,nowait > -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown > -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device > virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive > file=rbd:rbd/15ea00f9-e52e-43cf-9e5e-62188e9da5d2:id=cloudstack:key=XXXXXXXX==:auth_supported=cephx\;none:mon_host=10.0.0.23\:6789,if=none,id=drive-virtio-disk0,format=raw,serial=15ea00f9e52e43cf9e5e,cache=none > -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 > -drive > file=/usr/share/cloudstack-common/vms/systemvm.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw,cache=none > -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 > -netdev tap,fd=32,id=hostnet0,vhost=on,vhostfd=33 -device > virtio-net-pci,netdev=hostnet0,id=net0,mac=11:11:11:11:11:11,bus=pci.0,addr=0x3,rombar=0,romfile= > -netdev tap,fd=34,id=hostnet1,vhost=on,vhostfd=35 -device > virtio-net-pci,netdev=hostnet1,id=net1,mac=22:22:22:22:22:22,bus=pci.0,addr=0x4,rombar=0,romfile= > -netdev tap,fd=36,id=hostnet2,vhost=on,vhostfd=37 -device > virtio-net-pci,netdev=hostnet2,id=net2,mac=33:33:33:33:33:33,bus=pci.0,addr=0x5,rombar=0,romfile= > -chardev pty,id=charserial0 -device > isa-serial,chardev=charserial0,id=serial0 -chardev > socket,id=charchannel0,path=/var/lib/libvirt/qemu/r-74-VM.agent,server,nowait > -device > virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=r-74-VM.vport > -device usb-tablet,id=input0 -vnc 10.0.0.2:4,password -vga cirrus -incoming > tcp:[::]:49152 -msg timestamp=on > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)