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

Michal Privoznik mprivozn at redhat.com
Wed Apr 4 13:59:11 UTC 2018


On 04/04/2018 03:48 PM, Vincent Bernat wrote:
>  ❦  4 avril 2018 15:19 +0200, Michal Privoznik <mprivozn at redhat.com> :
> 
>> Both threads call virHashForEach(table=0x7f92fc69a480). Thread 6 was
>> first so it starts iterating and sets table->iterating so later when
>> thread 10 enters the function an error is reported.
>>
>> I guess we can go with what Dan suggested and after some rework we can
>> just drop ->iterating completely.
> 
> I may have missed this suggestion. Maybe Dan only sent it to you?

No, there is another thread where this issue is discussed:

https://www.redhat.com/archives/libvir-list/2018-April/msg00190.html

 In the
> meantime, could I change the locks around virHashForEach() and similar
> as read/write locks?
> 

You can do that locally, but as a patch it's very unlikely to be
accepted upstream because we've introduced RW locks to be able to access
domain list from multiple threads.

Michal




More information about the libvirt-users mailing list