From fa24fa8a3cb97aaa1baae0cd5efc0eb20c8fd93f Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 4 Oct 2017 09:58:49 +0200 Subject: [PATCH] [Cache] Fix race condition in TagAwareAdapter --- .../Component/Cache/Adapter/TagAwareAdapter.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php b/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php index 1e0617ebe2..d8ea346038 100644 --- a/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php +++ b/src/Symfony/Component/Cache/Adapter/TagAwareAdapter.php @@ -250,19 +250,12 @@ class TagAwareAdapter implements TagAwareAdapterInterface $f = $this->getTagsByKey; $tagsByKey = $f($items); - $deletedTags = $this->deferred = array(); + $this->deferred = array(); $tagVersions = $this->getTagVersions($tagsByKey); $f = $this->createCacheItem; foreach ($tagsByKey as $key => $tags) { - if ($tags) { - $this->itemsAdapter->saveDeferred($f(static::TAGS_PREFIX.$key, array_intersect_key($tagVersions, $tags), $items[$key])); - } else { - $deletedTags[] = static::TAGS_PREFIX.$key; - } - } - if ($deletedTags) { - $this->itemsAdapter->deleteItems($deletedTags); + $this->itemsAdapter->saveDeferred($f(static::TAGS_PREFIX.$key, array_intersect_key($tagVersions, $tags), $items[$key])); } }