-
Bug
-
Resolution: Done
-
Normal
-
None
-
rhel-9.3.0
-
Normal
-
sst_virtualization
-
ssg_virtualization
-
None
-
False
-
-
None
-
None
-
None
-
Automated
-
If docs needed, set a value
-
-
Unspecified
-
None
Description of problem:
postcopy preempt can't recover after handle network failure
Version-Release number of selected component (if applicable):
RHEL 9.3.0(kernel-5.14.0-316.el9.x86_64 && qemu-kvm-8.0.0-4.el9.x86_64)
How reproducible:
100%
Steps to Reproduce:
1.Boot a VM on src host with qemu cmd[1], and run stressapptest in VM:
- stressapptest -M 10000 -s 10000000
2.Boot a VM on dst host with appending '-incoming defer'
3.Enable postcopy and postcopy-preempt capabilities both on src&dst host, and set max-postcopy-bandwidth to 5M on src host
4.Migrate guest from src to dst host, during migration, change migration into postcopy phase
(dst host) # {"execute":"migrate-incoming","arguments":{"uri":"tcp:[::]:1234"}}
(src host) # {"execute":"migrate", "arguments":Unknown macro: {"uri"}}
5.During postcopy phase, down migration network on dst host
- ip -f inet addr delete 192.168.130.26/24 dev ibs2f0
6. Recover network on dst host - ifconfig ibs2f0 192.168.130.26 netmask 255.255.255.0
7.Recover postcopy migration
(dst host) # {"exec-oob":"migrate-recover", "arguments":Unknown macro: {"uri"}}
(src host) # {"execute":"migrate", "arguments":{"uri":"tcp:192.168.130.26:1234", "resume":true}}
Actual results:
After step 7, postcopy-preempt would recover to be postcopy-active for a moment (maybe no more than 1 minute), then automatically change to be postcopy-paused status.
I tried to recover migration again, can't recover successfully.
Expected results:
Postcopy-preempt recover after handle network failure.
Additional info:
- external trackers