Bug 2107424
Summary: | "mem lock limit" of qemu process is not restored when kill src virtqemud during zerocopy migration. | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | Fangge Jin <fjin> | ||||
Component: | libvirt | Assignee: | Jiri Denemark <jdenemar> | ||||
libvirt sub component: | General | QA Contact: | Fangge Jin <fjin> | ||||
Status: | CLOSED ERRATA | Docs Contact: | |||||
Severity: | medium | ||||||
Priority: | medium | CC: | dzheng, jdenemar, lcheng, lmen, virt-maint | ||||
Version: | 9.1 | Keywords: | Triaged | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | libvirt-8.5.0-4.el9 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2022-11-15 10:04:39 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | 8.6.0 | ||||
Embargoed: | |||||||
Attachments: |
|
Fix sent upstream for review: https://listman.redhat.com/archives/libvir-list/2022-July/233273.html Fixed upstream by commit bb9badb9168ad0d40bca86b6463ef504624f096d Refs: v8.6.0-rc1-7-gbb9badb916 Author: Jiri Denemark <jdenemar> AuthorDate: Wed Jul 27 14:33:23 2022 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: Thu Jul 28 13:04:45 2022 +0200 qemu: Restore original memory locking limit on reconnect Commit v8.4.0-287-gd4d3bb8130 tried to make sure the original pre-migration memory locking limit is restored at the end of migration, but it missed the case when libvirt daemon is restarted during migration which needs to be aborted on reconnect. And if this was not enough, I forgot to actually save the status XML after setting the field in priv (in the commit mentioned above and also in v8.4.0-291-gd375993ab3). https://bugzilla.redhat.com/show_bug.cgi?id=2107424 Signed-off-by: Jiri Denemark <jdenemar> Reviewed-by: Michal Privoznik <mprivozn> Backported as part of https://gitlab.com/redhat/rhel/src/libvirt/-/merge_requests/40 Versions: libvirt-8.5.0-4.el9.x86_64 qemu-kvm-7.0.0-9.el9.x86_64 Test matrix: non-p2p, kill src virtqemud, pass non-p2p, kill dest virtqemud, pass non-p2p, kill dest virtproxyd, pass p2p, kill src virtqemud, pass p2p, kill dest virtqemud, pass p2p, kill dest virtproxyd, pass Verified with libvirt-8.5.0-5.el9.x86_64 qemu-kvm-7.0.0-10.el9.x86_64 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Low: libvirt security, bug fix, and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2022:8003 |
Created attachment 1897265 [details] virtqemud log Description of problem: Start vm, do zerocopy migration, kill src virtqemud before migration completes. "mem lock limit"(prlimit) of qemu process is not restored to original value. Version-Release number of selected component (if applicable): libvirt-8.5.0-1.el9.x86_64 qemu-kvm-7.0.0-8.el9.x86_64 How reproducible: 100% Steps to Reproduce: 1. Start vm 2. Check mem lock limit of qemu process: # prlimit -p `pidof qemu-kvm` -l RESOURCE DESCRIPTION SOFT HARD UNITS MEMLOCK max locked-in-memory address space 67108864 67108864 bytes 3. Do zerocopy migration # virsh migrate vm1 qemu+tcp://dell-per640***/system --live --p2p --zerocopy --parallel --bandwidth 10 4. Check mem lock limit of qemu process: # prlimit -p `pidof qemu-kvm` -l RESOURCE DESCRIPTION SOFT HARD UNITS MEMLOCK max locked-in-memory address space 2147483648 2147483648 bytes 5. Kill source virtqemud before migration completes. It will be restarted immediately by systemd. And migration fails as expected. # pkill -9 virtqemud 6. Check mem lock limit of qemu process: # prlimit -p `pidof qemu-kvm` -l RESOURCE DESCRIPTION SOFT HARD UNITS MEMLOCK max locked-in-memory address space 2147483648 2147483648 bytes Actual results: In step6, mem lock limit of qemu process is not restored Expected results: In step6, mem lock limit of qemu process should be restored to original value. Additional info: