aboutgitcodebugslistschat
path: root/test
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2025-07-17 10:38:17 +0200
committerStefano Brivio <sbrivio@redhat.com>2025-07-29 17:57:01 +0200
commita8782865c342eb2682cca292d5bf92b567344351 (patch)
tree6a08c05a86e3d00d2f5369b4ec3718452f684ecd /test
parent79de81ef6fb04327f76faf4f17ce1fcb298275f5 (diff)
downloadpasst-a8782865c342eb2682cca292d5bf92b567344351.tar
passt-a8782865c342eb2682cca292d5bf92b567344351.tar.gz
passt-a8782865c342eb2682cca292d5bf92b567344351.tar.bz2
passt-a8782865c342eb2682cca292d5bf92b567344351.tar.lz
passt-a8782865c342eb2682cca292d5bf92b567344351.tar.xz
passt-a8782865c342eb2682cca292d5bf92b567344351.tar.zst
passt-a8782865c342eb2682cca292d5bf92b567344351.zip
treewide: By default, don't quit source after migration, keep sockets open
We are hitting an issue in the KubeVirt integration where some data is still sent to the source instance even after migration is complete. As we exit, the kernel closes our sockets and resets connections. The resulting RST segments are sent to peers, effectively terminating connections that were meanwhile migrated. At the moment, this is not done intentionally, but in the future KubeVirt might enable OVN-Kubernetes features where source and destination nodes are explicitly getting mirrored traffic for a while, in order to decrease migration downtime. By default, don't quit after migration is completed on the source: the previous behaviour can be enabled with the new, but deprecated, --migrate-exit option. After migration (as source), the -1 / --one-off option has no effect. Also, by default, keep migrated TCP sockets open (in repair mode) as long as we're running, and ignore events on any epoll descriptor representing data channels. The previous behaviour can be enabled with the new, equally deprecated, --migrate-no-linger option. By keeping sockets open, and not exiting, we prevent the kernel running on the source node to send out RST segments if further data reaches us. Reported-by: Nir Dothan <ndothan@redhat.com> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'test')
-rwxr-xr-xtest/lib/setup4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/lib/setup b/test/lib/setup
index 575bc21..5994598 100755
--- a/test/lib/setup
+++ b/test/lib/setup
@@ -350,7 +350,7 @@ setup_migrate() {
sleep 1
- __opts="--vhost-user"
+ __opts="--vhost-user --migrate-exit --migrate-no-linger"
[ ${PCAP} -eq 1 ] && __opts="${__opts} -p ${LOGDIR}/passt_1.pcap"
[ ${DEBUG} -eq 1 ] && __opts="${__opts} -d"
[ ${TRACE} -eq 1 ] && __opts="${__opts} --trace"
@@ -360,7 +360,7 @@ setup_migrate() {
context_run_bg passt_repair_1 "./passt-repair ${STATESETUP}/passt_1.socket.repair"
- __opts="--vhost-user"
+ __opts="--vhost-user --migrate-exit --migrate-no-linger"
[ ${PCAP} -eq 1 ] && __opts="${__opts} -p ${LOGDIR}/passt_2.pcap"
[ ${DEBUG} -eq 1 ] && __opts="${__opts} -d"
[ ${TRACE} -eq 1 ] && __opts="${__opts} --trace"