Bug 2041480
Summary: | [incremental_backup] Inconsistent block status reply in qemu-nbd | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Nir Soffer <nsoffer> | ||||
Component: | qemu-kvm | Assignee: | Hanna Czenczek <hreitz> | ||||
qemu-kvm sub component: | Storage | QA Contact: | Tingting Mao <timao> | ||||
Status: | CLOSED ERRATA | Docs Contact: | |||||
Severity: | high | ||||||
Priority: | high | CC: | coli, jinzhao, juzhang, kkiwi, virt-maint | ||||
Version: | 8.6 | Keywords: | Regression, Triaged | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | qemu-kvm-6.2.0-7.module+el8.6.0+14250+cd2c04c3 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2022-05-10 13:25:20 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: | |||||
Embargoed: | |||||||
Bug Depends On: | 2041461 | ||||||
Bug Blocks: | |||||||
Attachments: |
|
Description
Nir Soffer
2022-01-17 13:12:19 UTC
This is mostly a clone of bug 2041461 (rhel 9). I tried to reproduce this with RHV API but I could not reproduce. In RHV we do not support yet getting partial extents, only getting all extents for entire image. Practically in RHV we always do something like this (assuming 6g image): extents = [] for offset in range(0, 6*1024**3, 2*1024**3): r = c1.extents(offset, 2*1024**3) extents.extend(r["base:allocation"]) Repeating this again return the same results on every call. Example usage with RHV API: $ ./image_transfer.py -c engine-dev download eaaf6789-90d9-4ad0-ab54-04e16fa7570a [ 0.0 ] Connecting to engine... [ 0.0 ] Looking up disk eaaf6789-90d9-4ad0-ab54-04e16fa7570a [ 0.1 ] Creating image transfer for download [ 1.4 ] Transfer ID: 30ec7761-64d7-4db7-8073-30cb5474de03 [ 1.4 ] Transfer host name: host4 [ 1.4 ] Transfer URL: https://host4:54322/images/bd64768a-167d-4172-b37d-bef9ce075f77 [ 1.4 ] Proxy URL: https://engine-dev:54323/images/bd64768a-167d-4172-b37d-bef9ce075f77 [ 1.4 ] Conneted to imageio server Getting extents for entire image: >>> import requests >>> s = requests.Session() >>> s.verify = False >>> first = s.get("https://host4:54322/images/bd64768a-167d-4172-b37d-bef9ce075f77/extents").json() >>> second = s.get("https://host4:54322/images/bd64768a-167d-4172-b37d-bef9ce075f77/extents").json() >>> first == second True Reproduced in qemu-kvm-6.2.0-6.module+el8.6.0+14165+5e5e76ac: Steps: # qemu-img create -f raw empty.raw 1g # qemu-nbd --read-only --persistent --allocation-depth --socket=/tmp/nbd.sock --format=raw empty.raw & # nbdinfo --map=base:allocation nbd+unix:///?socket=/tmp/nbd.sock 0 4096 0 allocated 4096 1073737728 3 hole,zero # nbdinfo --map=qemu:allocation-depth nbd+unix:///?socket=/tmp/nbd.sock # nbdinfo --map=qemu:allocation-depth nbd+unix:///?socket=/tmp/nbd.sock # nbdinfo --map=base:allocation nbd+unix:///?socket=/tmp/nbd.sock 0 1073741824 0 allocated Results: As above, after latest step, the dumped info is changed to all allocated data which is different from the results of the 3rd command. Verified in qemu-kvm-6.2.0-7.module+el8.6.0+14250+cd2c04c3: Steps: # qemu-img create -f raw empty.raw 1g # qemu-nbd --read-only --persistent --allocation-depth --socket=/tmp/nbd.sock --format=raw empty.raw & # nbdinfo --map=base:allocation nbd+unix:///?socket=/tmp/nbd.sock 0 4096 0 allocated 4096 1073737728 3 hole,zero # nbdinfo --map=qemu:allocation-depth nbd+unix:///?socket=/tmp/nbd.sock # nbdinfo --map=qemu:allocation-depth nbd+unix:///?socket=/tmp/nbd.sock # nbdinfo --map=base:allocation nbd+unix:///?socket=/tmp/nbd.sock 0 4096 0 allocated 4096 1073737728 3 hole,zero Results: As above, after latest step, the dumped info is still the same as the result of 3rd command. QE bot(pre verify): Set 'Verified:Tested,SanityOnly' as gating/tier1 test pass. 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 (Moderate: virt:rhel and virt-devel:rhel 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:1759 |