On Sat, 30 Aug 2014 15:53:13 +0100 "Richard W.M. Jones" <rjo...@redhat.com> wrote: > I found out a few days ago that if you: > > (1) Open a qcow2 file that has lazy_refcounts = on and a backing file, and > > (2) Write lots of stuff, and > > (3) Kill qemu with SIGTERM [which I believed, maybe incorrectly, is a > "nice" way to kill qemu] > > .. then you can end up with a corrupt qcow2 file. In particular the > qcow2 file sometimes forgot that it had a backing file, but I suspect > this was just a symptom and in fact the qcow2 file header wasn't being > written to disk correctly. >
Hi Rich, Someone in IBM hit a very similar issue with PowerKVM a few monthes ago. The symptom was a corrupted filesystem in a qcow2 file. The steps involved to kill the QEMU process while the guest OS is shutting down. Unfortunately, no easy reproducer could be found and investigations halted... > Is it correct that sending SIGTERM to qemu should kill it cleanly, or > is that no longer the case, or is lazy_refcounts a special case, or > have I found a bug? > QEMU catches SIGTERM and calls bdrv_close(), so I would favor it is a bug or an undocumented limitation (hence a documentation bug :) > I can reproduce this easily, although of course the reproducer will > involve libguestfs. > > Rich. > Can you share this reproducer ? Cheers. -- Greg