Star
0
Fork
5
代码
介绍
代码
Issues
1
Pull Requests
2
流水线
Actions
讨论
Wiki
项目成员
342
分析
项目设置
Star
0
Fork
5
of-dev/v1.7.1
kubevirt
/
pkg
/
virt-handler
下载当前目录
A
Alex Kalenyuk
Fixed a bug in decentralized live migration where
8f12bdc1
创建于
2月2日
历史提交
文件
最后提交记录
最后更新时间
cache
virt-handler: Fix Potenial panic Race condition: CloseLauncherClient can be called from multiple places simultaneously during VMI cleanup: 1. migration-target.go:404 - deferred in finalCleanup() 2. migration-target.go:508 - when VMI becomes final during execute() 3. vm.go:1530 - from main VM controller processVmCleanup Since those happen in different go routines, and the code is not thread safe, a panic occurs. VirtualMachineController.processVmCleanup finished, and closed the channel DomainPipeStopChan. {"component":"virt-handler","controller":"vm","kind":"Domain","level":"info","msg":"Removing domain from cache during final cleanup","name":"testvmi-8z88p","namespace":"kubevirt-test-alternative3","pos":"vm.go:1537","timestamp":"2025-10-30T18:42:46.822834Z","uid":""} MigrationTargetController.execute() seeing VMI in final state and calls
CloseLauncherClient
again E1030 18:42:46.823075 8385 chan.go:422] "Observed a panic" panic="close of closed channel" panicGoValue="\"close of closed channel\"" stacktrace=< goroutine 326 [running]: kubevirt.io/kubevirt/vendor/k8s.io/apimachinery/pkg/util/runtime.logPanic({0x2c53810, 0xc003f1d8f0}, {0x240dd60, 0x2c1a240}) vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:132 +0xbc kubevirt.io/kubevirt/vendor/k8s.io/apimachinery/pkg/util/runtime.handleCrash({0x2c53cf8, 0xc00039e540}, {0x240dd60, 0x2c1a240}, {0x0, 0x0, 0xc002407730?}) vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:107 +0x116 kubevirt.io/kubevirt/vendor/k8s.io/apimachinery/pkg/util/runtime.HandleCrashWithContext({0x2c53cf8, 0xc00039e540}, {0x0, 0x0, 0x0}) vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:78 +0x5a panic({0x240dd60?, 0x2c1a240?}) GOROOT/src/runtime/panic.go:792 +0x132 kubevirt.io/kubevirt/pkg/virt-handler/launcher-clients.(*launcherClientsManager).CloseLauncherClient(0xc00028a640, 0xc0046ff208) pkg/virt-handler/launcher-clients/launcher-clients.go:143 +0x69 kubevirt.io/kubevirt/pkg/virt-handler.(*MigrationTargetController).execute(0xc0002a0460, {0xc004b8d7a0, 0x28}) pkg/virt-handler/migration-target.go:508 +0x28e Fix it by making sure
CloseLauncherClient
is thread safe (by protecting it with
sync.Once
)
https://prow.ci.kubevirt.io/view/gs/kubevirt-prow/pr-logs/pull/kubevirt_kubevirt/15983/pull-kubevirt-e2e-k8s-1.34-sig-compute-migrations/1983892566344470528
Assisted-by: Cursor Signed-off-by: Or Shoval <oshoval@redhat.com>
7 个月前
cgroup
add vsock to device rule when mounting hotpluggable volume in cgroup utils Signed-off-by: Woojoong Kim <woojoongkim@microsoft.com>
4 个月前
cmd-client
Gazelle: Remove exclude for vendored grpc Includes generated BUILD files Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
8 个月前
container-disk
hack: Run bazel-race Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
8 个月前
device-manager
Bazel: Remove google.golang.org/grpc import Includes re-generation of BUILD files to include vendor import. Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
8 个月前
dmetrics-manager
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
filewatcher
fix(virt-handler): Correctly set up test suites Correctly set up the test suites for filewatcher and multipath-monitor, so failing tests are listed in the created test reports. Signed-off-by: Felix Matouschek <fmatouschek@redhat.com>
8 个月前
heartbeat
hack: Run bazel-race Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
8 个月前
hotplug-disk
hack: Run bazel-race Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
8 个月前
isolation
handler, detector: Cosmetic rename vm to vmi The variable was mistakenly called vm when it in fact respresents the vmi. Signed-off-by: Nir Dothan <ndothan@redhat.com>
7 个月前
ksm
ksm: simplify logic With the introduction of the informer/store we can simplify the ksm loop logic. The main idea of conditional looping was to reduce the GET api calls. Since now the usage of the store solved this issue, we can simply loop every 3 minutes and check the node/ksm config. With this, we can avoid being fed by the node update informer. Signed-off-by: fossedihelm <ffossemo@redhat.com>
6 个月前
launcher-clients
virt-handler: Fix Potenial panic Race condition: CloseLauncherClient can be called from multiple places simultaneously during VMI cleanup: 1. migration-target.go:404 - deferred in finalCleanup() 2. migration-target.go:508 - when VMI becomes final during execute() 3. vm.go:1530 - from main VM controller processVmCleanup Since those happen in different go routines, and the code is not thread safe, a panic occurs. VirtualMachineController.processVmCleanup finished, and closed the channel DomainPipeStopChan. {"component":"virt-handler","controller":"vm","kind":"Domain","level":"info","msg":"Removing domain from cache during final cleanup","name":"testvmi-8z88p","namespace":"kubevirt-test-alternative3","pos":"vm.go:1537","timestamp":"2025-10-30T18:42:46.822834Z","uid":""} MigrationTargetController.execute() seeing VMI in final state and calls
CloseLauncherClient
again E1030 18:42:46.823075 8385 chan.go:422] "Observed a panic" panic="close of closed channel" panicGoValue="\"close of closed channel\"" stacktrace=< goroutine 326 [running]: kubevirt.io/kubevirt/vendor/k8s.io/apimachinery/pkg/util/runtime.logPanic({0x2c53810, 0xc003f1d8f0}, {0x240dd60, 0x2c1a240}) vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:132 +0xbc kubevirt.io/kubevirt/vendor/k8s.io/apimachinery/pkg/util/runtime.handleCrash({0x2c53cf8, 0xc00039e540}, {0x240dd60, 0x2c1a240}, {0x0, 0x0, 0xc002407730?}) vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:107 +0x116 kubevirt.io/kubevirt/vendor/k8s.io/apimachinery/pkg/util/runtime.HandleCrashWithContext({0x2c53cf8, 0xc00039e540}, {0x0, 0x0, 0x0}) vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:78 +0x5a panic({0x240dd60?, 0x2c1a240?}) GOROOT/src/runtime/panic.go:792 +0x132 kubevirt.io/kubevirt/pkg/virt-handler/launcher-clients.(*launcherClientsManager).CloseLauncherClient(0xc00028a640, 0xc0046ff208) pkg/virt-handler/launcher-clients/launcher-clients.go:143 +0x69 kubevirt.io/kubevirt/pkg/virt-handler.(*MigrationTargetController).execute(0xc0002a0460, {0xc004b8d7a0, 0x28}) pkg/virt-handler/migration-target.go:508 +0x28e Fix it by making sure
CloseLauncherClient
is thread safe (by protecting it with
sync.Once
)
https://prow.ci.kubevirt.io/view/gs/kubevirt-prow/pr-logs/pull/kubevirt_kubevirt/15983/pull-kubevirt-e2e-k8s-1.34-sig-compute-migrations/1983892566344470528
Assisted-by: Cursor Signed-off-by: Or Shoval <oshoval@redhat.com>
7 个月前
migration-proxy
Source proxy: Use migration certificate The commit also contains a fallback to old client certificate for smooth upgrade. Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
6 个月前
multipath-monitor
fix(virt-handler): Correctly set up test suites Correctly set up the test suites for filewatcher and multipath-monitor, so failing tests are listed in the created test reports. Signed-off-by: Felix Matouschek <fmatouschek@redhat.com>
8 个月前
node-labeller
migration: relax host-model check to allow known models Change migration logic to allow migration if all features of the initial node exist and the selected host model is *known* (regardless of whether it is marked usable). This fixes cases where migration fails after a libvirt upgrade: the selected host model may change between libvirt versions, and the previous restriction (requiring the same model or a usable custom model) prevented migration even between identical nodes. Signed-off-by: bmordeha <bmordeha@redhat.com>
7 个月前
notify-server
Gazelle: Remove exclude for vendored grpc Includes generated BUILD files Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
8 个月前
rest
Vsock, handler: Make sure there is non-nil certificate Prevent panic. Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
6 个月前
seccomp
hack: Run bazel-race Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
8 个月前
selinux
hack: Run bazel-race Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
8 个月前
virt-chroot
Consistent copyright notice under pkg Red Hat is willing to mark these files as copyrighted by the KubeVirt Authors. If accepted, a similar sed PR would follow to the reset of the code based. sed -i 's/\(20.., \)*20.. Red Hat, Inc./The KubeVirt Authors./'
git grep -l '20.. Red Hat, Inc.'
Signed-off-by: Dan Kenigsberg <danken@redhat.com>
1 年前
vsock
Gazelle: Remove exclude for vendored grpc Includes generated BUILD files Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
8 个月前
BUILD.bazel
ksm: move to its own pkg Signed-off-by: fossedihelm <ffossemo@redhat.com>
6 个月前
OWNERS
OWNER_ALIASES: Converge on sig-compute again Without much thinking sig-node got introduced before. But in order to change incremenetally, we only use sig-compute by now, and the discussion about a potential split (into node and cluster) is deferred. Keeping sig-compute also helps to keep ownership of mainy tests clear. Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
2 年前
controller.go
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
guestagent.go
consistent punctuation of Copyright notices under pkg/ Signed-off-by: Dan Kenigsberg <danken@redhat.com>
1 年前
migration-source.go
fix: do not override startTimestamp The startTimestamp addition should be an atomic op. Avoid the possibility of overriding it. Signed-off-by: fossedihelm <ffossemo@redhat.com>
7 个月前
migration-source_test.go
Source proxy: Use migration certificate The commit also contains a fallback to old client certificate for smooth upgrade. Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
6 个月前
migration-target.go
Fixed a bug in decentralized live migration where the migratedVolumes were not being synchronized between the source and the target. This caused the source to not know what the volumeMode of the target PVC was. This then translated into the migration domain xml containing a reference to the original volume instead of the target volume. Signed-off-by: Alexander Wels <awels@redhat.com>
4 个月前
migration-target_test.go
Source proxy: Use migration certificate The commit also contains a fallback to old client certificate for smooth upgrade. Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
6 个月前
migration.go
Consistent copyright notice under pkg Red Hat is willing to mark these files as copyrighted by the KubeVirt Authors. If accepted, a similar sed PR would follow to the reset of the code based. sed -i 's/\(20.., \)*20.. Red Hat, Inc./The KubeVirt Authors./'
git grep -l '20.. Red Hat, Inc.'
Signed-off-by: Dan Kenigsberg <danken@redhat.com>
1 年前
migration_test.go
Consistent copyright notice under pkg Red Hat is willing to mark these files as copyrighted by the KubeVirt Authors. If accepted, a similar sed PR would follow to the reset of the code based. sed -i 's/\(20.., \)*20.. Red Hat, Inc./The KubeVirt Authors./'
git grep -l '20.. Red Hat, Inc.'
Signed-off-by: Dan Kenigsberg <danken@redhat.com>
1 年前
non-root.go
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
options.go
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
options_test.go
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
realtime.go
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
realtime_test.go
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
retry_manager.go
Consistent copyright notice under pkg Red Hat is willing to mark these files as copyrighted by the KubeVirt Authors. If accepted, a similar sed PR would follow to the reset of the code based. sed -i 's/\(20.., \)*20.. Red Hat, Inc./The KubeVirt Authors./'
git grep -l '20.. Red Hat, Inc.'
Signed-off-by: Dan Kenigsberg <danken@redhat.com>
1 年前
retry_manager_test.go
Consistent copyright notice under pkg Red Hat is willing to mark these files as copyrighted by the KubeVirt Authors. If accepted, a similar sed PR would follow to the reset of the code based. sed -i 's/\(20.., \)*20.. Red Hat, Inc./The KubeVirt Authors./'
git grep -l '20.. Red Hat, Inc.'
Signed-off-by: Dan Kenigsberg <danken@redhat.com>
1 年前
setsched.go
Add license header linter for virt-handler under pkg/ Signed-off-by: avlitman <alitman@redhat.com>
9 个月前
unsafepath.go
virt-handler, migration: Introduce passt-repair entrypoint passtRepairSourceHandler and passtRepairTargetHandler are abstractions for passt-repair. Call it once in migration source controller, and once in migration target controller to set/clear TCP_REPAIR socket option on migration source socket and migration target socket respectively. The call is conditioned by FG. Additional network related conditions for calling passt-repair, will be added to the concrete implementation, which will be introduced in the subsequent commits. The path where passt creates the repair Unix Domain Socket in the virt-launcher mount namespace is carved using IsolationDetector to be passed as an argument to passt-repair binary. The stub will be removed from controller initialization in subsequent commits and replaced with concrete implementation. Signed-off-by: Nir Dothan <ndothan@redhat.com>
11 个月前
virt_handler_suite_test.go
Consistent copyright notice under pkg Red Hat is willing to mark these files as copyrighted by the KubeVirt Authors. If accepted, a similar sed PR would follow to the reset of the code based. sed -i 's/\(20.., \)*20.. Red Hat, Inc./The KubeVirt Authors./'
git grep -l '20.. Red Hat, Inc.'
Signed-off-by: Dan Kenigsberg <danken@redhat.com>
1 年前
vm.go
TDX VM is not migratable Currently live migration of the TDX VM is not supported. Signed-off-by: Zhenchao Liu <zhencliu@redhat.com>
7 个月前
vm_test.go
Source proxy: Use migration certificate The commit also contains a fallback to old client certificate for smooth upgrade. Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
6 个月前