Re: [PATCH v2] qemu_capabilities: Rework domain caps cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 24, 2020 at 13:40:03 +0100, Michal Privoznik wrote:
> Since v5.6.0-48-g270583ed98 we try to cache domain capabilities,
> i.e. store filled virDomainCaps in a hash table in virQEMUCaps
> for future use. However, there's a race condition in the way it's
> implemented. We use virQEMUCapsGetDomainCapsCache() to obtain the
> pointer to the hash table, then we search the hash table for
> cached data and if none is found the domcaps is constructed and
> put into the table. Problem is that this is all done without any
> locking, so if there are two threads trying to do the same, one
> will succeed and the other will fail inserting the data into the
> table.
> 
> Also, the API looks a bit fishy - obtaining pointer to the hash
> table is dangerous.
> 
> The solution is to use a mutex that guards the whole operation
> with the hash table. Then, the API can be changes to return
> virDomainCapsPtr directly.
> 
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1791790
> 
> Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
> ---
> 
> diff to v1:
> - Dropped the callback in favor of passing necessary values as arguments

Reviewed-by: Peter Krempa <pkrempa@xxxxxxxxxx>





[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux