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