Bug #60760

Race condition during system cache flush

Added by Alexander Hense 12 months ago. Updated about 1 month ago.

Status:Needs Feedback Start date:2014-08-04
Priority:Should have Due date:
Assigned To:- % Done:

0%

Category:Package Manager Spent time: -
Target version:7.4 (Backend)
TYPO3 Version:6.2 Is Regression:No
PHP Version: Sprint Focus:
Complexity:medium

Description

TYPO3 6.2.4

When flushing the system cache there seems to be a time frame for a race condition. This can lead to different "class/interface not found" errors.

Steps to reproduce:
Use apache benchmark to start multiple concurrent requests, e.g.:

ab -n 100 -c 10 http://typo3dev.localhost/

While ab is running, flush the system cache in the backend. Now, reload the frontend to see some kind of error, e.g.:
Fatal error: Interface 'Psr\Log\LoggerInterface' not found in /home/ahense/src/TYPO3.CMS/typo3/sysext/core/Classes/Log/Logger.php on line 24

This works almost every time. For somewhat faster computers you might want to increase ab to -n 500 and -c 20.

The frontend only works again after flushing the system cache once more.

The problem seems to be a race condition which occurs when the frontend is being rendered while the system cache flushing process is still in progress. The system cache flushing does not correctly lock other calls to prevent the construction of a broken cache.


Related issues

duplicated by Core - Bug #61670: cleared cache_classes causes fatal error Rejected 2014-09-17
duplicated by Core - Bug #63722: Stop flush class loader cache while rebuilding class loader. Closed 2014-12-09

History

#1 Updated by Mathias Schreiber 6 months ago

  • Target version set to 7.3 (Packages)

#2 Updated by Alexander Opitz 6 months ago

Hi,

is this issue reproduceable with a newer version of TYPO3? Namely the latest 6.2.9.

#3 Updated by Alexander Hense 6 months ago

is this issue reproduceable with a newer version of TYPO3? Namely the latest 6.2.9.

I have just tried it again multiple times with a TYPO3 6.2.9 system using exactly the steps I initially described. The result is the same.

#4 Updated by Alexander Opitz 6 months ago

  • Category set to Package Manager
  • Status changed from New to Needs Feedback
  • Complexity set to medium

Hmmm ok, so I like to know something more about your system.

Windows or Unixoid? If Unixoid, what is the filesystem on which typo3temp exists? And can you check if in typo3temp/locks a file is created and removed (thats the lock file which should prevent your mentioned race condition)?

#5 Updated by Camelia M 6 months ago

same issue here. typo3 6.2.9 on linux
I have a lock file created today (around the time the clear cache was made). the log did not get removed. not even at log out

#6 Updated by Alexander Opitz 6 months ago

Hi Camelia,

on which type of filesystem does your typo3temp exists?

#7 Updated by Benjamin Mack about 1 month ago

  • Target version changed from 7.3 (Packages) to 7.4 (Backend)

Also available in: Atom PDF