?
avatar nikosdion
nikosdion
20 May 2017

Steps to reproduce the issue

  • Create a new Joomla! site
  • Go to Global Configuration
  • Set System Cache to ON - Conservative Caching
  • Install a component through a package, e.g. Akeeba Backup Core.
  • Immediately after the installation is complete click on the Components menu and click the menu item of the component, e.g. Component, Akeeba Backup

Expected result

The component I just installed opens.

Actual result

404 Component Not Found

The problem persists throughout the cache time. If I go to System, Clear Cache and clear the Administrator cache it works. Therefore the problem is definitely related to the global cache.

System information (as much as possible)

Irrelevant, but here you go:

  • Joomla! 3.7.1 stable
  • Linux (Kubuntu 17.04) with Apache/2.4.25 (Ubuntu) and PHP 7.0.18 with the following version info.
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.18-0ubuntu0.17.04.1, Copyright (c) 1999-2017, by Zend Technologies
    with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans

This information is irrelevant since another site without global caching worked perfectly. Also see comments above regarding deleting the cache making it work just fine...

Additional comments

Nearly three years ago in Joomla Bug Sprint 2014 in Manchester we had fixed a series of similar bugs with modules and plugins. I remember that because @brianteeman was counting down the last 5' while I was racing against his countdown to write the patch and send the PR ? Joomla would cache the results of queries to the extensions table. What I did back then is add a couple of lines of code to clear that cache when we were publishing / unpublishing modules and plugins. I bet you need to do the same thing when installing extensions.

avatar nikosdion nikosdion - open - 20 May 2017
avatar joomla-cms-bot joomla-cms-bot - change - 20 May 2017
Labels Added: ?
avatar joomla-cms-bot joomla-cms-bot - labeled - 20 May 2017
avatar brianteeman
brianteeman - comment - 20 May 2017

Why anything is ever cached in the administration is beyond me

avatar franz-wohlkoenig franz-wohlkoenig - change - 20 May 2017
Category com_cache Plugins
avatar mbabker
mbabker - comment - 20 May 2017

If #15606 would ever get merged...

avatar nikosdion
nikosdion - comment - 20 May 2017

Am I correct in assuming that if my post-installation script clears the _system cache in both sides of the application the problem I experienced would be solved?

avatar mbabker
mbabker - comment - 20 May 2017

Yes. JComponentHelper::load() caches the component data in the _system group. If you're doing something with plugins, JPluginHelper::load() uses the com_plugins group.

avatar nikosdion
nikosdion - comment - 20 May 2017

Thank you. I will modify all my post-installation scripts since I have to still support Joomla! 3.4.0 to 3.7.1.

avatar franz-wohlkoenig franz-wohlkoenig - change - 20 May 2017
Status New Discussion
avatar nikosdion nikosdion - change - 21 May 2017
Status Discussion Closed
Closed_Date 0000-00-00 00:00:00 2017-05-21 07:36:20
Closed_By nikosdion
avatar nikosdion nikosdion - close - 21 May 2017
avatar nikosdion
nikosdion - comment - 21 May 2017

I can confirm that the problem was reproducible on other environments with the defining parameter being the use of caching in Global Configuration. I can also confirm that cleaning the cache in my post-installation script as discussed above does solve the problem. Finally, applying gh-15606 also solves the problem without the workaround. So indeed it's a caching issue and gh-15606 solves it. I am therefore closing this issue.

Add a Comment

Login with GitHub to post a comment