Bug #45674 FLUSH STATUS does not reset semisynchronous counters
| Submitted: | 23 Jun 2009 11:22 | Modified: | 12 Nov 2009 14:48 |
|---|---|---|---|
| Reporter: | Philip Stoev | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
| Version: | 5.4 | OS: | Any |
| Assigned to: | Zhenxing He | CPU Architecture: | Any |
[23 Jun 2009 11:22]
Philip Stoev
[17 Sep 2009 9:09]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/83562 3605 He Zhenxing 2009-09-17 BUG#45674 FLUSH STATUS does not reset semisynchronous counters Semi-sync status were not reset by FLUSH STATUS, this was because all semi-sync status variables are defined as SHOW_FUNC and FLUSH STATUS could only reset SHOW_LONG type variables. This problem is fixed by change all status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG. After the fix, the following status variables will be reset by FLUSH STATUS: Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx Note: normally, FLUSH STATUS itself will be written into binlog and be replicated, so after FLUSH STATS, one of Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx can be 1 dependent on the semi-sync status. So it's recommended to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this. @ mysql-test/suite/rpl/t/rpl_semi_sync.test Test FLUSH STATUS will reset certain semi-sync status variables @ plugin/semisync/semisync_master.cc Use the global status variable directly instead of the status member variables @ plugin/semisync/semisync_master.h Remove status member variables from ReplSemiSyncMaster Renamed variables to make them consistent with the corresponding server status variables. @ plugin/semisync/semisync_master_plugin.cc Changed status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG, because FLUSH STATUS can only reset SHOW_LONG type variables.
[17 Sep 2009 9:10]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/83563 3605 He Zhenxing 2009-09-17 BUG#45674 FLUSH STATUS does not reset semisynchronous counters Semi-sync status were not reset by FLUSH STATUS, this was because all semi-sync status variables are defined as SHOW_FUNC and FLUSH STATUS could only reset SHOW_LONG type variables. This problem is fixed by change all status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG. After the fix, the following status variables will be reset by FLUSH STATUS: Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx Note: normally, FLUSH STATUS itself will be written into binlog and be replicated, so after FLUSH STATS, one of Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx can be 1 dependent on the semi-sync status. So it's recommended to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this. @ mysql-test/suite/rpl/r/rpl_semi_sync.result Update test result @ mysql-test/suite/rpl/t/rpl_semi_sync.test Test FLUSH STATUS will reset certain semi-sync status variables @ plugin/semisync/semisync_master.cc Use the global status variable directly instead of the status member variables @ plugin/semisync/semisync_master.h Remove status member variables from ReplSemiSyncMaster Renamed variables to make them consistent with the corresponding server status variables. @ plugin/semisync/semisync_master_plugin.cc Changed status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG, because FLUSH STATUS can only reset SHOW_LONG type variables.
[26 Sep 2009 10:33]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/84716 3605 He Zhenxing 2009-09-26 BUG#45674 FLUSH STATUS does not reset semisynchronous counters Semi-sync status were not reset by FLUSH STATUS, this was because all semi-sync status variables are defined as SHOW_FUNC and FLUSH STATUS could only reset SHOW_LONG type variables. This problem is fixed by change all status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG. After the fix, the following status variables will be reset by FLUSH STATUS: Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx Note: normally, FLUSH STATUS itself will be written into binlog and be replicated, so after FLUSH STATS, one of Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx can be 1 dependent on the semi-sync status. So it's recommended to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this. @ mysql-test/suite/rpl/r/rpl_semi_sync.result Update test result @ mysql-test/suite/rpl/t/rpl_semi_sync.test Test FLUSH STATUS will reset certain semi-sync status variables @ plugin/semisync/semisync_master.cc Use the global status variable directly instead of the status member variables @ plugin/semisync/semisync_master.h Remove status member variables from ReplSemiSyncMaster Renamed variables to make them consistent with the corresponding server status variables. @ plugin/semisync/semisync_master_plugin.cc Changed status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG, because FLUSH STATUS can only reset SHOW_LONG type variables.
[26 Sep 2009 10:37]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/84717 2838 He Zhenxing 2009-09-26 [merge] Merge BUG#45674 to 6.0-codebase-bugfixing
[30 Sep 2009 4:00]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/85121 3628 He Zhenxing 2009-09-30 BUG#45674 FLUSH STATUS does not reset semisynchronous counters Semi-sync status were not reset by FLUSH STATUS, this was because all semi-sync status variables are defined as SHOW_FUNC and FLUSH STATUS could only reset SHOW_LONG type variables. This problem is fixed by change all status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG. After the fix, the following status variables will be reset by FLUSH STATUS: Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx Note: normally, FLUSH STATUS itself will be written into binlog and be replicated, so after FLUSH STATS, one of Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx can be 1 dependent on the semi-sync status. So it's recommended to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this. @ mysql-test/suite/rpl/r/rpl_semi_sync.result Update test result @ mysql-test/suite/rpl/t/rpl_semi_sync.test Test FLUSH STATUS will reset certain semi-sync status variables @ plugin/semisync/semisync_master.cc Use the global status variable directly instead of the status member variables @ plugin/semisync/semisync_master.h Remove status member variables from ReplSemiSyncMaster Renamed variables to make them consistent with the corresponding server status variables. @ plugin/semisync/semisync_master_plugin.cc Changed status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG, because FLUSH STATUS can only reset SHOW_LONG type variables.
[9 Oct 2009 8:48]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@ibmvm-20091009083208-0o0f0i9w1sq3c1kn) (version source revid:zhenxing.he@sun.com-20090930040024-ns9117k6khr4a9f6) (merge vers: 6.0.14-alpha) (pib:12)
[9 Oct 2009 10:09]
Jon Stephens
Documented fix in the 6.0.14 changelog as follows:
FLUSH STATUS failed to reset the status variables
Rpl_semi_sync_master_yes_tx and Rpl_semi_sync_master_no_tx.
Set to NDI, waiting for 5.4 push. (?)
[12 Oct 2009 13:03]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/86575 3116 He Zhenxing 2009-10-12 BUG#45674 FLUSH STATUS does not reset semisynchronous counters Semi-sync status were not reset by FLUSH STATUS, this was because all semi-sync status variables are defined as SHOW_FUNC and FLUSH STATUS could only reset SHOW_LONG type variables. This problem is fixed by change all status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG. After the fix, the following status variables will be reset by FLUSH STATUS: Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx Note: normally, FLUSH STATUS itself will be written into binlog and be replicated, so after FLUSH STATS, one of Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx can be 1 dependent on the semi-sync status. So it's recommended to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this.
[18 Oct 2009 12:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/87241 3119 He Zhenxing 2009-10-18 Postfix of bug#45674 rpl_semi_sync_master_wait_sessions was reset by FLUSH STATUS, which could cause the master fail to wake up waiting sessions and result in master timeout waiting for slave reply. rpl_semi_sync_master_wait_session should not be reset, this problem is fixed by this patch. @ plugin/semisync/semisync_master_plugin.cc Change wait_sessions from SHOW_LONG back to SHOW_FUNC so that it will not be reset by FLUSH STATUS.
[27 Oct 2009 9:49]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091027094604-9p7kplu1vd2cvcju) (version source revid:zhenxing.he@sun.com-20091026140226-uhnqejkyqx1aeilc) (merge vers: 6.0.14-alpha) (pib:13)
[28 Oct 2009 6:34]
Jon Stephens
Already documented in 6.0.14 changelog; re-closing.
[12 Nov 2009 8:18]
Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091110093229-0bh5hix780cyeicl) (version source revid:alik@sun.com-20091027095744-rf45u3x3q5d1f5y0) (merge vers: 5.5.0-beta) (pib:13)
[12 Nov 2009 14:48]
Jon Stephens
Also documented in the 5.5.0 changelog; closed.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.076 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.