Bug #52524 proxy doesn't support semi-synch replication
Submitted: 1 Apr 2010 12:01 Modified: 12 May 2010 6:40
Reporter: Giuseppe Maxia Email Updates:
Status: No Feedback Impact on me:
Category:MySQL Proxy: Core Severity:S3 (Non-critical)
Version:0.8 OS:Any
Assigned to: CPU Architecture:Any
Tags: proxy, replication, semi-synch

[1 Apr 2010 12:01] Giuseppe Maxia
When Proxy is used between master and slave that use semi-synchronous replication, the additional communication between master and slave does not take place.


"If semisynchronous replication is enabled on the master side and there is at least one semisynchronous slave, a thread that performs a transaction commit on the master blocks after the commit is done and waits until at least one semisynchronous slave acknowledges that it has received all events for the transaction, or until a timeout occurs."

How to repeat:

1) install master and slave in replication, using a 5.5.2 server.
2) install a proxy, using the master as back end
3) using "change master to", set the slave to listen to the proxy port
4) enable semi-synch replication on master and slave
5) stop and start the slave
6) create a table on the master
   The query will take 10 seconds to return. It is the timeout on semi-synch 
   replication, which gives up waiting for the slave.

7) SHOW VARIABLES LIKE "Rpl_semi_sync_master_status"; # returns "OFF"

Repeat the above instructions, skipping items 2 and 3.
The query will return immediately and
Rpl_semi_sync_master_status returns "ON"

Suggested fix:
Allow proxy to handle semi-synch packets
[12 Apr 2010 6:40] Sveta Smirnova
Thank you for the report.

I can not repeat described behavior. Please provide CREATE TABLE statement you use. Please also indicate which binary log format do you use.
[12 Apr 2010 6:57] Sveta Smirnova
See bug #52753 also.
[12 May 2010 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".