[Libguestfs] a question about multithreading with libguestfs

Richard W.M. Jones rjones at redhat.com
Mon Jun 26 07:53:08 UTC 2017


On Mon, Jun 26, 2017 at 10:27:54AM +0300, Maxim Kozover wrote:
> I'd like to ask you, please, about multithreading with libguestfs.
> I'm using libguestfs 1.36.4 with Perl front-end.
>
> Should it be possible to have the same libguestfs appliance provide both
> fuse interface and periodically perform some longer APIs like find0?
>
> I mean make one Perl thread do mount_local_run and another thread
> periodically run find0 that executes simultaneously with fuse (hopefully
> not blocking fuse functionality internally until find0 exits)?

Unfortunately not, and as you discovered it will (currently) crash.

> When I'm trying this, the whole thing crashes, so the question is if it
> should be possible, please, and if yes, how could the problem be fixed?

This is really a bug, and something we've been meaning to fix.  What
should happen is there is a lock in the handle which every API takes.

It requires some changes to the generator to implement but is not
necessary hard to do.  In fact I posted patches for it a while back,
but they did not get upstream:

  https://www.redhat.com/archives/libguestfs/2015-June/msg00048.html

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list