From 2e6e67dfab09a50a3175ebd98d9ecce7cabcabc8 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 8f745a1a99570..fdd0c23d7774d 100644 --- a/sessionctx/binloginfo/binloginfo.go +++ b/sessionctx/binloginfo/binloginfo.go @@ -124,6 +124,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 18820bcddd19ae47742e7e9e2e4812798cbd8fe0 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 2a2e81bb3089a..17dc97daa5759 100644 --- a/server/http_handler.go +++ b/server/http_handler.go @@ -721,14 +721,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 fdd0c23d7774d..efcf5c863206d 100644 --- a/sessionctx/binloginfo/binloginfo.go +++ b/sessionctx/binloginfo/binloginfo.go @@ -122,10 +122,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.