Am 07.12.2009 15:50, schrieb Jan Kiszka: > Jan Kiszka wrote: >> And now it happened again (qemu-kvm head, during kernel installation >> from network onto local qcow2-disk). Any clever idea how to proceed with >> this? >> >> I could try to run the step in a loop, hopefully retriggering it once in >> a (likely longer) while. But then we need some good instrumentation first. >> > > Maybe I'm seeing ghosts, and I don't even have a minimal clue about what > goes on in the code, but this looks fishy: > > preallocate() invokes qcow2_alloc_cluster_offset() passing &meta, a > stack variable. It seems that qcow2_alloc_cluster_offset() may insert > this structure into cluster_allocs and leave it there. So we corrupt the > queue as soon as preallocate() returns, no?
preallocate() is about metadata preallocation during image creation. It is only ever run by qemu-img. Apart from that it calls run_dependent_requests() which removes the request from the list again. Kevin