[Qemu-devel] [PATCH v3 0/2] block: for jobs, do not clear user_paused until after the resume

Jeff Cody posted 2 patches 7 years, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1534868459.git.jcody@redhat.com
Test docker-clang@ubuntu failed
Test checkpatch passed
job.c                      |  2 +-
tests/qemu-iotests/229     | 95 ++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/229.out | 23 +++++++++
tests/qemu-iotests/group   |  1 +
4 files changed, 120 insertions(+), 1 deletion(-)
create mode 100755 tests/qemu-iotests/229
create mode 100644 tests/qemu-iotests/229.out
[Qemu-devel] [PATCH v3 0/2] block: for jobs, do not clear user_paused until after the resume
Posted by Jeff Cody 7 years, 2 months ago
v3 changes:
    Rebased to master
    Patch 2: Wait for pause after mirror instead of error, to gobble the
             right message (Thanks John)
    Patch 2: Replace a hard-coded 'qcow2' with '$IMGFMT', oops.

v2 changes:

    Patch 1: Added r-b from John, Eric (Thanks)
    Patch 2: Attached an iotest as patch 2

    * cc'ed qemu-stable

For the test in patch 2, failure here is the failure output w/o patch 1:

 {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "testdisk"}}
-{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "testdisk"}}
-{"return": {}}
-{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_ERROR", "data": {"device": "testdisk", "operation": "write", "action": "stop"}}
-{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "testdisk"}}
-{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "testdisk", "len": 2097152, "offset": 1048576, "speed": 0, "type": "mirror"}}
-*** done
+QEMU_PROG: blockjob.c:460: block_job_iostatus_reset: Assertion `job->job.user_paused && job->job.pause_count > 0' failed.
+Wrong response matching Assertion on handle 0
Failures: 229
Failed 1 of 1 tests

git-backport-diff, v2->v3:

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/2:[----] [--] 'block: for jobs, do not clear user_paused until after the resume'
002/2:[0006] [FC] 'block: iotest to catch abort on forced blockjob cancel'


Jeff Cody (2):
  block: for jobs, do not clear user_paused until after the resume
  block: iotest to catch abort on forced blockjob cancel

 job.c                      |  2 +-
 tests/qemu-iotests/229     | 95 ++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/229.out | 23 +++++++++
 tests/qemu-iotests/group   |  1 +
 4 files changed, 120 insertions(+), 1 deletion(-)
 create mode 100755 tests/qemu-iotests/229
 create mode 100644 tests/qemu-iotests/229.out

-- 
2.17.1


Re: [Qemu-devel] [PATCH v3 0/2] block: for jobs, do not clear user_paused until after the resume
Posted by John Snow 7 years, 2 months ago

On 08/21/2018 12:26 PM, Jeff Cody wrote:
> v3 changes:
>     Rebased to master
>     Patch 2: Wait for pause after mirror instead of error, to gobble the
>              right message (Thanks John)
>     Patch 2: Replace a hard-coded 'qcow2' with '$IMGFMT', oops.
> 

Thanks!

Reviewed-by: John Snow <jsnow@redhat.com>

> v2 changes:
> 
>     Patch 1: Added r-b from John, Eric (Thanks)
>     Patch 2: Attached an iotest as patch 2
> 
>     * cc'ed qemu-stable
> 
> For the test in patch 2, failure here is the failure output w/o patch 1:
> 
>  {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "testdisk"}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "testdisk"}}
> -{"return": {}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_ERROR", "data": {"device": "testdisk", "operation": "write", "action": "stop"}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "testdisk"}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "testdisk", "len": 2097152, "offset": 1048576, "speed": 0, "type": "mirror"}}
> -*** done
> +QEMU_PROG: blockjob.c:460: block_job_iostatus_reset: Assertion `job->job.user_paused && job->job.pause_count > 0' failed.
> +Wrong response matching Assertion on handle 0
> Failures: 229
> Failed 1 of 1 tests
> 
> git-backport-diff, v2->v3:
> 
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
> 
> 001/2:[----] [--] 'block: for jobs, do not clear user_paused until after the resume'
> 002/2:[0006] [FC] 'block: iotest to catch abort on forced blockjob cancel'
> 
> 
> Jeff Cody (2):
>   block: for jobs, do not clear user_paused until after the resume
>   block: iotest to catch abort on forced blockjob cancel
> 
>  job.c                      |  2 +-
>  tests/qemu-iotests/229     | 95 ++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/229.out | 23 +++++++++
>  tests/qemu-iotests/group   |  1 +
>  4 files changed, 120 insertions(+), 1 deletion(-)
>  create mode 100755 tests/qemu-iotests/229
>  create mode 100644 tests/qemu-iotests/229.out
> 

-- 
—js

Re: [Qemu-devel] [PATCH v3 0/2] block: for jobs, do not clear user_paused until after the resume
Posted by Jeff Cody 7 years, 2 months ago
On Tue, Aug 21, 2018 at 12:26:18PM -0400, Jeff Cody wrote:
> v3 changes:
>     Rebased to master
>     Patch 2: Wait for pause after mirror instead of error, to gobble the
>              right message (Thanks John)
>     Patch 2: Replace a hard-coded 'qcow2' with '$IMGFMT', oops.
> 
> v2 changes:
> 
>     Patch 1: Added r-b from John, Eric (Thanks)
>     Patch 2: Attached an iotest as patch 2
> 
>     * cc'ed qemu-stable
> 
> For the test in patch 2, failure here is the failure output w/o patch 1:
> 
>  {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "testdisk"}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "testdisk"}}
> -{"return": {}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_ERROR", "data": {"device": "testdisk", "operation": "write", "action": "stop"}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "testdisk"}}
> -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "testdisk", "len": 2097152, "offset": 1048576, "speed": 0, "type": "mirror"}}
> -*** done
> +QEMU_PROG: blockjob.c:460: block_job_iostatus_reset: Assertion `job->job.user_paused && job->job.pause_count > 0' failed.
> +Wrong response matching Assertion on handle 0
> Failures: 229
> Failed 1 of 1 tests
> 
> git-backport-diff, v2->v3:
> 
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
> 
> 001/2:[----] [--] 'block: for jobs, do not clear user_paused until after the resume'
> 002/2:[0006] [FC] 'block: iotest to catch abort on forced blockjob cancel'
> 
> 
> Jeff Cody (2):
>   block: for jobs, do not clear user_paused until after the resume
>   block: iotest to catch abort on forced blockjob cancel
> 
>  job.c                      |  2 +-
>  tests/qemu-iotests/229     | 95 ++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/229.out | 23 +++++++++
>  tests/qemu-iotests/group   |  1 +
>  4 files changed, 120 insertions(+), 1 deletion(-)
>  create mode 100755 tests/qemu-iotests/229
>  create mode 100644 tests/qemu-iotests/229.out
> 
> -- 
> 2.17.1
> 

Thanks,

Applied to my block branch:

git://github.com/codyprime/qemu-kvm-jtc block

-Jeff