Support

Akeeba Backup for Joomla!

#34719 Backup 8.0.2 may still throw an error on install

Posted in ‘Akeeba Backup for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
n/a
PHP version
n/a
Akeeba Backup version
n/a

Latest post by nicholas on Wednesday, 03 March 2021 12:36 CST

21stCenturyWeb

Please look at the bottom of this page (under Support Policy Summary) for our support policy summary, containing important information regarding our working hours and our support policy. Thank you!


EXTREMELY IMPORTANT: Please attach a ZIP file containing your Akeeba Backup log file in order for us to help you with any backup or restoration issue. If the file is over 2Mb, please upload it on your server and post a link to it.


Description of my issue:

This is information for others as there are still issues. Going from backup version 7.5.1 to 8.0.2 may still throw an error. If you do the install a second time, it appears to clear. I have not seen the issue going from 8.0.1 to 8.0.2.

Also, in several updates from 7.5.1 to 8.0.2 this morning, it appears that the backup before update system plugin was inactivated. Just 3 sites I believe, but I have to go back and check.

"Learn to code," they said. "It will be fun," they said.

Are we having fun yet? Smile. Tomorrow's another day.

nicholas
Akeeba Staff
Manager

It may. It's an opcache issue. While we try to use opcache_invalidate() on the file that was triggering the error there is absolutely no guarantee that this will work. It depends on the PHP configuration, whether PHP actually invalidates the file and whether another plugin has already loaded the file that is causing the problem (administrator/components/com_akeeba/Container.php).

Doing the double install in a row WILL work in most cases because:

  • if it's an opcache issue our post-installation code runs opcache_reset() which invalidates the entire opcode cache (PHP opcache) starting with the next request, i.e. the one after the failed installation.
  • if it's a plugin our pre-installlation code has cut its balls deleted its files which means that in the next installation attempt it will NOT be loading.

This would all be prevented, of course, if Joomla was a decent CMS. I had written a white paper circa 2012 about how to improve the extensions installer. Part of that was running the pre-installation, installation and post-installation in separate page loads to avoid this exact kind of issues. The pre-installation code would be disabling the plugins being updated and clearing the opcache (for the next page load, i.e. the installation / update), the installation / update code would run in a new page load without these plugins interfering and with opcache reset (and reset it again since it has just installed a bunch of new .php files), the post-installation would also run clean and re-enable the previously disabled plugins. This also had a provision for a roll-back in case any part of the installation process fails. Of course the "enlightened" leaders don't really understand any of that and this proposal went exactly nowhere.

All I can do now is have my pre-installation code try to do as much as it can but it CAN NOT unload PHP classes; PHP doesn't support that. So if it comes down to having to replace a class already in use you will get an error and you will have to run the update once again.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!