From ce06781df37cbdbce9d9e73e0cb50783d3d3bc6a Mon Sep 17 00:00:00 2001 From: pingcap-github-bot Date: Wed, 17 Jun 2020 10:09:56 +0800 Subject: [PATCH] ddl: correct the usage of json.Unmarshal in job.DecodeArgs (#17857) (#17887) * cherry pick #17857 to release-3.0 Signed-off-by: sre-bot * resolve conflict Co-authored-by: Zejun Li Co-authored-by: Zejun Li --- ddl/delete_range.go | 2 +- go.mod | 2 +- go.sum | 5 ++--- meta/meta_test.go | 2 +- util/admin/admin.go | 3 ++- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ddl/delete_range.go b/ddl/delete_range.go index eb81ce11c6da5..8661761c46b38 100644 --- a/ddl/delete_range.go +++ b/ddl/delete_range.go @@ -263,7 +263,7 @@ func insertJobIntoDeleteRangeTable(ctx sessionctx.Context, job *model.Job) error // The startKey here is for compatibility with previous versions, old version did not endKey so don't have to deal with. var startKey kv.Key var physicalTableIDs []int64 - if err := job.DecodeArgs(startKey, &physicalTableIDs); err != nil { + if err := job.DecodeArgs(&startKey, &physicalTableIDs); err != nil { return errors.Trace(err) } if len(physicalTableIDs) > 0 { diff --git a/go.mod b/go.mod index 3136480dae580..939c6a9fbb1cf 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( github.com/pingcap/goleveldb v0.0.0-20171020122428-b9ff6c35079e github.com/pingcap/kvproto v0.0.0-20200311073257-e53d835099b0 github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd - github.com/pingcap/parser v3.0.13-0.20200507065234-2f9b5a8acf14+incompatible + github.com/pingcap/parser v3.0.14-0.20200616054854-4e23afb3683c+incompatible github.com/pingcap/pd v1.1.0-beta.0.20191223090411-ea2b748f6ee2 github.com/pingcap/tidb-tools v3.0.6-0.20191119150227-ff0a3c6e5763+incompatible github.com/pingcap/tipb v0.0.0-20200426072559-d2c068e96eb3 diff --git a/go.sum b/go.sum index ca0a52d9bb703..34b931a277ba3 100644 --- a/go.sum +++ b/go.sum @@ -157,8 +157,8 @@ github.com/pingcap/kvproto v0.0.0-20200311073257-e53d835099b0 h1:dXXNHvDwAEN1YNg github.com/pingcap/kvproto v0.0.0-20200311073257-e53d835099b0/go.mod h1:QMdbTAXCHzzygQzqcG9uVUgU2fKeSN1GmfMiykdSzzY= github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd h1:hWDol43WY5PGhsh3+8794bFHY1bPrmu6bTalpssCrGg= github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd/go.mod h1:WpHUKhNZ18v116SvGrmjkA9CBhYmuUTKL+p8JC9ANEw= -github.com/pingcap/parser v3.0.13-0.20200507065234-2f9b5a8acf14+incompatible h1:Z/L+KFD/8adlmXix/7AcgidRAaf9TNwcglcX1TcqLzs= -github.com/pingcap/parser v3.0.13-0.20200507065234-2f9b5a8acf14+incompatible/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA= +github.com/pingcap/parser v3.0.14-0.20200616054854-4e23afb3683c+incompatible h1:81nI6d0ug04Q77f4CczVyRjPfNPF+YLPHVHvkyVrgRk= +github.com/pingcap/parser v3.0.14-0.20200616054854-4e23afb3683c+incompatible/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA= github.com/pingcap/pd v1.1.0-beta.0.20191223090411-ea2b748f6ee2 h1:NL23b8tsg6M1QpSQedK14/Jx++QeyKL2rGiBvXAQVfA= github.com/pingcap/pd v1.1.0-beta.0.20191223090411-ea2b748f6ee2/go.mod h1:b4gaAPSxaVVtaB+EHamV4Nsv8JmTdjlw0cTKmp4+dRQ= github.com/pingcap/tidb-tools v3.0.6-0.20191119150227-ff0a3c6e5763+incompatible h1:I8HirWsu1MZp6t9G/g8yKCEjJJxtHooKakEgccvdJ4M= @@ -185,7 +185,6 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d h1:GoAlyOgbOEIFd github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7 h1:FUL3b97ZY2EPqg2NbXKuMHs5pXJB9hjj1fDHnF2vl28= github.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/sergi/go-diff v1.0.1-0.20180205163309-da645544ed44 h1:tB9NOR21++IjLyVx3/PCPhWMwqGNCMQEH96A6dMZ/gc= github.com/sergi/go-diff v1.0.1-0.20180205163309-da645544ed44/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil v2.18.10+incompatible h1:cy84jW6EVRPa5g9HAHrlbxMSIjBhDSX0OFYyMYminYs= github.com/shirou/gopsutil v2.18.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= diff --git a/meta/meta_test.go b/meta/meta_test.go index d7e737f14e742..fbaca51b0f141 100644 --- a/meta/meta_test.go +++ b/meta/meta_test.go @@ -385,7 +385,7 @@ func (s *testSuite) TestDDL(c *C) { if job.ID == historyJob1.ID { c.Assert(*(job.Args[0].(*string)), Equals, historyJob1.Args[0]) } else { - c.Assert(job.Args, IsNil) + c.Assert(job.Args, HasLen, 0) } } diff --git a/util/admin/admin.go b/util/admin/admin.go index d8d8c579d9cb3..0a9a9de3fbb29 100644 --- a/util/admin/admin.go +++ b/util/admin/admin.go @@ -15,6 +15,7 @@ package admin import ( "context" + "encoding/json" "fmt" "io" "math" @@ -157,7 +158,7 @@ func CancelJobs(txn kv.Transaction, ids []int64) ([]error, error) { job.State = model.JobStateCancelling // Make sure RawArgs isn't overwritten. - err := job.DecodeArgs(job.RawArgs) + err := json.Unmarshal(job.RawArgs, &job.Args) if err != nil { errs[i] = errors.Trace(err) continue