<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Greetings,<br><br></div>I am suffering of several weird errors which show randomly and make me suspect some concurrency issue.<br><br></div>Libguestfs version is 1.28.1, linux kernel 3.16, libvirt 1.2.9 and qemu 2.1.<br></div><br></div>What I'm trying to do is comparing the disk state at two different point of a guest execution.<br></div>Disk snapshots are taken through libvirt in different moments (I am aware of caching issue), from such snapshots, new disks are created using the "qemu-img convert" command with backing file pointing to the disk being executed.<br><br></div>Then, I spawn as many processes as disk images and in each process I create an guestfs instance and mount one of the disks.<br><br></div>The operation seems successful as I'm gathering the data I am looking for but I suffer from these random failures:<br><br> * RuntimeError: file receive cancelled by daemon - On r = libguestfsmod.checksums_out (self._o, csumtype, directory, sumsfile)<br> * RuntimeError: hivex_close: do_hivex_close: you must call 'hivex-open' first to initialize the hivex handle - On r = libguestfsmod.inspect_os (self._o)<br><br></div>The random nature of the errors make me think about some concurrency problem. The disk images are mounted read only, each process uses a new guestfs instance and mount a different disk image. Only shared data is the backing file.<br><br></div>Same code without backing image was running on a different server. I was able to compare whole disks image created from snapshots of a running one.<br><br></div>Most probably I am doing something wrong but I can't figure out what.<br></div>