From 2c70c77eaf6db4dcd8edffbac6f20919ed207e1a Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Wed, 26 Oct 2022 11:57:25 +0800 Subject: [PATCH 1/3] chaos: debug --- engine/chaos/cases/dm/case.go | 38 ++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/engine/chaos/cases/dm/case.go b/engine/chaos/cases/dm/case.go index 455d102711c..708844c2fe6 100644 --- a/engine/chaos/cases/dm/case.go +++ b/engine/chaos/cases/dm/case.go @@ -260,7 +260,43 @@ func (c *Case) diffDataLoop(ctx context.Context) error { for _, s := range c.sources { sourceDBs = append(sourceDBs, s.db.DB) } - return syncDiffInspector(ctx, c.name, c.tables, c.target.db.DB, sourceDBs...) + err := syncDiffInspector(ctx, c.name, c.tables, c.target.db.DB, sourceDBs...) + if err != nil { + c.logKeys() + } + return err +} + +func (c *Case) logKeys() { + for _, table := range c.tables { + if err := c.logDBKeys(c.target.db.DB, table, "target"); err != nil { + return + } + for i, source := range c.sources { + if err := c.logDBKeys(source.db.DB, table, fmt.Sprintf("source%d", i+1)); err != nil { + return + } + } + } +} + +func (c *Case) logDBKeys(db *sql.DB, table string, source string) error { + rows, err := db.QueryContext(context.Background(), fmt.Sprintf("SELECT id FROM %s", dbutil.TableName(c.target.currDB, table))) + if err != nil { + log.L().Error("query keys failed", zap.String("source", source), zap.String("table", table), zap.Error(err)) + return err + } + defer rows.Close() + var id int + for rows.Next() { + err = rows.Scan(&id) + if err != nil { + log.L().Error("scan keys failed", zap.String("source", source), zap.String("table", table), zap.Error(err)) + return err + } + log.L().Info("key", zap.String("source", source), zap.String("table", table), zap.Int("id", id)) + } + return nil } // randDML generates DML (INSERT, UPDATE or DELETE). From 1e7abb61033f3758d2a3fdd782beaf9560171511 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Wed, 26 Oct 2022 16:06:10 +0800 Subject: [PATCH 2/3] dm: more time --- engine/chaos/manifests/cases.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/chaos/manifests/cases.yaml b/engine/chaos/manifests/cases.yaml index 4cfa08ccc59..c21b1d4d2ed 100644 --- a/engine/chaos/manifests/cases.yaml +++ b/engine/chaos/manifests/cases.yaml @@ -12,6 +12,6 @@ spec: command: - "/tiflow-chaos-case" - "--config-dir=/engine-conf" - - "--duration=20m" + - "--duration=30m" restartPolicy: Never backoffLimit: 0 # fail immediately From 059e599dae9bd0978ae67ecc90189c0875bdf91b Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Wed, 26 Oct 2022 17:05:01 +0800 Subject: [PATCH 3/3] dm: more time --- engine/chaos/scripts/check-case.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/chaos/scripts/check-case.sh b/engine/chaos/scripts/check-case.sh index 7d82d6c1ab5..99be52c291e 100755 --- a/engine/chaos/scripts/check-case.sh +++ b/engine/chaos/scripts/check-case.sh @@ -1,7 +1,7 @@ #!/bin/bash completed=false -for i in {1..22}; do +for i in {1..32}; do kubectl wait --for=condition=complete job/chaos-test-case --timeout=1m if [ $? -eq 0 ]; then completed=true