На днях вышел WooCommerce 5.5.2. Этот релиз является продолжением к принудительному обновлению безопасности, которое устраняло уязвимость с SQL-инъекциями на прошлой неделе. Уязвимость затронула версии 3.3-5.5 плагина WooCommerce, а также версии 2.5-5.5 плагина WooCommerce Blocks. Команда выпустила патч для более 90 релизов, и этот патч был развернут в виде принудительного обновления безопасности через WordPress.org, поскольку уязвимость имела потенциальную угрозу для миллионов установок WooCommerce.
Вскоре после установки автоматического обновления многие владельцы магазинов стали сообщать о серьезных проблемах с производительностью. Некоторые пользователи сообщали о сбоях БД после установки автоматического обновления безопасности. Один из пользователей упомянул о бесконечном запросе, который попросту мешал функционировать магазину; у других пользователей аналогичный запрос приводил к серверным сбоям.
Пример такого запроса:
SELECT SQL_CALC_FOUND_ROWS wp_posts.*, low_stock_amount_meta.meta_value AS low_stock_amount, MAX( product_lookup.date_created ) AS last_order_date FROM wp_posts LEFT JOIN wp_wc_product_meta_lookup wc_product_meta_lookup ON wp_posts.ID = wc_product_meta_lookup.product_id LEFT JOIN wp_postmeta AS low_stock_amount_meta ON wp_posts.ID = low_stock_amount_meta.post_id AND low_stock_amount_meta.meta_key = '_low_stock_amount' LEFT JOIN wp_wc_order_product_lookup product_lookup ON wp_posts.ID = CASE WHEN wp_posts.post_type = 'product' THEN product_lookup.product_id WHEN wp_posts.post_type = 'product_variation' THEN product_lookup.variation_id END WHERE 1=1 AND wp_posts.post_type IN ('product', 'product_variation') AND ((wp_posts.post_status = 'publish')) AND wc_product_meta_lookup.stock_quantity IS NOT NULL AND wc_product_meta_lookup.stock_status IN('instock','outofstock') AND ( ( low_stock_amount_meta.meta_value > '' AND wc_product_meta_lookup.stock_quantity <= CAST(low_stock_amount_meta.meta_value AS SIGNED) ) OR ( ( low_stock_amount_meta.meta_value IS NULL OR low_stock_amount_meta.meta_value <= '' ) AND wc_product_meta_lookup.stock_quantity <= 2 ) ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC, wp_posts.ID DESC LIMIT 0, 1
Чаще других страдали те, у кого в БД было много продуктов. «У нас огромная база продуктов – 17 тысяч», — отметил один из пользователей. – «Это стало настоящим кошмаром для нас».
Владельцы магазинов, затронутые данной проблемой, по рекомендациям разработчиков WooCommerce откатились к прошлым версиям. Они поделились временными обходными путями, позволяющими отключить проблемный запрос, пока WooCommerce не предложит адекватный фикс.
Неделю назад разработчик WooCommerce Адриан Даффелл сообщил, что они нашли две причины имеющейся проблемы:
- Медленный SQL-запрос, используемый для получения товаров, которых мало в наличии. Этот SQL-запрос присутствовал в WooCommerce в нескольких релизах.
- Вызов REST API, который связан с этим SQL-запросом, осуществляется в WooCommerce 5.5 в несколько раз чаще, чем в прошлых версиях.
Сочетание этих факторов приводило к снижению производительности сервера при обновлении пользователей до WooCommerce 5.5. Фикс был выпущен в WooCommerce Admin 2.4.4 и в WooCommerce 5.5.2. Пользователи, применяющие обходные пути для устранения проблемы, могут отказаться от них после обновления до свежего релиза.
![](/mark_r_img.png)
Позитивные реальные шлюхи Астрахани по вызову, восхитительные и горячие, они такие активные и стройные, что интимный досуг тебе обеспечен. Выбери девушку сейчас. Встретят тебя в уютной квартирке, реальные шлюхи Астрахани по вызову, а можно и подружек. Чего бы вы не пожелали, просто скажите проститутке об этом по телефону, и при встрече она выполнит каждое ваше желание.