rhubarbgroup / redis-cache

A persistent object cache backend for WordPress powered by Redis. Supports Predis, PhpRedis, Relay, replication, sentinels, clustering and WP-CLI.
https://wordpress.org/plugins/redis-cache/
GNU General Public License v3.0
425 stars 148 forks source link

Yoast timeouts #508

Closed tillkruss closed 5 months ago

tillkruss commented 6 months ago

There have been many reports about Yoast using group flushing. Maybe those EVAL calls need their own timeout.

[01-Mar-2024 06:15:30 UTC] RedisException: socket error on read socket in /home/www/cc.cz/subdomains/www/wp-content/object-cache.php:1826
Stack trace:
#0 /home/www/cc.cz/subdomains/www/wp-content/object-cache.php(1826): Redis->eval()
#1 /home/www/cc.cz/subdomains/www/wp-content/object-cache.php(1726): WP_Object_Cache->{closure}()
#2 /home/www/cc.cz/subdomains/www/wp-content/object-cache.php(162): WP_Object_Cache->flush_group()
#3 /home/www/cc.cz/subdomains/www/wp-content/plugins/wordpress-seo/src/builders/indexable-link-builder.php(710): wp_cache_flush_group()
#4 /home/www/cc.cz/subdomains/www/wp-content/plugins/wordpress-seo/src/builders/indexable-link-builder.php(623): Yoast\WP\SEO\Builders\Indexable_Link_Builder->update_incoming_links_for_related_indexables()
#5 /home/www/cc.cz/subdomains/www/wp-content/plugins/wordpress-seo/src/builders/indexable-link-builder.php(136): Yoast\WP\SEO\Builders\Indexable_Link_Builder->update_related_indexables()
#6 /home/www/cc.cz/subdomains/www/wp-content/plugins/wordpress-seo/src/integrations/watchers/indexable-post-watcher.php(209): Yoast\WP\SEO\Builders\Indexable_Link_Builder->build()
#7 /home/www/cc.cz/subdomains/www/wp-includes/class-wp-hook.php(326): Yoast\WP\SEO\Integrations\Watchers\Indexable_Post_Watcher->build_indexable()
#8 /home/www/cc.cz/subdomains/www/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
#9 /home/www/cc.cz/subdomains/www/wp-includes/plugin.php(517): WP_Hook->do_action()
#10 /home/www/cc.cz/subdomains/www/wp-includes/post.php(4771): do_action()
#11 /home/www/cc.cz/subdomains/www/wp-includes/post.php(4862): wp_insert_post()
#12 /home/www/cc.cz/subdomains/www/wp-admin/includes/post.php(453): wp_update_post()
#13 /home/www/cc.cz/subdomains/www/wp-admin/post.php(227): edit_post()
#14 {main}
tillkruss commented 6 months ago

@yatsukhnenko: We need to use our new WP_REDIS_FLUSH_TIMEOUT constant for EVAL scripts, mostly $cache->flush_group().

Can you open a PR for this?