[wp-trac] [WordPress Trac] #62964: WordPress Master-Master Replication Conflicts Caused by Gutenberg Blocks

WordPress Trac noreply at wordpress.org
Fri Feb 14 07:48:36 UTC 2025


#62964: WordPress Master-Master Replication Conflicts Caused by Gutenberg Blocks
--------------------------+------------------------------
 Reporter:  copytrans     |       Owner:  (none)
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Awaiting Review
Component:  Editor        |     Version:  6.7.2
 Severity:  normal        |  Resolution:
 Keywords:                |     Focuses:
--------------------------+------------------------------
Changes (by dd32):

 * component:  Bootstrap/Load => Editor


Old description:

> Our company uses a WordPress setup with two servers behind a load
> balancer, and we rely on master-master MySQL replication. To prevent
> replication conflicts, cron jobs are configured to run only on a single
> server. This setup has worked seamlessly for several years, but we
> started encountering weekly replication conflicts around two months ago.
>
> The conflict occurs with the following SQL queries:
>
> ```sql
> ### DELETE FROM `fr_wp`.`wp_sitemeta`
> ### WHERE
> ###   @1=385338
> ###   @2=1
> ###   @3='_site_transient_wp_theme_files_patterns-
> 39b075616449d092b365a81b6f9d3e6d'
> ###   @4='a:2:{s:7:"version";s:0:"";s:8:"patterns";a:0:{}}'
>
> ### DELETE FROM `fr_wp`.`wp_sitemeta`
> ### WHERE
> ###   @1=385336
> ###   @2=1
> ###   @3='_site_transient_timeout_wp_theme_files_patterns-
> 39b075616449d092b365a81b6f9d3e6d'
> ###   @4='1737837003'
> # at 150934730
> ```
>
> Upon reviewing the WordPress source code, I identified that these
> conflicts are caused by the WordPress function
> {{{_register_theme_block_patterns}}} being executed at the exact same
> time on both servers.
>
> Since our site does not use Gutenberg blocks, we resolved the issue by
> preventing this function from being executed:
>
> {{{#!php
> <?php
> remove_action('init', '_register_theme_block_patterns');
> }}}

New description:

 Our company uses a WordPress setup with two servers behind a load
 balancer, and we rely on master-master MySQL replication. To prevent
 replication conflicts, cron jobs are configured to run only on a single
 server. This setup has worked seamlessly for several years, but we started
 encountering weekly replication conflicts around two months ago.

 The conflict occurs with the following SQL queries:

 {{{#!sql
 ### DELETE FROM `fr_wp`.`wp_sitemeta`
 ### WHERE
 ###   @1=385338
 ###   @2=1
 ###   @3='_site_transient_wp_theme_files_patterns-
 39b075616449d092b365a81b6f9d3e6d'
 ###   @4='a:2:{s:7:"version";s:0:"";s:8:"patterns";a:0:{}}'

 ### DELETE FROM `fr_wp`.`wp_sitemeta`
 ### WHERE
 ###   @1=385336
 ###   @2=1
 ###   @3='_site_transient_timeout_wp_theme_files_patterns-
 39b075616449d092b365a81b6f9d3e6d'
 ###   @4='1737837003'
 # at 150934730
 }}}

 Upon reviewing the WordPress source code, I identified that these
 conflicts are caused by the WordPress function
 {{{_register_theme_block_patterns}}} being executed at the exact same time
 on both servers.

 Since our site does not use Gutenberg blocks, we resolved the issue by
 preventing this function from being executed:

 {{{#!php
 <?php
 remove_action('init', '_register_theme_block_patterns');
 }}}

--

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/62964#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list