[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