2

We're trying to do a deployment of M2 open source 2.3.5-p1 using the Webgriffe M2 recipe for Deployer. Whilst running:

bin/magento setup:static-content:deploy en_GB en_US

We're getting:

In PluginList.php line 182:
  Plugin class Temando\Shipping\Plugin\View\MinificationPlugin doesn't exist

So it looks as though PluginList.php sees this as being an active plugin, but the class hasn't been defined.

Looking at the Composer files, it looks as though temando/module-shipping now requires temando/module-shipping-remover, so it's trying to remove this module, but it's still required for generating the static content. We're deploying in production mode.

Does anyone know the cause of this problem and how to fix?

  • having exact same problem right now for a production deployment. We also use deployer. Once I get this resolved I'll post an answer. – floorz Jul 22 at 18:43
0

Knowns:

  • Magento 2.3.5-p1 removes Temando_Shipping.
  • References to plugins are cached

For the deployment to complain about that file, it seems like it must be reading from the previous release's cache. Or if Redis is being used, the cache is being shared between the current release and the one in progress.

Possible Culprits:

  • Opcache? Opcache likes to hang on to references to old folders
  • Redis? is new deployment reading from current release cache
  • Something else?

Will add more as I find out...

Update

Successfully just deployed and got around this issue. For me it was Redis cache from the previous deployment interfering with the one in progress. What I ended up doing to get around it:

Pre-Deployment

1. Enabled Maintenance Mode

Manually ssh'd into the production server to enable maintenance mode:

Why?

  • Prevent customers/browsers from hitting website and causing redis to fill back up.
php bin/magento maintenance:enable

2. Disabled All Magento Crons

Temporarily commented out Magento cron's

Why?

  • Prevent crons from hitting magento / filling redis cache in any way.
crontab -e
// comment out crons in editor and save

3. Flushed Redis

Why?

  • To remove cache that is referencing Temando Shipping plugins

Your port numbers may be different

redis-cli -h redis -p 6381 flushall;
redis-cli -h redis -p 6382 flushall;

4. Ensure Cache Not Filling

Our codebase gets synced out to a cluster, so I had to make sure all nodes on the cluster were not serving Magento at all

  • Added a die statement at beginning of pub/index.php
  • Ran command to sync code to cluster

5. Verify Redis Cache Stays Empty

This was a key part that kept making my deployment fail even after flushing redis.

redis-cli -h redis -p 6381 KEYS '*'

Should show that there is an empty set/list


Deployment

1. Run Deployment

Run the deployment


Post-Deployment

1. Re-enable Crons

Don't want to forget to re-enable the crons

crontab -e
// uncomment out crons in editor and save
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.