Bug 1519617
Summary: | The exit code should be non-zero when qemu-io reports an error | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | yilzhang |
Component: | qemu-kvm-rhev | Assignee: | Hanna Czenczek <hreitz> |
Status: | CLOSED ERRATA | QA Contact: | Tingting Mao <timao> |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | 7.5 | CC: | chayang, coli, hreitz, juzhang, knoel, michen, ngu, pingl, qzhang, virt-maint |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-rhev-2.12.0-5.el7 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2018-11-01 11:01:10 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: | 1518738 | ||
Bug Blocks: |
Description
yilzhang
2017-12-01 03:03:08 UTC
Another reproducer using iSCSI backend image: 1. # qemu-img create -f qcow2 iscsi://10.0.0.7/iqn.2017-08.com.yilzhang:t2/0 500M 2. # qemu-io -c 'write 0 1G' iscsi://10.0.0.7/iqn.2017-08.com.yilzhang:t2/0 tcmalloc: large alloc 1073741824 bytes == 0x1419d0000 @ 0x7fff99bb5fa0 0x7fff99bb9404 0x7fff99be8af0 0x1041f4110 0x1041f4198 0x104154d38 0x104141de0 0x1040fbd10 0x1040fe5b4 0x1040ffe70 0x1040eb318 0x7fff992e4980 0x7fff992e4b74 iSCSI Failure: SENSE KEY:ILLEGAL_REQUEST(5) ASCQ:LBA_OUT_OF_RANGE(0x2100) write failed: No space left on device 3. Query the return code of "qemu-io" Actual result: # echo $? 0 Yilin, Please help to append polarion case number into External Trackers part if available. Thanks, Nini (In reply to Gu Nini from comment #3) > Yilin, > > Please help to append polarion case number into External Trackers part if > available. > > Thanks, > Nini Hi Nini, I checked and I think the test scenario in Polarion is not the same as this BZ, so I removed the keyword "Polarion" from "QA Whiteboard" Sent an upstream series: http://lists.nongnu.org/archive/html/qemu-block/2018-04/msg00664.html Fix included in qemu-kvm-rhev-2.12.0-5.el7 Packages tested: kernel-3.10.0-915.el7 qemu-kvm-rhev-2.12.0-5.el7 Test steps: 1. Create qcow2 image # qemu-img create -f qcow2 base.qcow2 100M Formatting 'base.qcow2', fmt=qcow2 size=104857600 cluster_size=65536 lazy_refcounts=off refcount_bits=16 2. Write data into the image and make the size exceed the image size # qemu-io -c 'write 0 1G' base.qcow2 tcmalloc: large alloc 1073741824 bytes == 0x5624eb9f2000 @ 0x7f4f4bfc935f 0x7f4f4bfe9e90 0x5624ea4e7476 0x5624ea4e74b9 0x5624ea432ae5 0x5624ea435050 0x5624ea435e52 0x5624ea4266ba 0x7f4f49cad3d5 0x5624ea42712c write failed: Input/output error # echo $? 1 3. Run case 216 in qemu-iotests # rpm -ivhf qemu-kvm-rhev-2.12.0-5.el7.src.rpm # rpmbuild -bp /root/rpmbuild/SPECS/qemu-kvm.spec --nodeps # cd /root/rpmbuild/BUILD/qemu-2.12.0/ # ./configure # export QEMU_PROG=/usr/libexec/qemu-kvm # export QEMU_IMG_PROG=/usr/bin/qemu-img # export QEMU_IO_PROG=/usr/bin/qemu-io # export QEMU_NBD_PROG=/usr/bin/qemu-nbd # cd tests/qemu-iotests # ./check -qcow2 216 QEMU -- "/usr/libexec/qemu-kvm" -nodefaults -machine accel=qtest QEMU_IMG -- "/usr/bin/qemu-img" QEMU_IO -- "/usr/bin/qemu-io" --cache writeback -f qcow2 QEMU_NBD -- "/usr/bin/qemu-nbd" IMGFMT -- qcow2 (compat=1.1) IMGPROTO -- file PLATFORM -- Linux/x86_64 hp-dl385g7-09 3.10.0-915.el7.x86_64 TEST_DIR -- /root/rpmbuild/BUILD/qemu-2.12.0/tests/qemu-iotests/scratch SOCKET_SCM_HELPER -- 216 [failed, exit status 1] - output mismatch (see 216.out.bad) --- /root/rpmbuild/BUILD/qemu-2.12.0/tests/qemu-iotests/216.out 2018-06-26 23:02:41.004156997 -0400 +++ /root/rpmbuild/BUILD/qemu-2.12.0/tests/qemu-iotests/216.out.bad 2018-06-26 23:06:29.804383640 -0400 @@ -7,9 +7,12 @@ --- Doing COR --- -{u'return': {}} -{u'return': u''} +{u'error': {u'class': u'GenericError', u'desc': u"Driver 'copy-on-read' is not whitelisted"}} +{u'return': u'Cannot find device= nor node_name=node0\r\n'} --- Checking COR result --- -Done +Traceback (most recent call last): + File "216", line 113, in <module> + assert qemu_io_silent(top_img_path, '-c', 'read -P 1 0M 1M') == 0 +AssertionError Failures: 216 Failed 1 of 1 tests (In reply to Ping Li from comment #10) > Packages tested: > kernel-3.10.0-915.el7 > qemu-kvm-rhev-2.12.0-5.el7 > > Test steps: > 1. Create qcow2 image > # qemu-img create -f qcow2 base.qcow2 100M > Formatting 'base.qcow2', fmt=qcow2 size=104857600 cluster_size=65536 > lazy_refcounts=off refcount_bits=16 > > 2. Write data into the image and make the size exceed the image size > # qemu-io -c 'write 0 1G' base.qcow2 > tcmalloc: large alloc 1073741824 bytes == 0x5624eb9f2000 @ 0x7f4f4bfc935f > 0x7f4f4bfe9e90 0x5624ea4e7476 0x5624ea4e74b9 0x5624ea432ae5 0x5624ea435050 > 0x5624ea435e52 0x5624ea4266ba 0x7f4f49cad3d5 0x5624ea42712c > write failed: Input/output error > # echo $? > 1 > > 3. Run case 216 in qemu-iotests > # rpm -ivhf qemu-kvm-rhev-2.12.0-5.el7.src.rpm > # rpmbuild -bp /root/rpmbuild/SPECS/qemu-kvm.spec --nodeps > # cd /root/rpmbuild/BUILD/qemu-2.12.0/ > # ./configure > # export QEMU_PROG=/usr/libexec/qemu-kvm > # export QEMU_IMG_PROG=/usr/bin/qemu-img > # export QEMU_IO_PROG=/usr/bin/qemu-io > # export QEMU_NBD_PROG=/usr/bin/qemu-nbd > # cd tests/qemu-iotests > # ./check -qcow2 216 > QEMU -- "/usr/libexec/qemu-kvm" -nodefaults -machine accel=qtest > QEMU_IMG -- "/usr/bin/qemu-img" > QEMU_IO -- "/usr/bin/qemu-io" --cache writeback -f qcow2 > QEMU_NBD -- "/usr/bin/qemu-nbd" > IMGFMT -- qcow2 (compat=1.1) > IMGPROTO -- file > PLATFORM -- Linux/x86_64 hp-dl385g7-09 3.10.0-915.el7.x86_64 > TEST_DIR -- /root/rpmbuild/BUILD/qemu-2.12.0/tests/qemu-iotests/scratch > SOCKET_SCM_HELPER -- > > 216 [failed, exit status 1] - output mismatch (see 216.out.bad) > --- /root/rpmbuild/BUILD/qemu-2.12.0/tests/qemu-iotests/216.out 2018-06-26 > 23:02:41.004156997 -0400 > +++ /root/rpmbuild/BUILD/qemu-2.12.0/tests/qemu-iotests/216.out.bad > 2018-06-26 23:06:29.804383640 -0400 > @@ -7,9 +7,12 @@ > > --- Doing COR --- > > -{u'return': {}} > -{u'return': u''} > +{u'error': {u'class': u'GenericError', u'desc': u"Driver 'copy-on-read' is > not whitelisted"}} > +{u'return': u'Cannot find device= nor node_name=node0\r\n'} > > --- Checking COR result --- > > -Done > +Traceback (most recent call last): > + File "216", line 113, in <module> > + assert qemu_io_silent(top_img_path, '-c', 'read -P 1 0M 1M') == 0 > +AssertionError > Failures: 216 > Failed 1 of 1 tests Hi Max, Could you help to check why case 216 is failed? Thanks Hi, That test failed because I forgot to whitelist the copy-on-read driver, which is an issue for BZ 1518738. (Sorry.) I think that's pretty much irrelevant for this BZ here for now. As long as you can see that qemu-io returns an exit code of 1 when an error occurred, that should be enough. Max (In reply to Max Reitz from comment #12) > Hi, > > That test failed because I forgot to whitelist the copy-on-read driver, > which is an issue for BZ 1518738. (Sorry.) > > I think that's pretty much irrelevant for this BZ here for now. As long as > you can see that qemu-io returns an exit code of 1 when an error occurred, Yes, I do agree that this bug itself has been already fixed. However, iotest 216 was created by the patch series for this bug. IMO, the prerequisite for verifying this bug is that both the issue itself has been solved and no new issues were introduced by the fix. > that should be enough. > > Max Thanks Max. Based on the comment 10 and comment 12, the bug itself has been solved. Set the bug as verified. Also, bug 1518738 and bug 1594747 will be used to track the issue for iotest 216. 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, 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/RHBA-2018:3443 |