WooCommerce выпустила версию 5.5.2 как продолжение принудительного обновления безопасности, которое на прошлой неделе исправило уязвимость SQL Injection . Уязвимость затронула версии 3.3–5.5 плагина WooCommerce , а также версии 2.5–5.5 плагина функции WooCommerce Blocks . Команда создала патч для более чем 90 выпусков, который был отправлен как принудительное обновление безопасности с WordPress.org из-за потенциальной серьезности воздействия на миллионы установок WooCommerce.
Вскоре после выпуска автоматического обновления многие владельцы магазинов начали сообщать о серьезных проблемах с производительностью как на WordPress.org, так и на GitHub. Некоторые пользователи сообщали о сбоях базы данных после получения автоматического исправления безопасности в 5.5.1. Один пользователь сообщил о мучительно медленном, бесконечном запросе, который «мешал нашим операциям», и аналогичные отчеты на GitHub о том же запросе « привели к остановке всего сервера ».
Чаще страдали те, у кого в базах данных было большое количество продуктов. «У нас довольно большая база данных – 17 тыс. Продуктов», – сказал один из пользователей . «Это был кошмар».
Владельцы магазинов, затронутые этой проблемой, по рекомендации WooCommerce вернулись к предыдущим версиям. Они поделились временными обходными путями, чтобы отключить запрос, пока WooCommerce исследует проблему. О проблеме так часто сообщали, что ее решение стало для команды первоочередной задачей.
Неделю назад разработчик WooCommerce Адриан Даффелл сообщил, что они определили, что причина была двоякой:
- Медленный SQL-запрос, используемый для получения товаров, которых нет в наличии. Этот SQL был в WooCommerce в нескольких выпусках.
- Запрос REST API, который выполняет этот SQL-запрос, вызывается в WooCommerce 5.5 чаще, чем в предыдущих версиях.
Сочетание этих факторов приводило к снижению производительности сервера при обновлении пользователей до WooCommerce 5.5. Исправление было выпущено в WooCommerce Admin 2.4.4 три дня назад, и исправление также было добавлено в ядро сегодня в версии 5.5.2. Пользователям, которые использовали обходные пути, рекомендуется удалить их после обновления до последней версии.