In function 'virHashForEach/virHashSearch', 'table->iterating' prevent concurrent iterating. But most caller evoke it, after hold a read lock. This will lead the second caller failed to iterate the table. So, the caller should hold a write lock, then iterate the table.