|
From: | Josh Durgin |
Subject: | Re: [Qemu-devel] [PATCH v2 1/2] rbd: use the higher level librbd instead of just librados |
Date: | Mon, 11 Apr 2011 17:18:50 -0700 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Lanikai/3.1.9 |
On 04/08/2011 01:43 AM, Stefan Hajnoczi wrote:
On Mon, Mar 28, 2011 at 04:15:57PM -0700, Josh Durgin wrote:librbd stacks on top of librados to provide access to rbd images. Using librbd simplifies the qemu code, and allows qemu to use new versions of the rbd format with few (if any) changes. Signed-off-by: Josh Durgin<address@hidden> Signed-off-by: Yehuda Sadeh<address@hidden> --- block/rbd.c | 785 +++++++++++++++-------------------------------------- block/rbd_types.h | 71 ----- configure | 33 +-- 3 files changed, 221 insertions(+), 668 deletions(-) delete mode 100644 block/rbd_types.hHi Josh, I have applied your patches onto qemu.git/master and am running ceph.git/master. Unfortunately qemu-iotests fails for me. Test 016 seems to hang in qemu-io -g -c write -P 66 128M 512 rbd:rbd/t.raw. I can reproduce this consistently. Here is the backtrace of the hung process (not consuming CPU, probably deadlocked):
This hung because it wasn't checking the return value of rbd_aio_write.I've fixed this in the for-qemu branch of http://ceph.newdream.net/git/qemu-kvm.git. Also, the existing rbd implementation is not 'growable' - writing to a large offset will not expand the rbd image correctly. Should we implement bdrv_truncate to support this (librbd has a resize operation)? Is bdrv_truncate useful outside of qemu-img and qemu-io?
Test 008 failed with an assertion but succeeded when run again. I think this is a race condition:
This is likely a use-after-free, but I haven't been able to find the race condition yet (or reproduce it). Could you get a backtrace from the core file?
Thanks, Josh
[Prev in Thread] | Current Thread | [Next in Thread] |