[Qemu-devel] [PATCH 0/5] Fix segfault in blockjob race condition

Jeff Cody posted 5 patches 6 years, 5 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
blockjob.c                     |  9 ++--
include/qemu/coroutine_int.h   |  5 +++
tests/qemu-iotests/200         | 99 ++++++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/200.out     | 14 ++++++
tests/qemu-iotests/common.qemu |  8 +++-
tests/qemu-iotests/group       |  1 +
util/async.c                   |  7 +++
util/qemu-coroutine-sleep.c    |  3 ++
util/qemu-coroutine.c          | 14 ++++++
9 files changed, 156 insertions(+), 4 deletions(-)
create mode 100755 tests/qemu-iotests/200
create mode 100644 tests/qemu-iotests/200.out
[Qemu-devel] [PATCH 0/5] Fix segfault in blockjob race condition
Posted by Jeff Cody 6 years, 5 months ago
This series fixes a race condition segfault when using iothreads with
blockjobs.

The qemu iotest in this series is a reproducer, as is the reproducer
script attached in this bug report:

https://bugzilla.redhat.com/show_bug.cgi?id=1508708

There are two additional patches to try and catch this sort of scenario
with an abort, before a segfault or memory corruption occurs.

Jeff Cody (5):
  blockjob: do not allow coroutine double entry or
    entry-after-completion
  coroutine: abort if we try to enter coroutine scheduled for another
    ctx
  coroutines: abort if we try to enter a still-sleeping coroutine
  qemu-iotests: add option in common.qemu for mismatch only
  qemu-iotest: add test for blockjob coroutine race condition

 blockjob.c                     |  9 ++--
 include/qemu/coroutine_int.h   |  5 +++
 tests/qemu-iotests/200         | 99 ++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/200.out     | 14 ++++++
 tests/qemu-iotests/common.qemu |  8 +++-
 tests/qemu-iotests/group       |  1 +
 util/async.c                   |  7 +++
 util/qemu-coroutine-sleep.c    |  3 ++
 util/qemu-coroutine.c          | 14 ++++++
 9 files changed, 156 insertions(+), 4 deletions(-)
 create mode 100755 tests/qemu-iotests/200
 create mode 100644 tests/qemu-iotests/200.out

-- 
2.9.5