ah.. sorry for the mistake.
I find that on the source libvirt will also verify emulator binary, thus
emulator must
also exist on src. because in qemuMigrationBegin method, it will
call qemuDomainDefCopy
and eventually validates emulator exists...
best,
Jiatong Shen
On Wed, Apr 27, 2022 at 4:03 PM Peter Krempa <pkrempa at redhat.com>
wrote:
> [re-adding libvirt-users list]
>
> Please always reply to the list so that the follow-up conversation is
> archived and delivered to all subscribers.
>
> On Wed, Apr 27, 2022 at 15:36:54 +0800, Jiatong Shen wrote:
> > Thank you for the feedback!
> >
> > Is it ok if the source node does not contain a emulator path used by
the
> > dest node? for example, on src emulator path is /a/b/c, but
> > on dest it is /a/b/d, and /a/b/d does not exist on src.
>
> You can change the emulator path arbitrarily. The only limitation is
> that the emulator you pick (the binary, not the path) must be able to
> run the VM, but that will be validated during the migration.
>
>
--
Best Regards,
Jiatong Shen
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://listman.redhat.com/archives/libvirt-users/attachments/20220427/a893e1ce/attachment-0001.htm>
-------------- next part --------------
(gdb) where
#0 virQEMUCapsNewForBinaryInternal (hostArch=VIR_ARCH_X86_64,
binary=0x7fffe800d530 "/usr/bin/sjt-test", libDir=0x7fff94021dd0
"/var/lib/libvirt/qemu", runUid=0, runGid=0, microcodeVersion=1,
kernelVersion=0x7fff9400a7c0 "4.15.0-112-generic #113-Ubuntu SMP Thu
Jul 9 23:41:39 UTC 2020", qmpOnly=false) at
../../src/qemu/qemu_capabilities.c:5262
#1 0x00007fffc3aacd95 in virQEMUCapsNewData (binary=<optimized out>,
privData=<optimized out>) at ../../src/qemu/qemu_capabilities.c:5340
#2 0x00007ffff737a6e7 in virFileCacheNewData (name=0x7fffe800d530
"/usr/bin/sjt-test", cache=0x7fff940286d0) at
../../src/util/virfilecache.c:223
#3 virFileCacheValidate (cache=cache at entry=0x7fff940286d0, name=name at
entry=0x7fffe800d530 "/usr/bin/sjt-test", data=data at
entry=0x7ffff0b47410) at ../../src/util/virfilecache.c:294
#4 0x00007ffff737ab37 in virFileCacheLookup (cache=0x7fff940286d0, name=name at
entry=0x7fffe800d530 "/usr/bin/sjt-test") at
../../src/util/virfilecache.c:327
#5 0x00007fffc3aad02e in virQEMUCapsCacheLookup (cache=<optimized out>,
binary=0x7fffe800d530 "/usr/bin/sjt-test") at
../../src/qemu/qemu_capabilities.c:5477
#6 0x00007fffc3acc677 in qemuDomainPostParseDataAlloc (def=<optimized
out>, caps=<optimized out>, parseFlags=<optimized out>,
opaque=<optimized out>, parseOpaque=0x7ffff0b474b0) at
../../src/qemu/qemu_domain.c:4623
#7 0x00007ffff73a65a9 in virDomainDefPostParseInternal (def=def at
entry=0x7fffe800cf20, caps=caps at entry=0x7fff94161560, parseFlags=parseFlags
at entry=1026, xmlopt=xmlopt at entry=0x7fff94157830,
parseOpaque=parseOpaque at entry=0x0, bootHash=bootHash at
entry=0x7fffe800d7e0) at ../../src/conf/domain_conf.c:5036
#8 0x00007ffff73bb6fd in virDomainDefParseXML (xml=xml at entry=0x7fffe800fcc0,
root=root at entry=0x7fffe8003c40, ctxt=ctxt at entry=0x7fffe8006950, caps=caps
at entry=0x7fff94161560, xmlopt=xmlopt at entry=0x7fff94157830,
parseOpaque=parseOpaque at entry=0x0, flags=1026) at
../../src/conf/domain_conf.c:19957
#9 0x00007ffff73bf11c in virDomainDefParseNode (xml=xml at
entry=0x7fffe800fcc0, root=0x7fffe8003c40, caps=caps at entry=0x7fff94161560,
xmlopt=xmlopt at entry=0x7fff94157830, parseOpaque=parseOpaque at entry=0x0,
flags=flags at entry=1026) at ../../src/conf/domain_conf.c:20144
#10 0x00007ffff73bf242 in virDomainDefParse (
xmlStr=0x7fffe8010630 "<domain type='kvm'>\n
<name>sjt-test</name>\n
<uuid>c7a5fdbd-cdaf-9455-926a-d65c16db1809</uuid>\n <memory
unit='KiB'>220160</memory>\n <currentMemory
unit='KiB'>219200</currentMemory>\n <vcpu
placemen"..., filename=filename at entry=0x0, caps=caps at
entry=0x7fff94161560, xmlopt=xmlopt at entry=0x7fff94157830,
parseOpaque=parseOpaque at entry=0x0, flags=flags at entry=1026) at
../../src/conf/domain_conf.c:20088
#11 0x00007ffff73bf293 in virDomainDefParseString (xmlStr=<optimized out>,
caps=caps at entry=0x7fff94161560, xmlopt=xmlopt at entry=0x7fff94157830,
parseOpaque=parseOpaque at entry=0x0, flags=flags at entry=1026)
at ../../src/conf/domain_conf.c:20104
#12 0x00007ffff73bf2f2 in virDomainDefCopy (src=src at entry=0x7fffe8010f20,
caps=caps at entry=0x7fff94161560, xmlopt=0x7fff94157830,
parseOpaque=parseOpaque at entry=0x0, migratable=<optimized out>)
at ../../src/conf/domain_conf.c:27416
#13 0x00007fffc3ad7bca in qemuDomainDefFormatBufInternal (driver=driver at
entry=0x7fff94034de0, def=def at entry=0x7fffe8010f20, origCPU=origCPU at
entry=0x0, flags=flags at entry=9, buf=buf at entry=0x7ffff0b47870)
at ../../src/qemu/qemu_domain.c:5246
#14 0x00007fffc3ad815a in qemuDomainDefFormatXMLInternal (driver=driver at
entry=0x7fff94034de0, def=def at entry=0x7fffe8010f20, origCPU=origCPU at
entry=0x0, flags=flags at entry=9) at ../../src/qemu/qemu_domain.c:5432
#15 0x00007fffc3ad8196 in qemuDomainDefFormatXML (driver=driver at
entry=0x7fff94034de0, def=def at entry=0x7fffe8010f20, flags=flags at entry=9)
at ../../src/qemu/qemu_domain.c:5444
#16 0x00007fffc3ad81bd in qemuDomainDefCopy (driver=driver at
entry=0x7fff94034de0, src=src at entry=0x7fffe8010f20, flags=flags at entry=9)
at ../../src/qemu/qemu_domain.c:5218
#17 0x00007fffc3ad8345 in qemuDomainCheckABIStability (driver=driver at
entry=0x7fff94034de0, vm=vm at entry=0x7fff940ebbd0, dst=dst at
entry=0x7fffe8010f20) at ../../src/qemu/qemu_domain.c:7098
#18 0x00007fffc3b09066 in qemuMigrationBeginPhase (driver=driver at
entry=0x7fff94034de0, vm=<optimized out>,
xmlin=xmlin at entry=0x7fffe80059a0 "<domain
type='kvm'>\n <name>sjt-test</name>\n
<uuid>c7a5fdbd-cdaf-9455-926a-d65c16db1809</uuid>\n <memory
unit='KiB'>220160</memory>\n <currentMemory
unit='KiB'>219200</currentMemory>\n <vcpu
placemen"..., dname=dname at entry=0x0, cookieout=cookieout at
entry=0x7ffff0b47ba8, cookieoutlen=cookieoutlen at entry=0x7ffff0b47b9c,
nmigrate_disks=0, migrate_disks=0x0, flags=328)
at ../../src/qemu/qemu_migration.c:2120
#19 0x00007fffc3b09911 in qemuMigrationBegin (conn=0x7fffd4000d50,
vm=<optimized out>,
xmlin=0x7fffe80059a0 "<domain type='kvm'>\n
<name>sjt-test</name>\n
<uuid>c7a5fdbd-cdaf-9455-926a-d65c16db1809</uuid>\n <memory
unit='KiB'>220160</memory>\n <currentMemory
unit='KiB'>219200</currentMemory>\n <vcpu
placemen"..., dname=0x0, cookieout=cookieout at entry=0x7ffff0b47ba8,
cookieoutlen=cookieoutlen at entry=0x7ffff0b47b9c, nmigrate_disks=0,
migrate_disks=0x0, flags=328) at ../../src/qemu/qemu_migration.c:2177
#20 0x00007fffc3b41280 in qemuDomainMigrateBegin3Params (domain=0x7fffe8001e60,
params=<optimized out>, nparams=2, cookieout=0x7ffff0b47ba8,
cookieoutlen=0x7ffff0b47b9c, flags=<optimized out>)
at ../../src/qemu/qemu_driver.c:12389
#21 0x00007ffff741abe9 in virDomainMigrateBegin3Params (domain=domain at
entry=0x7fffe8001e60, params=<optimized out>, nparams=2,
cookieout=cookieout at entry=0x7ffff0b47ba8, cookieoutlen=cookieoutlen at
entry=0x7ffff0b47b9c,
flags=328) at ../../src/libvirt-domain.c:4832
#22 0x000055555557cec8 in remoteDispatchDomainMigrateBegin3Params
(server=0x55555581ef70, msg=0x5555558666b0, ret=0x7fffe8001a30,
args=0x7fffe8006910, rerr=0x7ffff0b47ca0, client=<optimized out>)
at ../../daemon/remote.c:5212
#23 remoteDispatchDomainMigrateBegin3ParamsHelper (server=0x55555581ef70,
client=<optimized out>, msg=0x5555558666b0, rerr=0x7ffff0b47ca0,
args=0x7fffe8006910, ret=0x7fffe8001a30) at ../../daemon/remote_dispatch.h:7421
#24 0x00007ffff748639c in virNetServerProgramDispatchCall (msg=0x5555558666b0,
client=0x555555864260, server=0x55555581ef70, prog=0x55555583e7e0) at
../../src/rpc/virnetserverprogram.c:436
#25 virNetServerProgramDispatch (prog=0x55555583e7e0, server=server at
entry=0x55555581ef70, client=0x555555864260, msg=0x5555558666b0) at
../../src/rpc/virnetserverprogram.c:307
---Type <return> to continue, or q <return> to quit---
#26 0x00005555555a8088 in virNetServerProcessMsg (msg=<optimized out>,
prog=<optimized out>, client=<optimized out>, srv=0x55555581ef70) at
../../src/rpc/virnetserver.c:148
#27 virNetServerHandleJob (jobOpaque=<optimized out>,
opaque=0x55555581ef70) at ../../src/rpc/virnetserver.c:169
#28 0x00007ffff736dba1 in virThreadPoolWorker (opaque=opaque at
entry=0x55555580fbd0) at ../../src/util/virthreadpool.c:167
#29 0x00007ffff736cf18 in virThreadHelper (data=<optimized out>) at
../../src/util/virthread.c:206
#30 0x00007ffff6e4d6db in start_thread (arg=0x7ffff0b48700) at
pthread_create.c:463
#31 0x00007ffff6b7661f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95