All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kashyap Chamarthy <kchamart@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: kwolf@redhat.com, famz@redhat.com, qemu-block@nongnu.org,
	qemu-devel@nongnu.org, armbru@redhat.com,
	vsementsov@parallels.com, stefanha@redhat.com, mreitz@redhat.com
Subject: Re: [Qemu-devel] [PATCH 02/11] iotests: add transactional incremental backup test
Date: Wed, 11 Mar 2015 13:11:38 +0100	[thread overview]
Message-ID: <20150311121138.GA28559@tesla.redhat.com> (raw)
In-Reply-To: <1425528911-10300-3-git-send-email-jsnow@redhat.com>

On Wed, Mar 04, 2015 at 11:15:02PM -0500, John Snow wrote:
> Reviewed-by: Max Reitz <mreitz@redhat.com>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  tests/qemu-iotests/124     | 49 ++++++++++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/124.out |  4 ++--
>  2 files changed, 51 insertions(+), 2 deletions(-)

This tests seems to fail locally:

  . . .
  +======================================================================
  +FAIL: test_incremental_failure (__main__.TestIncrementalBackup)
  +Test: Verify backups made after a failure are correct.
  +----------------------------------------------------------------------
  +Traceback (most recent call last):
  +  File "124", line 331, in test_incremental_failure
  +    self.create_incremental()
  +  File "124", line 167, in create_incremental
  +    return self.wait_incremental(bitmap, validate)
  +  File "124", line 179, in wait_incremental
  +    self.assert_qmp_absent(event, 'data/error')
  +  File "/home/kashyapc/tinker-space/qemu-upstream/tests/qemu-iotests/iotests.py", line 282, in assert_qmp_absent
  +    self.fail('path "%s" has value "%s"' % (path, str(result)))
  +AssertionError: path "data/error" has value "Input/output error"
  +
  +======================================================================
  +FAIL: test_transaction_failure (__main__.TestIncrementalBackup)
  +Test: Verify backups made from a transaction that partially fails.
  +----------------------------------------------------------------------
  +Traceback (most recent call last):
  +  File "124", line 448, in test_transaction_failure
  +    self.wait_incremental(dr1bm0, 'drive1')
  +  File "124", line 179, in wait_incremental
  +    self.assert_qmp_absent(event, 'data/error')
  +  File "/home/kashyapc/tinker-space/qemu-upstream/tests/qemu-iotests/iotests.py", line 282, in assert_qmp_absent
  +    self.fail('path "%s" has value "%s"' % (path, str(result)))
  +AssertionError: path "data/error" has value "Input/output error"
  +
   ----------------------------------------------------------------------
  . . .

Complete stderr of `./check -qcow2` here:

    https://kashyapc.fedorapeople.org/virt/qemu-incremental-backup-tests/stderr-qemu-io-tests-qcow2-11MAR2015.txt

And, as per the other two failures of tests 051 and 061 (that you
mentioned on #qemu yesterday), Kevin Wolf on IRC said:

    051 was fixed, but the output has changed _again_. That change is from
    armbru_'s commit 7ee6c1e18. We need to update the reference output.

    As for 061, Max sent a patch, but I think we need to fix qemu rather
    than updating the reference output there
    Because the error message has become considerably worse


To test, I applied these two series to yesterday's QEMU git master:

    [PATCH 00/11] block: incremental backup transactions
    [PATCH v2 00/17] block: transactionless incremental backup

So, I'm here (28 commits ahead of commit 3539bbb on master) after
applying the patch series:

    $ git describe
    v2.2.0-1190-g41b7f5f

I need to try w/ today's git though, yet.

-- 
/kashyap

> diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124
> index 1c07387..da0bf6d 100644
> --- a/tests/qemu-iotests/124
> +++ b/tests/qemu-iotests/124
> @@ -184,6 +184,55 @@ class TestIncrementalBackup(iotests.QMPTestCase):
>          return True
>  
>  
> +    def test_incremental_transaction(self):
> +        '''Test: Verify backups made from transactionally created bitmaps.
> +
> +        Create a bitmap "before" VM execution begins, then create a second
> +        bitmap AFTER writes have already occurred. Use transactions to create
> +        a full backup and synchronize both bitmaps to this backup.
> +        Create an incremental backup through both bitmaps and verify that
> +        both backups match the full backup.
> +        '''
> +        bitmap0 = self.add_bitmap('bitmap0', 'drive0')
> +        self.hmp_io_writes('drive0', (('0xab', 0, 512),
> +                                      ('0xfe', '16M', '256k'),
> +                                      ('0x64', '32736k', '64k')))
> +        bitmap1 = self.add_bitmap('bitmap1', 'drive0')
> +
> +        result = self.vm.qmp('transaction', actions=[
> +            {
> +                'type': 'block-dirty-bitmap-clear',
> +                'data': { 'node': 'drive0',
> +                          'name': 'bitmap0' },
> +            },
> +            {
> +                'type': 'block-dirty-bitmap-clear',
> +                'data': { 'node': 'drive0',
> +                          'name': 'bitmap1' },
> +            },
> +            {
> +                'type': 'drive-backup',
> +                'data': { 'device': 'drive0',
> +                          'sync': 'full',
> +                          'format': iotests.imgfmt,
> +                          'target': self.full_bak },
> +            }
> +        ])
> +        self.assert_qmp(result, 'return', {})
> +        self.wait_until_completed()
> +        self.files.append(self.full_bak)
> +        self.check_full_backup()
> +
> +        self.hmp_io_writes('drive0', (('0x9a', 0, 512),
> +                                      ('0x55', '8M', '352k'),
> +                                      ('0x78', '15872k', '1M')))
> +        # Both bitmaps should be in sync and create fully valid
> +        # incremental backups
> +        res1 = self.create_incremental(bitmap0)
> +        res2 = self.create_incremental(bitmap1)
> +        self.assertTrue(res1 and res2)
> +
> +
>      def test_incremental_failure(self):
>          '''Test: Verify backups made after a failure are correct.
>  
> diff --git a/tests/qemu-iotests/124.out b/tests/qemu-iotests/124.out
> index 89968f3..914e373 100644
> --- a/tests/qemu-iotests/124.out
> +++ b/tests/qemu-iotests/124.out
> @@ -1,5 +1,5 @@
> -....
> +.....
>  ----------------------------------------------------------------------
> -Ran 4 tests
> +Ran 5 tests
>  
>  OK
> -- 
> 1.9.3

  reply	other threads:[~2015-03-11 12:11 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-05  4:15 [Qemu-devel] [PATCH 00/11] block: incremental backup transactions John Snow
2015-03-05  4:15 ` [Qemu-devel] [PATCH 01/11] qapi: Add transaction support to block-dirty-bitmap operations John Snow
2015-03-17 15:14   ` Max Reitz
2015-03-05  4:15 ` [Qemu-devel] [PATCH 02/11] iotests: add transactional incremental backup test John Snow
2015-03-11 12:11   ` Kashyap Chamarthy [this message]
2015-03-11 14:25     ` John Snow
2015-03-11 16:18       ` Kashyap Chamarthy
2015-03-05  4:15 ` [Qemu-devel] [PATCH 03/11] block: add transactional callbacks feature John Snow
2015-03-17 17:47   ` Max Reitz
2015-03-17 18:04     ` John Snow
2015-03-17 18:18       ` Eric Blake
2015-03-17 18:23         ` John Snow
2015-03-17 18:19       ` Max Reitz
2015-03-05  4:15 ` [Qemu-devel] [PATCH 04/11] block: add refcount to Job object John Snow
2015-03-17 17:54   ` Max Reitz
2015-03-05  4:15 ` [Qemu-devel] [PATCH 05/11] block: add delayed bitmap successor cleanup John Snow
2015-03-17 18:44   ` Max Reitz
2015-03-17 19:12     ` John Snow
2015-03-17 22:46     ` John Snow
2015-03-18 13:03       ` Max Reitz
2015-03-05  4:15 ` [Qemu-devel] [PATCH 06/11] qmp: Add an implementation wrapper for qmp_drive_backup John Snow
2015-03-17 18:51   ` Max Reitz
2015-03-17 19:16     ` John Snow
2015-03-17 19:33       ` Max Reitz
2015-03-17 20:15       ` Eric Blake
2015-03-05  4:15 ` [Qemu-devel] [PATCH 07/11] block: drive_backup transaction callback support John Snow
2015-03-17 19:49   ` Max Reitz
2015-03-17 23:27     ` John Snow
2015-03-18 13:41       ` Max Reitz
2015-03-18 19:51         ` John Snow
2015-03-18 20:20           ` Max Reitz
2015-03-05  4:15 ` [Qemu-devel] [PATCH 08/11] iotests: add QMP event waiting queue John Snow
2015-03-17 20:04   ` Max Reitz
2015-03-05  4:15 ` [Qemu-devel] [PATCH 09/11] iotests: test 124 - drive object refactoring John Snow
2015-03-17 20:44   ` Max Reitz
2015-03-17 23:40     ` John Snow
2015-03-18 13:44       ` Max Reitz
2015-03-05  4:15 ` [Qemu-devel] [PATCH 10/11] iotests: 124 - backup_prepare refactoring John Snow
2015-03-17 20:50   ` Max Reitz
2015-03-17 23:44     ` John Snow
2015-03-05  4:15 ` [Qemu-devel] [PATCH 11/11] iotests: 124 - transactional failure test John Snow
2015-03-17 20:59   ` Max Reitz
2015-03-17 21:04     ` John Snow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150311121138.GA28559@tesla.redhat.com \
    --to=kchamart@redhat.com \
    --cc=armbru@redhat.com \
    --cc=famz@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@parallels.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.