Bug #75113 | Fail in failover of the connection in MySQL fabric | ||
---|---|---|---|
Submitted: | 5 Dec 2014 9:29 | Modified: | 3 Jun 2015 1:07 |
Reporter: | Akiharu Yamada | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Connector / J | Severity: | S2 (Serious) |
Version: | 5.1.34 | OS: | Any |
Assigned to: | Jess Balint | CPU Architecture: | Any |
Tags: | fabric, failover, Mysql Fabric |
[5 Dec 2014 9:29]
Akiharu Yamada
[5 Dec 2014 9:48]
Akiharu Yamada
The results when I succeeded in fail over are as follows. 1,SELECT,275 1,SELECT,0 1,SELECT,1 1,SELECT,1 1,SELECT,0 ----- SELECT ----- Error cause : null Error message: Server shutdown in progress Error status : 08S01 2,SELECT,0 2,SELECT,0 2,SELECT,1
[8 Dec 2014 1:56]
Akiharu Yamada
Result of diff command was incorrect. Correctly is as follows. also removes GROUP_MAP when close the handle of the connection. $ diff -c ReplicationConnectionGroupManager.java.old ReplicationConnectionGroupManager.java.new *** ReplicationConnectionGroupManager.java.old 2014-10-17 15:05:36.000000000 +0900 --- ReplicationConnectionGroupManager.java.new 2014-12-08 10:21:16.049604801 +0900 *************** *** 204,207 **** --- 204,211 ---- } + public static ReplicationConnectionGroup removeGroup( String groupName ) + { + return( GROUP_MAP.remove(groupName) ); + } } $ diff -c ReplicationConnection.java.old ReplicationConnection.java.new *** ReplicationConnection.java.old 2014-10-17 15:05:36.000000000 +0900 --- ReplicationConnection.java.new 2014-12-08 10:12:35.378693020 +0900 *************** *** 243,248 **** --- 243,249 ---- if (this.connectionGroup != null) { this.connectionGroup.handleCloseConnection(this); + ReplicationConnectionGroupManager.removeGroup( this.connectionGroup.getGroupName() ); } } *************** *** 2839,2844 **** --- 2840,2846 ---- getCurrentConnection().abort(executor); if (this.connectionGroup != null) { this.connectionGroup.handleCloseConnection(this); + ReplicationConnectionGroupManager.removeGroup( this.connectionGroup.getGroupName() ); } } *************** *** 2878,2883 **** --- 2880,2886 ---- getCurrentConnection().abortInternal(); if (this.connectionGroup != null) { this.connectionGroup.handleCloseConnection(this); + ReplicationConnectionGroupManager.removeGroup( this.connectionGroup.getGroupName() ); } }
[2 Apr 2015 15:31]
Jess Balint
Thank you for your bug report.
[2 Jun 2015 19:08]
Daniel So
Added the following entry to the Connector/J 5.1.36 changelog: "A failover did not occur for a MySQL Fabric connection during the failure of a master server. It was because the state change of the Fabric connection group was not handled properly, which hs been corrected by this fix."
[3 Jun 2015 1:07]
Akiharu Yamada
Thank you for bug fixes.