Il 06/08/2012 12:45, Kevin Wolf ha scritto: >> In the long term >> we will add the failing blockdev name to the blockjob iostatus. > I think you misunderstood. What I was trying to say is that with the > same reasoning we'd need a field that doesn't automatically reset its > status on 'cont' not only for block jobs, but also for regular guest disks.
I'm not sure why. There cannot be changes to the guest-triggered iostatus after you do a stop. On the other hand, a block job still runs while the guest is stopped (and we cannot change this because it'd be backwards-incompatible), so you can have the following (> means command, < means event): > stop (no iostatus) < BLOCK_JOB_ERROR (iostatus=failed on source) > cont (no iostatus) libvirtd restarts > query-block (no iostatus) Compare this with guest-initiated I/O: > stop (no iostatus) < BLOCK_IO_ERROR (iostatus=failed) > cont (no iostatus) libvirtd restarts QEMU retries I/O, fails < BLOCK_IO_ERROR (iostatus=failed) > query-block (iostatus=failed) > If you try fixing the problem by adding a field in BlockJob, it may well > be fixed for block jobs, but you still need to add it in the generic > place later so that regular disks are covered as well. Regular disks are covered because each entry in query-block has its own iostatus. The only problematic case is now if two different backing files fail for unrelated reasons. Paolo