Bug #77204

Typo3DatabaseBackend flushByTag() and collectGarbage()

Added by Christian Kuhn over 2 years ago. Updated about 2 months ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
Caching
Target version:
-
Start date:
2016-07-21
Due date:
% Done:

100%

TYPO3 Version:
7
PHP Version:
Tags:
Complexity:
medium
Is Regression:
Yes
Sprint Focus:

Description

The 7.6 and 6.2 implementation of Typo3DatabaseBackend cache backend has bugs in two methods (in mysql-non-dbal versions). Those were introduced by #61814 and fixed in master with #77160

flushByTag() leaves orphaned tags in tags table - if a row has two tags and flushByTag() is executed on one tag, the other is left.

collectGargabe() does not find orphaned tags
collectGarbage() does not delete an expired cache row if it has no tags (fix: left outer join)

Task is to migrate the functional tests from master over to 7.6 (and 6.2?) - those will show the issues.


Related issues

Related to TYPO3 Core - Task #77160: Doctrine: migrate ext:core cache Typo3DatabaseBackend Closed 2016-07-20
Related to TYPO3 Core - Bug #61814: Caching framework garbage collection scheduler task taking ages with database backend and large websites Closed 2014-09-23
Related to TYPO3 Core - Bug #21309: Move t3lib_matchCondition::whichDevice() to t3lib_utility_Client::getDeviceType() Closed 2009-10-19

Associated revisions

Revision 67e63a9a (diff)
Added by Thomas Schlumberger about 2 years ago

[BUGFIX] Prevent orphaned tags in Typo3DatabaseBackend

The 7.6 and 6.2 implementation of Typo3DatabaseBackend cache backend has
bugs in two methods (in mysql-non-dbal versions). Those were introduced
by #61814 and fixed in master with #77160.

flushByTag() leaves orphaned tags in tags table - if a row has two tags
and flushByTag() is executed on one tag, the other is left.

collectGargabe() does not find orphaned tags collectGarbage() and does
not delete an expired cache row if it has no tags (fix: left outer join)

The patch migrates the functional tests and fixes the issue.

Change-Id: Ie53f54eceb3e47c21c31e7263a3f855b1cb93660
Resolves: #77204
Releases: 7.6, 6.2
Reviewed-on: https://review.typo3.org/49907
Reviewed-by: Christian Kuhn <>
Tested-by: Christian Kuhn <>

Revision 3e74ca52 (diff)
Added by Thomas Schlumberger about 2 years ago

[BUGFIX] Prevent orphaned tags in Typo3DatabaseBackend

The 7.6 and 6.2 implementation of Typo3DatabaseBackend cache backend has
bugs in two methods (in mysql-non-dbal versions). Those were introduced
by #61814 and fixed in master with #77160.

flushByTag() leaves orphaned tags in tags table - if a row has two tags
and flushByTag() is executed on one tag, the other is left.

collectGargabe() does not find orphaned tags collectGarbage() and does
not delete an expired cache row if it has no tags (fix: left outer join)

The patch migrates the functional tests and fixes the issue.

Change-Id: Ie53f54eceb3e47c21c31e7263a3f855b1cb93660
Resolves: #77204
Releases: 7.6, 6.2
Reviewed-on: https://review.typo3.org/49309
Tested-by: TYPO3com <>
Reviewed-by: Christian Kuhn <>
Tested-by: Christian Kuhn <>

History

#1 Updated by Gerrit Code Review over 2 years ago

  • Status changed from New to Under Review

Patch set 1 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#2 Updated by Gerrit Code Review over 2 years ago

Patch set 2 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#3 Updated by Gerrit Code Review over 2 years ago

Patch set 3 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#4 Updated by Gerrit Code Review over 2 years ago

Patch set 4 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#5 Updated by Gerrit Code Review over 2 years ago

Patch set 5 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#6 Updated by Gerrit Code Review about 2 years ago

Patch set 6 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#7 Updated by Gerrit Code Review about 2 years ago

Patch set 7 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#8 Updated by Gerrit Code Review about 2 years ago

Patch set 8 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#9 Updated by Gerrit Code Review about 2 years ago

Patch set 9 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49309

#10 Updated by Gerrit Code Review about 2 years ago

Patch set 1 for branch TYPO3_6-2 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49907

#11 Updated by Gerrit Code Review about 2 years ago

Patch set 2 for branch TYPO3_6-2 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49907

#12 Updated by Gerrit Code Review about 2 years ago

Patch set 3 for branch TYPO3_6-2 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/49907

#13 Updated by Thomas Schlumberger about 2 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

#14 Updated by Benni Mack about 2 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF