Bug #23525 Bug Fixed

failed update to 4.1.2

Version: 4.1.2 Reporter: Büro Ballmann Weber

dear ee-support,

I just tried to install your newest update when I ran into this error-message right after hitting “update”:

Warning Zend OPcache API is restricted by “restrict_api” configuration directive ee/EllisLab/ExpressionEngine/Service/Updater/Runner.php, line 108

Severity: E_WARNING

kindest regards, matthias

  • Hi Matthias, sorry about this. We can suppress and avoid that error, but it’s in indication that your server environment might not be segregating PHP processes very cleanly. If the opcache cannot be cleared, then depending on their configuration, when the updater downloads and replaces your files, PHP may still execute from the stale cache, which could result in an even worse failure. Do you mind sharing who the host is? Is it a “cloud”-based service by chance?

    In the meantime, you should be able to perform a simple manual update until this issue is addressed.

    Derek Jones
    13th March, 2018 at 10:16pm
  • Thanks for the heads up, Matthias.

    We’ve got a fix in for the next release.

    Robin Sowell
    15th March, 2018 at 7:01pm

You must be signed in to comment on a bug report.

  • In system/ee/installer/controllers/wizard.php around line 2019 edit to:

    // Clear any caches of the config file
         if (function_exists('apc_delete_file'))
         {
          @apc_delete_file($this->config->config_path) || apc_clear_cache();
         }
    
         if (function_exists('opcache_invalidate'))
         {
          // Check for restrict_api path restriction
          if (($opcache_api_path = ini_get('opcache.restrict_api')) && stripos(SYSPATH, $opcache_api_path) !== 0)
          {
           return TRUE;
          }
    
          opcache_invalidate($this->config->config_path);
         }
    
         return TRUE;
        }

    and in system/ee/installer/updater/EllisLab/ExpressionEngine/Updater/Service/Updater/Runner.php around 277

    if (function_exists('opcache_reset'))
       {
          // Check for restrict_api path restriction
          if (($opcache_api_path = ini_get('opcache.restrict_api')) && stripos(SYSPATH, $opcache_api_path) !== 0)
          {
           return;
          }
    
        opcache_reset();
       }
.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases