From d19b8cc2bb6e3e51f6f30ca9b35183cc08e32128 Mon Sep 17 00:00:00 2001 From: joccau Date: Tue, 8 Feb 2022 20:06:11 +0800 Subject: [PATCH 1/2] update binlog status when disable skip binlog Signed-off-by: joccau --- sessionctx/binloginfo/binloginfo.go | 1 + 1 file changed, 1 insertion(+) diff --git a/sessionctx/binloginfo/binloginfo.go b/sessionctx/binloginfo/binloginfo.go index c39746bef55c9..5c2391e418226 100644 --- a/sessionctx/binloginfo/binloginfo.go +++ b/sessionctx/binloginfo/binloginfo.go @@ -121,6 +121,7 @@ func EnableSkipBinlogFlag() { // DisableSkipBinlogFlag disable the skipBinlog flag. func DisableSkipBinlogFlag() { atomic.StoreUint32(&skipBinlog, 0) + statusListener(BinlogStatusOn) logutil.BgLogger().Warn("[binloginfo] disable the skipBinlog flag") } From 86c8b7fbe536dc555aa77b71ea2ca5ac91c8851f Mon Sep 17 00:00:00 2001 From: joccau Date: Wed, 9 Feb 2022 10:15:19 +0800 Subject: [PATCH 2/2] check returned errno Signed-off-by: joccau --- server/http_handler.go | 12 ++++++++++-- sessionctx/binloginfo/binloginfo.go | 9 +++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/server/http_handler.go b/server/http_handler.go index e87ff7eec88b7..fb5963a106148 100644 --- a/server/http_handler.go +++ b/server/http_handler.go @@ -751,14 +751,22 @@ func (h binlogRecover) ServeHTTP(w http.ResponseWriter, req *http.Request) { case "reset": binloginfo.ResetSkippedCommitterCounter() case "nowait": - binloginfo.DisableSkipBinlogFlag() + err := binloginfo.DisableSkipBinlogFlag() + if err != nil { + writeError(w, err) + return + } case "status": default: sec, err := strconv.ParseInt(req.FormValue(qSeconds), 10, 64) if sec <= 0 || err != nil { sec = 1800 } - binloginfo.DisableSkipBinlogFlag() + err = binloginfo.DisableSkipBinlogFlag() + if err != nil { + writeError(w, err) + return + } timeout := time.Duration(sec) * time.Second err = binloginfo.WaitBinlogRecover(timeout) if err != nil { diff --git a/sessionctx/binloginfo/binloginfo.go b/sessionctx/binloginfo/binloginfo.go index 5c2391e418226..51810d6f62e44 100644 --- a/sessionctx/binloginfo/binloginfo.go +++ b/sessionctx/binloginfo/binloginfo.go @@ -119,10 +119,15 @@ func EnableSkipBinlogFlag() { } // DisableSkipBinlogFlag disable the skipBinlog flag. -func DisableSkipBinlogFlag() { +func DisableSkipBinlogFlag() error { + if err := statusListener(BinlogStatusOn); err != nil { + logutil.BgLogger().Warn("update binlog status failed", zap.Error(err)) + return errors.Trace(err) + } + atomic.StoreUint32(&skipBinlog, 0) - statusListener(BinlogStatusOn) logutil.BgLogger().Warn("[binloginfo] disable the skipBinlog flag") + return nil } // IsBinlogSkipped gets the skipBinlog flag.