On 04/04/2018 03:48 PM, Vincent Bernat wrote:
❦ 4 avril 2018 15:19 +0200, Michal Privoznik
<mprivozn(a)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