[libvirt-users] error : virHashForEach:597 : Hash operation not allowed during iteration

Vincent Bernat bernat at luffy.cx
Wed Apr 4 11:31:43 UTC 2018


 ❦  4 avril 2018 11:17 +0200, Michal Privoznik <mprivozn at redhat.com> :

>> We are using a hook, but the hook doesn't query libvirt back, so it
>> should be safe from this point of view. However, we have several sources
>> querying libvirt at regular interval (once every 5 seconds from two
>> different sources). I am unable to reproduce the problem with just
>> running "virsh list" in parallel.
>> 
>> We are using libvirt 3.6.
>
> Is this plain 3.6.0 or do you have any patches on top of it (e.g. some
> in-house patches)?

It's the one from Ubuntu Artful with some additional patches to support
Skylake and the IBRS CPU flag.

>> Is it an expected constraint to not be able to reliably query libvirt
>> from several sources? Have fixes for this problem been pushed since 3.6?
>> 
>
> Dunno, this is the first time I hear about this issue. Maybe you can try
> to set a break point on virHashIterationError() and when it's hit get
> stacktrace of all threads 't a a bt'. That might shed more light into
> the issue. Smells like we are not locking somewhere properly.

I'll try. It doesn't happen that often on a given host.

> Also, you might want to try the latest release of 4.2.0 and see if the
> bug still reproduces.

I'll try the 4.0 version which is the version to be in Ubuntu Bionic (I
am trying to not diverge from distribution to be able to get security
updates for free).
-- 
Choose variable names that won't be confused.
            - The Elements of Programming Style (Kernighan & Plauger)




More information about the libvirt-users mailing list