Project

General

Profile

Actions

Bug #59845

closed

Full system crash after installing extension on a live system

Added by Tobias Klepp almost 10 years ago. Updated about 9 years ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
Caching
Target version:
-
Start date:
2014-06-24
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
6.2
PHP Version:
5.3
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

Hello everybody,

we have a really big problem with our TYPO3 6.2 system. If I try to update, install, enable or disable an extension, the process break with random error messages. Always some classes can not found. We found out, that the generation of temporary classes in typo3temp/Cache/Data/cache_classes not generated completely or correctly, if the frontend website is calling in the same time. Every action (update, install, enable or disable an extension) in the extension manager is really slow (up to 1 minute). It looks like the extension manager generate all the cache classes new and if someone else calling the website in this time (like on a live system), the class cache is broken. The backend and the frontend is down. Only class not found error messages displayed. It is really hard to bring the system up. The only way is to stop all access to the frontend by a firewall for example, clear all cache files in typo3temp and call the backend and waiting for a successful request. Then everything runs fine.

Our system setup:

TYPO3 6.2.3
PHP 5.3.28

We enable and disable APC. No difference in the behaviour.


Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Bug #59662: Problem with subsequent calls to $configurationManager->setLocalConfigurationValueByPath and 'LocalConfiguration invalid'Closed2014-06-19

Actions
Related to TYPO3 Core - Bug #59966: EM should not clear all system caches on extension configuration changeClosedMarkus Klein2014-06-28

Actions
Actions #1

Updated by Wolfgang Klinger almost 10 years ago

Sounds a little bit related to my issue here: #59662
where LocalConfiguration.php is not written while read in again

Actions #2

Updated by Markus Klein almost 10 years ago

  • Target version deleted (next-patchlevel)
  • Complexity set to nightmare

Well this seems to be exactly the problem we were trying to solve before the 6.2 release. I invested a week or so in the topic of locking/process synchronization.
The bad news: It can't be done reliably in PHP on a general implementation. I'm sorry.

I could be done, if some system requirements are fulfilled.
If you're interested, read my blueprint: http://wiki.typo3.org/Blueprints/LockingForCaches

Actions #3

Updated by Tobias Klepp almost 10 years ago

Also if we save the extension settings, all cached classes are regenerated and if you do it on a live system, the complete system crashes with class not found error messages. What are the plans to fix this nightmare issue?

Why is this necessary to regenerate all cached classes by updating the extension settings? From a performance perspective it is really slow.

Actions #4

Updated by Markus Klein almost 10 years ago

Ok that is strange. Saving extension settings shouldn't actually clear the classes cache. That does not make sense.

Actions #5

Updated by Alexander Opitz almost 10 years ago

We should move the "extension setting" thing to another issue to stay clean on this one.

The main issue on this one seams that to much time is needed between "clearing the cache and rebuilding" maybe something scary happens (up to 1 minute? Realy?).

We should take a look again, if EM looks the cache generation while he clears and rebuilds the cache. I think thats the thing where the nightmare begin and on the other side, thats one point which isn't supported by the caching FW (we should consider in the rewrite, that we need something like "flushAndRewrite()").

It could take days to get a somewhat "hacky" solution. :-(

There are even more thread collisions on extension updates.

Actions #6

Updated by Gerrit Code Review over 9 years ago

  • Status changed from New to Under Review

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

Actions #7

Updated by Alexander Opitz over 9 years ago

  • Status changed from Under Review to Accepted

The issue with "extension setting" was moved into #59966
The added patch was also moved there as it only fixed the "extension setting" point.

Actions #8

Updated by Markus Klein over 9 years ago

  • Complexity deleted (nightmare)

Tobias, I created a separate ticket #59966 for the extension configuration setting problem and pushed a patch.

Regarding your initial problem: I had a look again at that code too and I'm a bit confused, since what you describe should actually be fixed and that would mean that locking fails on your site. Can you please take a look into your log module and search for messages like:
"Waiting for a different process to release the lock" or "Unlinking stale lockfile"

Actions #9

Updated by Markus Klein over 9 years ago

  • Status changed from Accepted to Needs Feedback
Actions #10

Updated by Tobias Klepp over 9 years ago

I tried to reproduce the error on our test server, but the result is different. If I deactivate an extension for example and call the website in the same moment, I get the following error:

Uncaught TYPO3 Exception
#1394480725: Could not acquire lock for ClassLoader cache creation. (More information)

RuntimeException thrown in file
/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php in line 723.

18 TYPO3\CMS\Core\Core\ClassLoader::acquireLock()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:

00487:   */
00488:  protected function buildPackageNamespacesAndClassesPaths() {

00489:   $didLock = $this->acquireLock();

00490: 
00491:   // Take a look again, after lock is acquired

17 TYPO3\CMS\Core\Core\ClassLoader::buildPackageNamespacesAndClassesPaths()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:

00455: 
00456:   if (!$this->loadPackageNamespacesFromCache()) {

00457:    $this->buildPackageNamespacesAndClassesPaths();

00458:   } else {
00459:    $this->classAliasMap->setPackages($packages);

16 TYPO3\CMS\Core\Core\ClassLoader::setPackages(array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Package/PackageManager.php:

00167:   */
00168:  public function updatePackagesForClassLoader() {

00169:   $this->classLoader->setPackages($this->activePackages);

00170:  }
00171: 

15 TYPO3\CMS\Core\Package\PackageManager::updatePackagesForClassLoader("ams_microsites", "TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::hasInstalledExtensions")

14 call_user_func_array(array, array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php:

00148:    }
00149: 

00150:    $slotReturn = call_user_func_array(array($object, $slotInformation['method']), $preparedSlotArguments);

00151: 
00152:    if ($slotReturn) {

13 TYPO3\CMS\Extbase\SignalSlot\Dispatcher::dispatch("TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService", "hasInstalledExtensions", array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extensionmanager/Classes/Service/ExtensionManagementService.php:

00289:   */
00290:  protected function emitHasInstalledExtension($extensionKey) {

00291:   $this->getSignalSlotDispatcher()->dispatch(__CLASS__, 'hasInstalledExtensions', array($extensionKey));

00292:  }
00293: 

12 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::emitHasInstalledExtension("ams_microsites")

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extensionmanager/Classes/Service/ExtensionManagementService.php:

00220:   foreach ($installQueue as $extensionKey => $extensionDetails) {
00221:    $this->installUtility->install($extensionDetails);

00222:    $this->emitHasInstalledExtension($extensionDetails);

00223:    if (!is_array($resolvedDependencies['installed'])) {
00224:     $resolvedDependencies['installed'] = array();

11 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::installDependencies(array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extensionmanager/Classes/Service/ExtensionManagementService.php:

00155:   $installQueue = $this->downloadQueue->getExtensionInstallStorage();
00156:   if (count($installQueue) > 0) {

00157:    $installedDependencies = $this->installDependencies($installQueue);

00158:   }
00159:   return array_merge($downloadedDependencies, $updatedDependencies, $installedDependencies);

10 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::resolveDependenciesAndInstall(TYPO3\CMS\Extensionmanager\Domain\Model\Extension)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php:

00076:       $this->installUtility->enrichExtensionWithDetails($extensionKey)
00077:      )

00078:     );

00079:    }
00080:   } catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {

9 TYPO3\CMS\Extensionmanager\Controller\ActionController::toggleExtensionInstallationStateAction("ams_microsites")

8 call_user_func_array(array, array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:

00298:    if (!$validationResult->hasErrors()) {
00299:     $this->signalSlotDispatcher->dispatch(__CLASS__, 'beforeCallActionMethod', array('controllerName' => get_class($this), 'actionMethodName' => $this->actionMethodName, 'preparedArguments' => $preparedArguments));

00300:     $actionResult = call_user_func_array(array($this, $this->actionMethodName), $preparedArguments);

00301:    } else {
00302:     $methodTagsValues = $this->reflectionService->getMethodTagsValues(get_class($this), $this->actionMethodName);

7 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::callActionMethod()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:

00169:    $this->initializeView($this->view);
00170:   }

00171:   $this->callActionMethod();

00172:  }
00173: 

6 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::processRequest(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Dispatcher.php:

00081:    $controller = $this->resolveController($request);
00082:    try {

00083:     $controller->processRequest($request, $response);

00084:    } catch (\TYPO3\CMS\Extbase\Mvc\Exception\StopActionException $ignoredException) {
00085:    }

5 TYPO3\CMS\Extbase\Mvc\Dispatcher::dispatch(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Web/BackendRequestHandler.php:

00045:   /** @var $response \TYPO3\CMS\Extbase\Mvc\ResponseInterface */
00046:   $response = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Mvc\\Web\\Response');

00047:   $this->dispatcher->dispatch($request, $response);

00048:   return $response;
00049:  }

4 TYPO3\CMS\Extbase\Mvc\Web\BackendRequestHandler::handleRequest()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Core/Bootstrap.php:

00207:   $requestHandler = $requestHandlerResolver->resolveRequestHandler();
00208: 

00209:   $response = $requestHandler->handleRequest();

00210:   // If response is NULL after handling the request we need to stop
00211:   // This happens for instance, when a USER object was converted to a USER_INT

3 TYPO3\CMS\Extbase\Core\Bootstrap::handleRequest()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Core/Bootstrap.php:

00196:  public function run($content, $configuration) {
00197:   $this->initialize($configuration);

00198:   return $this->handleRequest();

00199:  }
00200: 

2 TYPO3\CMS\Extbase\Core\Bootstrap::run("", array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Core/ModuleRunner.php:

00079: 
00080:   $bootstrap = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Core\\BootstrapInterface');

00081:   $content = $bootstrap->run('', $configuration);

00082:   print $content;
00083: 

1 TYPO3\CMS\Extbase\Core\ModuleRunner::callModule("tools_ExtensionmanagerExtensionmanager")

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/mod.php:

00049:   foreach ($TBE_MODULES['_dispatcher'] as $dispatcherClassName) {
00050:    $dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get($dispatcherClassName);

00051:    if ($dispatcher->callModule($moduleName) === TRUE) {

00052:     $isDispatched = TRUE;
00053:     break;

This error message only shows when development preset is activated. This message displayed in the backend and in the frontend.

The Apache error log looks like this:

[Mon Jun 30 10:01:43 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 [internal function]: spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Utility/GeneralUtility.php(4412): class_exists('TYPO3\\CMS\\Core\\...')\n#5 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Utility/GeneralUtility.php(4333): TYPO in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: http://test.adventist.org/
[Mon Jun 30 10:01:52 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(541): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(242): TYPO3\\CMS\\Core\\Core\\Bootstrap->initializeL10nLocales()\n#5 /var/vhosts/test.advent in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723
[Mon Jun 30 10:02:05 2014] [error] [client 77.232.231.14] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_extba...', 'TYPO3\\CMS\\Extba...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Extba...')\n#3 [internal function]: spl_autoload_call('TYPO3\\CMS\\Extba...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Utility/GeneralUtility.php(4412): class_exists('TYPO3\\CMS\\Extba...')\n#5 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Utility/GeneralUtility.php(4333): TYPO in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: https://test.adventist.org/typo3/backend.php
[Mon Jun 30 10:02:37 2014] [error] [client 77.232.231.14] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/ext_localconf.php(11): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php(1524): require('/var/vhosts/tes...')\n#5 /var/vhosts/test.adventist.org/html/t in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: https://test.adventist.org/typo3/backend.php
[Mon Jun 30 10:02:43 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/ext_localconf.php(25): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php(1524): require('/var/vhosts/tes...')\n#5 /var/vhosts/test.adventist.org/html/t in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: http://test.adventist.org/
[Mon Jun 30 10:04:23 2014] [error] [client 192.168.65.129] PHP Warning:  rename(/var/vhosts/test.adventist.org/html/typo3temp/Cache/Data/cache_classes/53b11a07d1c72.temp,/var/vhosts/test.adventist.org/html/typo3temp/Cache/Data/cache_classes/t3lib_cache_manager): No such file or directory in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php on line 244, referer: http://test.adventist.org/
[Mon Jun 30 10:04:54 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(308): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(233): TYPO3\\CMS\\Core\\Core\\Bootstrap->initializePackageManagement('TYPO3\\CMS\\Core\\...')\n in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: http://test.adventist.org/spirituality/
[Mon Jun 30 10:04:57 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(308): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(233): TYPO3\\CMS\\Core\\Core\\Bootstrap->initializePackageManagement('TYPO3\\CMS\\Core\\...')\n in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: http://test.adventist.org/
[Mon Jun 30 10:05:05 2014] [error] [client 77.232.231.14] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(308): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(233): TYPO3\\CMS\\Core\\Core\\Bootstrap->initializePackageManagement('TYPO3\\CMS\\Core\\...')\n in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: https://test.adventist.org/typo3/backend.php
[Mon Jun 30 10:05:51 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(308): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(233): TYPO3\\CMS\\Core\\Core\\Bootstrap->initializePackageManagement('TYPO3\\CMS\\Core\\...')\n in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: http://test.adventist.org/
[Mon Jun 30 10:07:06 2014] [error] [client 77.232.231.14] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3temp/Cache/Code/cache_core/ext_localconf_ddab55693a022cf1c66c02a41ca9da07a7d20bfd.php(26): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php(364): require_once('/var/vhosts/tes...')\n in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: https://test.adventist.org/typo3/backend.php
[Mon Jun 30 10:07:31 2014] [error] [client 77.232.231.14] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3temp/Cache/Code/cache_core/ext_localconf_ddab55693a022cf1c66c02a41ca9da07a7d20bfd.php(26): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php(364): require_once('/var/vhosts/tes...')\n in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: https://test.adventist.org/typo3/backend.php
[Mon Jun 30 10:11:12 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(541): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(242): TYPO3\\CMS\\Core\\Core\\Bootstrap->initializeL10nLocales()\n#5 /var/vhosts/test.advent in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: http://test.adventist.org/
[Mon Jun 30 10:11:15 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(541): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/Bootstrap.php(242): TYPO3\\CMS\\Core\\Core\\Bootstrap->initializeL10nLocales()\n#5 /var/vhosts/test.advent in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: http://test.adventist.org/spirituality/
[Mon Jun 30 10:12:07 2014] [error] [client 77.232.231.14] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/ext_localconf.php(11): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php(1524): require('/var/vhosts/tes...')\n#5 /var/vhosts/test.adventist.org/html/t in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723, referer: https://test.adventist.org/typo3/backend.php

Also a PHP rename warning is displayed.

[Mon Jun 30 10:04:23 2014] [error] [client 192.168.65.129] PHP Warning:  rename(/var/vhosts/test.adventist.org/html/typo3temp/Cache/Data/cache_classes/53b11a07d1c72.temp,/var/vhosts/test.adventist.org/html/typo3temp/Cache/Data/cache_classes/t3lib_cache_manager): No such file or directory in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php on line 244, referer: http://test.adventist.org/

On our live server we have a loadbalancer in front of 2 webservers and a shared file server over NFS. Maybe the problem of crashed class cache files is a result of this configuration?

The Apache error log has a lot of entries like this:

[Tue Jun 24 11:08:38 2014] [error] [client 192.168.65.129] PHP Fatal error:  Class 't3lib_div' not found in /var/vhosts/adventist.org/html/typo3conf/ext/realurl/class.tx_realurl.php on line 2249
[Thu Jun 26 11:25:35 2014] [error] [client 192.168.65.129] PHP Fatal error:  Interface 'Psr\\Log\\LoggerInterface' not found in /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Log/Logger.php on line 36
[Thu Jun 26 11:54:56 2014] [error] [client 192.168.65.129] PHP Warning:  require_once(/var/vhosts/adventist.org/html/typo3temp/Cache/Code/cache_core/PackageManager_3842abf6fc220947d198328706313c20.php): failed to open stream: No such file or directory in /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php on line 364
[Thu Jun 26 11:54:56 2014] [error] [client 192.168.65.129] PHP Fatal error:  require_once(): Failed opening required '/var/vhosts/adventist.org/html/typo3temp/Cache/Code/cache_core/PackageManager_3842abf6fc220947d198328706313c20.php' (include_path='/var/vhosts/adventist.org/html/typo3/contrib/pear/:.:/usr/share/pear:/usr/share/php') in /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php on line 364
[Thu Jun 26 11:55:07 2014] [error] [client 192.168.65.129] PHP Warning:  rename(/var/vhosts/adventist.org/html/typo3temp/Cache/Data/cache_classes/53abedfb12e1d.temp,/var/vhosts/adventist.org/html/typo3temp/Cache/Data/cache_classes/typo3_cms_core_registry): No such file or directory in /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php on line 244
[Thu Jun 26 11:55:27 2014] [error] [client 192.168.65.129] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not acquire lock for ClassLoader cache creation.' in /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:723\nStack trace:\n#0 /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(239): TYPO3\\CMS\\Core\\Core\\ClassLoader->acquireLock()\n#1 /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php(176): TYPO3\\CMS\\Core\\Core\\ClassLoader->buildCachedClassLoadingInformation('typo3_cms_core_...', 'TYPO3\\CMS\\Core\\...')\n#2 [internal function]: TYPO3\\CMS\\Core\\Core\\ClassLoader->loadClass('TYPO3\\CMS\\Core\\...')\n#3 /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Compatibility/LoadedExtensionsArray.php(81): spl_autoload_call('TYPO3\\CMS\\Core\\...')\n#4 /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Compatibility/LoadedExtensionsArray.php(150): TYPO3\\CMS\\Core\\Compatibility\\LoadedExtensionsArray->offsetGet('co in /var/vhosts/adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 723
[Thu Jun 26 11:56:44 2014] [error] [client 192.168.65.129] PHP Fatal error:  Class 't3lib_extMgm' not found in /var/vhosts/adventist.org/html/typo3temp/Cache/Code/cache_core/ext_localconf_40cf6dacade186771ee43c6d8887d13463b298c5.php on line 1447

There is nothing in the log module, because the request in the backend or frontend stops the process with an PHP error message.

Actions #11

Updated by Markus Klein over 9 years ago

So you're sharing typo3temp via NFS?

Actions #12

Updated by Tobias Klepp over 9 years ago

Yes. The complete webroot is shared via NFS.

Actions #13

Updated by Markus Klein over 9 years ago

Then you've the root cause. Locking very often does not work over NFS.

#1394480725: Could not acquire lock for ClassLoader cache creation.

Usually the solution is to let each server have it's own typo3temp folder, such that caches (and locks) remain local.

Actions #14

Updated by Alexander Opitz over 9 years ago

@Tobias

How many files do you have in typo3temp/locks ?
Is NFS Caching deactivated?

NFS isn't the best FS for this job you may need to think about a Distributed FS (like DRBD), Cluster or SharedStorage.

Actions #15

Updated by Tobias Klepp over 9 years ago

If each server has it's own typo3temp folder on the local harddrive, will the system be stable with a shared database? Is there a connection between existing cache files and the database?

We did a lot of testing with different maschines. The result is, that we only have this problems on the NFS maschines. TYPO3 4.5 works fine with NFS. Now with TYPO3 6.2 we run into this problem. In the typo3temp/locks directory we found up to 3 lock files always available.

These are the test results (enable/disable extension in extension manager and request frontend in the same moment):

Default Linux machine: no problems
Default Windows 7 machine: From time to time some error / warning messages displayed:

PHP Warning
PHP Warning: rename(C:/Daten/arbeit/www/typo3_62/typo3temp/Cache/Code/cache_core/53b272cd5b961.temp,C:/Daten/arbeit/www/typo3_62/typo3temp/Cache/Code/cache_core/tca_base_00e62693903f8d27ac450ffafb6398a57a603bc4.php): Zugriff verweigert (code: 5) in C:\Daten\arbeit\www\typo3_62\typo3\sysext\core\Classes\Cache\Backend\SimpleFileBackend.php line 244
Uncaught TYPO3 Exception
#1334756737: The temporary cache file "C:/Daten/arbeit/www/typo3_62/typo3temp/Cache/Data/cache_classes/53b275354a026.temp" could not be written. (More information)

TYPO3\CMS\Core\Cache\Exception thrown in file
C:\Daten\arbeit\www\typo3_62\typo3\sysext\core\Classes\Cache\Backend\SimpleFileBackend.php in line 241.

20 TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend::set("tx_recycler_module1", "C:/Daten/arbeit/www/typo3_62/typo3/sysext/recycler…oller\RecyclerModuleController�tx_recycler_module1", array, NULL)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\core\Classes\Cache\Frontend\StringFrontend.php:

00058:    }
00059:   }

00060:   $this->backend->set($entryIdentifier, $string, $tags, $lifetime);

00061:  }
00062: 

19 TYPO3\CMS\Core\Cache\Frontend\StringFrontend::set("tx_recycler_module1", "C:/Daten/arbeit/www/typo3_62/typo3/sysext/recycler…oller\RecyclerModuleController�tx_recycler_module1")

C:\Daten\arbeit\www\typo3_62\typo3\sysext\core\Classes\Core\ClassAliasMap.php:

00139:     foreach ($aliasClassNames as $aliasClassName) {
00140:      $aliasClassNameCacheEntryIdentifier = str_replace('\\', '_', strtolower($aliasClassName));

00141:      $this->classesCache->set($aliasClassNameCacheEntryIdentifier, $classLoadingInformation);

00142:     }
00143:    }

18 TYPO3\CMS\Core\Core\ClassAliasMap::buildMappingFiles(array)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\core\Classes\Core\ClassLoader.php:

00500:    $classNameToAliasMapping = $this->classAliasMap->setPackages($this->packages)->buildMappingAndInitializeEarlyInstanceMapping();
00501:    $this->loadClassFilesFromAutoloadRegistryIntoRuntimeClassInformationCache($this->packages);

00502:    $this->classAliasMap->buildMappingFiles($classNameToAliasMapping);

00503:    $this->transferRuntimeClassInformationCacheEntriesToClassesCache();
00504:   }

17 TYPO3\CMS\Core\Core\ClassLoader::buildPackageNamespacesAndClassesPaths()

C:\Daten\arbeit\www\typo3_62\typo3\sysext\core\Classes\Core\ClassLoader.php:

00455: 
00456:   if (!$this->loadPackageNamespacesFromCache()) {

00457:    $this->buildPackageNamespacesAndClassesPaths();

00458:   } else {
00459:    $this->classAliasMap->setPackages($packages);

16 TYPO3\CMS\Core\Core\ClassLoader::setPackages(array)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\core\Classes\Package\PackageManager.php:

00167:   */
00168:  public function updatePackagesForClassLoader() {

00169:   $this->classLoader->setPackages($this->activePackages);

00170:  }
00171: 

15 TYPO3\CMS\Core\Package\PackageManager::updatePackagesForClassLoader("ams_microsites", "TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::hasInstalledExtensions")

14 call_user_func_array(array, array)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\SignalSlot\Dispatcher.php:

00148:    }
00149: 

00150:    $slotReturn = call_user_func_array(array($object, $slotInformation['method']), $preparedSlotArguments);

00151: 
00152:    if ($slotReturn) {

13 TYPO3\CMS\Extbase\SignalSlot\Dispatcher::dispatch("TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService", "hasInstalledExtensions", array)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extensionmanager\Classes\Service\ExtensionManagementService.php:

00289:   */
00290:  protected function emitHasInstalledExtension($extensionKey) {

00291:   $this->getSignalSlotDispatcher()->dispatch(__CLASS__, 'hasInstalledExtensions', array($extensionKey));

00292:  }
00293: 

12 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::emitHasInstalledExtension("ams_microsites")

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extensionmanager\Classes\Service\ExtensionManagementService.php:

00220:   foreach ($installQueue as $extensionKey => $extensionDetails) {
00221:    $this->installUtility->install($extensionDetails);

00222:    $this->emitHasInstalledExtension($extensionDetails);

00223:    if (!is_array($resolvedDependencies['installed'])) {
00224:     $resolvedDependencies['installed'] = array();

11 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::installDependencies(array)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extensionmanager\Classes\Service\ExtensionManagementService.php:

00155:   $installQueue = $this->downloadQueue->getExtensionInstallStorage();
00156:   if (count($installQueue) > 0) {

00157:    $installedDependencies = $this->installDependencies($installQueue);

00158:   }
00159:   return array_merge($downloadedDependencies, $updatedDependencies, $installedDependencies);

10 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::resolveDependenciesAndInstall(TYPO3\CMS\Extensionmanager\Domain\Model\Extension)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extensionmanager\Classes\Controller\ActionController.php:

00076:       $this->installUtility->enrichExtensionWithDetails($extensionKey)
00077:      )

00078:     );

00079:    }
00080:   } catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {

9 TYPO3\CMS\Extensionmanager\Controller\ActionController::toggleExtensionInstallationStateAction("ams_microsites")

8 call_user_func_array(array, array)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\Mvc\Controller\ActionController.php:

00298:    if (!$validationResult->hasErrors()) {
00299:     $this->signalSlotDispatcher->dispatch(__CLASS__, 'beforeCallActionMethod', array('controllerName' => get_class($this), 'actionMethodName' => $this->actionMethodName, 'preparedArguments' => $preparedArguments));

00300:     $actionResult = call_user_func_array(array($this, $this->actionMethodName), $preparedArguments);

00301:    } else {
00302:     $methodTagsValues = $this->reflectionService->getMethodTagsValues(get_class($this), $this->actionMethodName);

7 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::callActionMethod()

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\Mvc\Controller\ActionController.php:

00169:    $this->initializeView($this->view);
00170:   }

00171:   $this->callActionMethod();

00172:  }
00173: 

6 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::processRequest(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\Mvc\Dispatcher.php:

00081:    $controller = $this->resolveController($request);
00082:    try {

00083:     $controller->processRequest($request, $response);

00084:    } catch (\TYPO3\CMS\Extbase\Mvc\Exception\StopActionException $ignoredException) {
00085:    }

5 TYPO3\CMS\Extbase\Mvc\Dispatcher::dispatch(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\Mvc\Web\BackendRequestHandler.php:

00045:   /** @var $response \TYPO3\CMS\Extbase\Mvc\ResponseInterface */
00046:   $response = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Mvc\\Web\\Response');

00047:   $this->dispatcher->dispatch($request, $response);

00048:   return $response;
00049:  }

4 TYPO3\CMS\Extbase\Mvc\Web\BackendRequestHandler::handleRequest()

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\Core\Bootstrap.php:

00207:   $requestHandler = $requestHandlerResolver->resolveRequestHandler();
00208: 

00209:   $response = $requestHandler->handleRequest();

00210:   // If response is NULL after handling the request we need to stop
00211:   // This happens for instance, when a USER object was converted to a USER_INT

3 TYPO3\CMS\Extbase\Core\Bootstrap::handleRequest()

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\Core\Bootstrap.php:

00196:  public function run($content, $configuration) {
00197:   $this->initialize($configuration);

00198:   return $this->handleRequest();

00199:  }
00200: 

2 TYPO3\CMS\Extbase\Core\Bootstrap::run("", array)

C:\Daten\arbeit\www\typo3_62\typo3\sysext\extbase\Classes\Core\ModuleRunner.php:

00079: 
00080:   $bootstrap = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Core\\BootstrapInterface');

00081:   $content = $bootstrap->run('', $configuration);

00082:   print $content;
00083: 

1 TYPO3\CMS\Extbase\Core\ModuleRunner::callModule("tools_ExtensionmanagerExtensionmanager")

C:\Daten\arbeit\www\typo3_62\typo3\mod.php:

00049:   foreach ($TBE_MODULES['_dispatcher'] as $dispatcherClassName) {
00050:    $dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get($dispatcherClassName);

00051:    if ($dispatcher->callModule($moduleName) === TRUE) {

00052:     $isDispatched = TRUE;
00053:     break;

NFS Linux machine (NFS is configured with the following options: nfs4 bg,hard,intr,rsize=8192,wsize=8192 0 0, Caching is not installed and activated): Almost every time an error / warning message displayed:

Uncaught TYPO3 Exception
#1394480725: Could not acquire lock for ClassLoader cache creation. (More information)

RuntimeException thrown in file
/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php in line 723.

15 TYPO3\CMS\Core\Core\ClassLoader::acquireLock()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:

00237:   $didLock = FALSE;
00238:   if (!$this->isEarlyCache) {

00239:    $didLock = $this->acquireLock();

00240:   }
00241: 

14 TYPO3\CMS\Core\Core\ClassLoader::buildCachedClassLoadingInformation("typo3_cms_extbase_mvc_exception_stopactionexception", "TYPO3\CMS\Extbase\Mvc\Exception\StopActionException")

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Core/ClassLoader.php:

00174:   // Handle a cache miss
00175:   if ($classLoadingInformation === FALSE) {

00176:    $classLoadingInformation = $this->buildCachedClassLoadingInformation($cacheEntryIdentifier, $className);

00177:   }
00178: 

13 TYPO3\CMS\Core\Core\ClassLoader::loadClass("TYPO3\CMS\Extbase\Mvc\Exception\StopActionException")

12 spl_autoload_call("TYPO3\CMS\Extbase\Mvc\Exception\StopActionException")

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php:

00372:   $this->response->setStatus($statusCode);
00373:   $this->response->setHeader('Location', (string) $uri);

00374:   throw new \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException();

00375:  }
00376: 

11 TYPO3\CMS\Extbase\Mvc\Controller\AbstractController::redirectToUri("https://test.adventist.org/typo3/mod.php?M=tools_E…ensionmanagerextensionmanager%5Bcontroller%5D=List", 0, 303)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php:

00345:   }
00346:   $uri = $this->uriBuilder->uriFor($actionName, $arguments, $controllerName, $extensionName);

00347:   $this->redirectToUri($uri, $delay, $statusCode);

00348:  }
00349: 

10 TYPO3\CMS\Extbase\Mvc\Controller\AbstractController::redirect("index", "List", NULL, array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php:

00084:    $this->addFlashMessage(htmlspecialchars($e->getMessage()), '', \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
00085:   }

00086:   $this->redirect('index', 'List', NULL, array(self::TRIGGER_RefreshModuleMenu => TRUE));

00087:  }
00088: 

9 TYPO3\CMS\Extensionmanager\Controller\ActionController::toggleExtensionInstallationStateAction("ams_microsites")

8 call_user_func_array(array, array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:

00298:    if (!$validationResult->hasErrors()) {
00299:     $this->signalSlotDispatcher->dispatch(__CLASS__, 'beforeCallActionMethod', array('controllerName' => get_class($this), 'actionMethodName' => $this->actionMethodName, 'preparedArguments' => $preparedArguments));

00300:     $actionResult = call_user_func_array(array($this, $this->actionMethodName), $preparedArguments);

00301:    } else {
00302:     $methodTagsValues = $this->reflectionService->getMethodTagsValues(get_class($this), $this->actionMethodName);

7 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::callActionMethod()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:

00169:    $this->initializeView($this->view);
00170:   }

00171:   $this->callActionMethod();

00172:  }
00173: 

6 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::processRequest(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Dispatcher.php:

00081:    $controller = $this->resolveController($request);
00082:    try {

00083:     $controller->processRequest($request, $response);

00084:    } catch (\TYPO3\CMS\Extbase\Mvc\Exception\StopActionException $ignoredException) {
00085:    }

5 TYPO3\CMS\Extbase\Mvc\Dispatcher::dispatch(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Mvc/Web/BackendRequestHandler.php:

00045:   /** @var $response \TYPO3\CMS\Extbase\Mvc\ResponseInterface */
00046:   $response = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Mvc\\Web\\Response');

00047:   $this->dispatcher->dispatch($request, $response);

00048:   return $response;
00049:  }

4 TYPO3\CMS\Extbase\Mvc\Web\BackendRequestHandler::handleRequest()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Core/Bootstrap.php:

00207:   $requestHandler = $requestHandlerResolver->resolveRequestHandler();
00208: 

00209:   $response = $requestHandler->handleRequest();

00210:   // If response is NULL after handling the request we need to stop
00211:   // This happens for instance, when a USER object was converted to a USER_INT

3 TYPO3\CMS\Extbase\Core\Bootstrap::handleRequest()

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Core/Bootstrap.php:

00196:  public function run($content, $configuration) {
00197:   $this->initialize($configuration);

00198:   return $this->handleRequest();

00199:  }
00200: 

2 TYPO3\CMS\Extbase\Core\Bootstrap::run("", array)

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Core/ModuleRunner.php:

00079: 
00080:   $bootstrap = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Core\\BootstrapInterface');

00081:   $content = $bootstrap->run('', $configuration);

00082:   print $content;
00083: 

1 TYPO3\CMS\Extbase\Core\ModuleRunner::callModule("tools_ExtensionmanagerExtensionmanager")

/var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/mod.php:

00049:   foreach ($TBE_MODULES['_dispatcher'] as $dispatcherClassName) {
00050:    $dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get($dispatcherClassName);

00051:    if ($dispatcher->callModule($moduleName) === TRUE) {

00052:     $isDispatched = TRUE;
00053:     break;

The frontend shows this fatal error:

Fatal error: Interface 'Psr\Log\LoggerInterface' not found in /var/vhosts/test.adventist.org/html/typo3_src-6.2.3/typo3/sysext/core/Classes/Log/Logger.php on line 36 

One lock file is available in the typo3temp/locks folder. After requesting the front end a second time, the lock file is deleted but the error message still displayed.

Actions #16

Updated by Alexander Opitz over 9 years ago

On the windows boxes I can't help.

#1334756737: The temporary cache file "C:/Daten/arbeit/www/typo3_62/typo3temp/Cache/Data/cache_classes/53b275354a026.temp" could not be written.

You need to find out why he can't write the temp file.

On the Linux NFS issue. I meant you need to deactivate the NFS caching. IMHO it should be enough to use lookupcache=none on the client, but I don't have such a system at the moment. More information on performance lose by disabling NFS caching: http://www.sebastien-han.fr/blog/2012/12/18/noac-performance-impact-on-web-applications/
But it might be, that it won't resolve the issue in every situation.

Moving the cache into memcached/redis won't help you as the cache looking only works with "SimpleFile" looking yet.

Actions #17

Updated by Alexander Opitz over 9 years ago

  • Status changed from Needs Feedback to Closed

No feedback within the last 90 days => closing this issue.

If you think that this is the wrong decision or experience this issue again, then please write to the mailing list typo3.teams.bugs with issue number and an explanation or open a new ticket and add a relation to this ticket number.

Actions #18

Updated by Björn Schmitt about 9 years ago

Don't know if it helps, we had a similar issue with 4.7 which sounds like this one here. TYPO3 crashes when re-building the cache in case the typo3temp folder is shared to many servers because of Fatals caused by competing write requests to the NFS share.

We solved it by linking the typo3temp/Cache folder to a local folder on each server.

Please let me know if it helps.

Actions

Also available in: Atom PDF