From e0b48dcde1dea7f4866c738afba1dabcb57c6855 Mon Sep 17 00:00:00 2001 From: GMHDBJD <35025882+GMHDBJD@users.noreply.github.com> Date: Tue, 13 Jun 2023 22:39:07 +0800 Subject: [PATCH 1/5] This is an automated cherry-pick of #9113 Signed-off-by: ti-chi-bot --- dm/_utils/terror_gen/errors_release.txt | 7 + dm/config/subtask.go | 10 +- dm/config/task.go | 82 ++-- dm/config/task_converters.go | 6 + dm/config/task_converters_test.go | 5 +- dm/errors.toml | 27 ++ dm/openapi/fixtures/task.go | 6 +- dm/openapi/gen.server.go | 193 ++++----- dm/openapi/gen.types.go | 5 +- dm/openapi/spec/dm.yaml | 5 + dm/pkg/terror/errcode_string.go | 404 ++++++++++++++++++ dm/pkg/terror/error_list.go | 14 + dm/syncer/ddl.go | 5 + dm/tests/dmctl_basic/conf/get_task.yaml | 1 + dm/tests/import_v10x/conf/task.yaml | 1 + .../conf/double-source-strict-optimistic.yaml | 59 +++ .../conf/single-source-strict-optimistic.yaml | 52 +++ dm/tests/shardddl4_1/run.sh | 44 ++ engine/jobmaster/dm/config/config.go | 21 + .../jobmaster/dm/config/dm_subtask_3306.toml | 3 +- .../jobmaster/dm/config/dm_subtask_3307.toml | 3 +- engine/jobmaster/dm/config/job_template.yaml | 3 +- 22 files changed, 811 insertions(+), 145 deletions(-) create mode 100644 dm/tests/shardddl4_1/conf/double-source-strict-optimistic.yaml create mode 100644 dm/tests/shardddl4_1/conf/single-source-strict-optimistic.yaml diff --git a/dm/_utils/terror_gen/errors_release.txt b/dm/_utils/terror_gen/errors_release.txt index 2627b67c6d7..8ab69a5a3dc 100644 --- a/dm/_utils/terror_gen/errors_release.txt +++ b/dm/_utils/terror_gen/errors_release.txt @@ -195,6 +195,13 @@ ErrConfigLoaderS3NotSupport,[code=20059:class=config:scope=internal:level=high], ErrConfigInvalidSafeModeDuration,[code=20060:class=config:scope=internal:level=medium], "Message: safe-mode-duration '%s' parsed failed: %v, Workaround: Please check the `safe-mode-duration` is correct." ErrConfigConfictSafeModeDurationAndSafeMode,[code=20061:class=config:scope=internal:level=low], "Message: safe-mode(true) conflicts with safe-mode-duration(0s), Workaround: Please set safe-mode to false or safe-mode-duration to non-zero." ErrConfigInvalidPhysicalDuplicateResolution,[code=20062:class=config:scope=internal:level=medium], "Message: invalid load on-duplicate-physical option '%s', Workaround: Please choose a valid value in ['none', 'manual'] or leave it empty." +<<<<<<< HEAD +======= +ErrConfigInvalidPhysicalChecksum,[code=20063:class=config:scope=internal:level=medium], "Message: invalid load checksum-physical option '%s', Workaround: Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." +ErrConfigColumnMappingDeprecated,[code=20064:class=config:scope=internal:level=high], "Message: column-mapping is not supported since v6.6.0, Workaround: Please use extract-table/extract-schema/extract-source to handle data conflict when merge tables. See https://docs.pingcap.com/tidb/v6.4/task-configuration-file-full#task-configuration-file-template-advanced" +ErrConfigInvalidLoadAnalyze,[code=20065:class=config:scope=internal:level=medium], "Message: invalid load analyze option '%s', Workaround: Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." +ErrConfigStrictOptimisticShardMode,[code=20066:class=config:scope=internal:level=medium], "Message: cannot enable `strict-optimistic-shard-mode` while `shard-mode` is not `optimistic`, Workaround: Please set `shard-mode` to `optimistic` if you want to enable `strict-optimistic-shard-mode`." +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) ErrBinlogExtractPosition,[code=22001:class=binlog-op:scope=internal:level=high] ErrBinlogInvalidFilename,[code=22002:class=binlog-op:scope=internal:level=high], "Message: invalid binlog filename" ErrBinlogParsePosFromStr,[code=22003:class=binlog-op:scope=internal:level=high] diff --git a/dm/config/subtask.go b/dm/config/subtask.go index 2c7352ec573..61b4f19e2e4 100644 --- a/dm/config/subtask.go +++ b/dm/config/subtask.go @@ -203,9 +203,10 @@ type SubTaskConfig struct { flagSet *flag.FlagSet // when in sharding, multi dm-workers do one task - IsSharding bool `toml:"is-sharding" json:"is-sharding"` - ShardMode string `toml:"shard-mode" json:"shard-mode"` - OnlineDDL bool `toml:"online-ddl" json:"online-ddl"` + IsSharding bool `toml:"is-sharding" json:"is-sharding"` + ShardMode string `toml:"shard-mode" json:"shard-mode"` + StrictOptimisticShardMode bool `toml:"strict-optimistic-shard-mode" json:"strict-optimistic-shard-mode"` + OnlineDDL bool `toml:"online-ddl" json:"online-ddl"` // pt/gh-ost name rule, support regex ShadowTableRules []string `yaml:"shadow-table-rules" toml:"shadow-table-rules" json:"shadow-table-rules"` @@ -401,6 +402,9 @@ func (c *SubTaskConfig) Adjust(verifyDecryptPassword bool) error { } else if c.ShardMode == "" && c.IsSharding { c.ShardMode = ShardPessimistic // use the pessimistic mode as default for back compatible. } + if c.StrictOptimisticShardMode && c.ShardMode != ShardOptimistic { + return terror.ErrConfigStrictOptimisticShardMode.Generate() + } if c.OnlineDDLScheme != "" && c.OnlineDDLScheme != PT && c.OnlineDDLScheme != GHOST { return terror.ErrConfigOnlineSchemeNotSupport.Generate(c.OnlineDDLScheme) diff --git a/dm/config/task.go b/dm/config/task.go index ed5bf8c43e8..7cf4ad226ed 100644 --- a/dm/config/task.go +++ b/dm/config/task.go @@ -464,10 +464,11 @@ func defaultValidatorConfig() ValidatorConfig { type TaskConfig struct { *flag.FlagSet `yaml:"-" toml:"-" json:"-"` - Name string `yaml:"name" toml:"name" json:"name"` - TaskMode string `yaml:"task-mode" toml:"task-mode" json:"task-mode"` - IsSharding bool `yaml:"is-sharding" toml:"is-sharding" json:"is-sharding"` - ShardMode string `yaml:"shard-mode" toml:"shard-mode" json:"shard-mode"` // when `shard-mode` set, we always enable sharding support. + Name string `yaml:"name" toml:"name" json:"name"` + TaskMode string `yaml:"task-mode" toml:"task-mode" json:"task-mode"` + IsSharding bool `yaml:"is-sharding" toml:"is-sharding" json:"is-sharding"` + ShardMode string `yaml:"shard-mode" toml:"shard-mode" json:"shard-mode"` // when `shard-mode` set, we always enable sharding support. + StrictOptimisticShardMode bool `yaml:"strict-optimistic-shard-mode" toml:"strict-optimistic-shard-mode" json:"strict-optimistic-shard-mode"` // treat it as hidden configuration IgnoreCheckingItems []string `yaml:"ignore-checking-items" toml:"ignore-checking-items" json:"ignore-checking-items"` // we store detail status in meta @@ -643,6 +644,9 @@ func (c *TaskConfig) adjust() error { } else if c.ShardMode == "" && c.IsSharding { c.ShardMode = ShardPessimistic // use the pessimistic mode as default for back compatible. } + if c.StrictOptimisticShardMode && c.ShardMode != ShardOptimistic { + return terror.ErrConfigStrictOptimisticShardMode.Generate() + } if c.CollationCompatible != "" && c.CollationCompatible != LooseCollationCompatible && c.CollationCompatible != StrictCollationCompatible { return terror.ErrConfigCollationCompatibleNotSupport.Generate(c.CollationCompatible) @@ -1223,45 +1227,47 @@ type TaskConfigForDowngrade struct { EnableANSIQuotes bool `yaml:"ansi-quotes"` RemoveMeta bool `yaml:"remove-meta"` // new config item - MySQLInstances []*MySQLInstanceForDowngrade `yaml:"mysql-instances"` - ExprFilter map[string]*ExpressionFilter `yaml:"expression-filter,omitempty"` - OnlineDDL bool `yaml:"online-ddl,omitempty"` - ShadowTableRules []string `yaml:"shadow-table-rules,omitempty"` - TrashTableRules []string `yaml:"trash-table-rules,omitempty"` + MySQLInstances []*MySQLInstanceForDowngrade `yaml:"mysql-instances"` + ExprFilter map[string]*ExpressionFilter `yaml:"expression-filter,omitempty"` + OnlineDDL bool `yaml:"online-ddl,omitempty"` + ShadowTableRules []string `yaml:"shadow-table-rules,omitempty"` + TrashTableRules []string `yaml:"trash-table-rules,omitempty"` + StrictOptimisticShardMode bool `yaml:"strict-optimistic-shard-mode,omitempty"` } // NewTaskConfigForDowngrade create new TaskConfigForDowngrade. func NewTaskConfigForDowngrade(taskConfig *TaskConfig) *TaskConfigForDowngrade { return &TaskConfigForDowngrade{ - Name: taskConfig.Name, - TaskMode: taskConfig.TaskMode, - IsSharding: taskConfig.IsSharding, - ShardMode: taskConfig.ShardMode, - IgnoreCheckingItems: taskConfig.IgnoreCheckingItems, - MetaSchema: taskConfig.MetaSchema, - EnableHeartbeat: taskConfig.EnableHeartbeat, - HeartbeatUpdateInterval: taskConfig.HeartbeatUpdateInterval, - HeartbeatReportInterval: taskConfig.HeartbeatReportInterval, - Timezone: taskConfig.Timezone, - CaseSensitive: taskConfig.CaseSensitive, - TargetDB: taskConfig.TargetDB, - OnlineDDLScheme: taskConfig.OnlineDDLScheme, - Routes: taskConfig.Routes, - Filters: taskConfig.Filters, - ColumnMappings: taskConfig.ColumnMappings, - BWList: taskConfig.BWList, - BAList: taskConfig.BAList, - Mydumpers: taskConfig.Mydumpers, - Loaders: NewLoaderConfigForDowngrade(taskConfig.Loaders), - Syncers: NewSyncerConfigsForDowngrade(taskConfig.Syncers), - CleanDumpFile: taskConfig.CleanDumpFile, - EnableANSIQuotes: taskConfig.EnableANSIQuotes, - RemoveMeta: taskConfig.RemoveMeta, - MySQLInstances: NewMySQLInstancesForDowngrade(taskConfig.MySQLInstances), - ExprFilter: taskConfig.ExprFilter, - OnlineDDL: taskConfig.OnlineDDL, - ShadowTableRules: taskConfig.ShadowTableRules, - TrashTableRules: taskConfig.TrashTableRules, + Name: taskConfig.Name, + TaskMode: taskConfig.TaskMode, + IsSharding: taskConfig.IsSharding, + ShardMode: taskConfig.ShardMode, + StrictOptimisticShardMode: taskConfig.StrictOptimisticShardMode, + IgnoreCheckingItems: taskConfig.IgnoreCheckingItems, + MetaSchema: taskConfig.MetaSchema, + EnableHeartbeat: taskConfig.EnableHeartbeat, + HeartbeatUpdateInterval: taskConfig.HeartbeatUpdateInterval, + HeartbeatReportInterval: taskConfig.HeartbeatReportInterval, + Timezone: taskConfig.Timezone, + CaseSensitive: taskConfig.CaseSensitive, + TargetDB: taskConfig.TargetDB, + OnlineDDLScheme: taskConfig.OnlineDDLScheme, + Routes: taskConfig.Routes, + Filters: taskConfig.Filters, + ColumnMappings: taskConfig.ColumnMappings, + BWList: taskConfig.BWList, + BAList: taskConfig.BAList, + Mydumpers: taskConfig.Mydumpers, + Loaders: NewLoaderConfigForDowngrade(taskConfig.Loaders), + Syncers: NewSyncerConfigsForDowngrade(taskConfig.Syncers), + CleanDumpFile: taskConfig.CleanDumpFile, + EnableANSIQuotes: taskConfig.EnableANSIQuotes, + RemoveMeta: taskConfig.RemoveMeta, + MySQLInstances: NewMySQLInstancesForDowngrade(taskConfig.MySQLInstances), + ExprFilter: taskConfig.ExprFilter, + OnlineDDL: taskConfig.OnlineDDL, + ShadowTableRules: taskConfig.ShadowTableRules, + TrashTableRules: taskConfig.TrashTableRules, } } diff --git a/dm/config/task_converters.go b/dm/config/task_converters.go index 030f917a997..4dbf8c654e8 100644 --- a/dm/config/task_converters.go +++ b/dm/config/task_converters.go @@ -40,6 +40,7 @@ func TaskConfigToSubTaskConfigs(c *TaskConfig, sources map[string]DBConfig) ([]* cfg := NewSubTaskConfig() cfg.IsSharding = c.IsSharding cfg.ShardMode = c.ShardMode + cfg.StrictOptimisticShardMode = c.StrictOptimisticShardMode cfg.OnlineDDL = c.OnlineDDL cfg.TrashTableRules = c.TrashTableRules cfg.ShadowTableRules = c.ShadowTableRules @@ -179,6 +180,9 @@ func OpenAPITaskToSubTaskConfigs(task *openapi.Task, toDBCfg *DBConfig, sourceCf } else { subTaskCfg.IsSharding = false } + if task.StrictOptimisticShardMode != nil { + subTaskCfg.StrictOptimisticShardMode = *task.StrictOptimisticShardMode + } // set online ddl plugin config subTaskCfg.OnlineDDL = task.EnhanceOnlineSchemaChange // set case sensitive from source @@ -312,6 +316,7 @@ func SubTaskConfigsToTaskConfig(stCfgs ...*SubTaskConfig) *TaskConfig { c.TaskMode = stCfg0.Mode c.IsSharding = stCfg0.IsSharding c.ShardMode = stCfg0.ShardMode + c.StrictOptimisticShardMode = stCfg0.StrictOptimisticShardMode c.IgnoreCheckingItems = stCfg0.IgnoreCheckingItems c.MetaSchema = stCfg0.MetaSchema c.EnableHeartbeat = stCfg0.EnableHeartbeat @@ -609,6 +614,7 @@ func SubTaskConfigsToOpenAPITask(subTaskConfigList []*SubTaskConfig) *openapi.Ta taskShardMode := openapi.TaskShardMode(oneSubtaskConfig.ShardMode) task.ShardMode = &taskShardMode } + task.StrictOptimisticShardMode = &oneSubtaskConfig.StrictOptimisticShardMode if len(filterMap) > 0 { task.BinlogFilterRule = &filterRuleMap } diff --git a/dm/config/task_converters_test.go b/dm/config/task_converters_test.go index 16fc71365aa..5a6191676e4 100644 --- a/dm/config/task_converters_test.go +++ b/dm/config/task_converters_test.go @@ -153,7 +153,8 @@ func testShardAndFilterTaskToSubTaskConfigs(c *check.C) { c.Assert(subTask1Config.Meta.BinLogPos, check.Equals, uint32(*task.SourceConfig.SourceConf[0].BinlogPos)) // check shard config - c.Assert(subTask1Config.ShardMode, check.Equals, string(openapi.TaskShardModePessimistic)) + c.Assert(subTask1Config.ShardMode, check.Equals, string(openapi.TaskShardModeOptimistic)) + c.Assert(subTask1Config.StrictOptimisticShardMode, check.IsTrue) // check online schema change c.Assert(subTask1Config.OnlineDDL, check.Equals, true) // check case sensitive @@ -217,7 +218,7 @@ func testShardAndFilterTaskToSubTaskConfigs(c *check.C) { c.Assert(subTask2Config.Meta.BinLogName, check.Equals, *task.SourceConfig.SourceConf[1].BinlogName) c.Assert(subTask2Config.Meta.BinLogPos, check.Equals, uint32(*task.SourceConfig.SourceConf[1].BinlogPos)) // check shard config - c.Assert(subTask2Config.ShardMode, check.Equals, string(openapi.TaskShardModePessimistic)) + c.Assert(subTask2Config.ShardMode, check.Equals, string(openapi.TaskShardModeOptimistic)) // check online schema change c.Assert(subTask2Config.OnlineDDL, check.Equals, true) // check case sensitive diff --git a/dm/errors.toml b/dm/errors.toml index 4baa4e658df..7e7acff9491 100644 --- a/dm/errors.toml +++ b/dm/errors.toml @@ -1186,6 +1186,33 @@ description = "" workaround = "Please choose a valid value in ['none', 'manual'] or leave it empty." tags = ["internal", "medium"] +<<<<<<< HEAD +======= +[error.DM-config-20063] +message = "invalid load checksum-physical option '%s'" +description = "" +workaround = "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." +tags = ["internal", "medium"] + +[error.DM-config-20064] +message = "column-mapping is not supported since v6.6.0" +description = "" +workaround = "Please use extract-table/extract-schema/extract-source to handle data conflict when merge tables. See https://docs.pingcap.com/tidb/v6.4/task-configuration-file-full#task-configuration-file-template-advanced" +tags = ["internal", "high"] + +[error.DM-config-20065] +message = "invalid load analyze option '%s'" +description = "" +workaround = "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." +tags = ["internal", "medium"] + +[error.DM-config-20066] +message = "cannot enable `strict-optimistic-shard-mode` while `shard-mode` is not `optimistic`" +description = "" +workaround = "Please set `shard-mode` to `optimistic` if you want to enable `strict-optimistic-shard-mode`." +tags = ["internal", "medium"] + +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) [error.DM-binlog-op-22001] message = "" description = "" diff --git a/dm/openapi/fixtures/task.go b/dm/openapi/fixtures/task.go index 1b429b15986..c146b385722 100644 --- a/dm/openapi/fixtures/task.go +++ b/dm/openapi/fixtures/task.go @@ -53,7 +53,8 @@ var ( "security": null, "user": "root" }, - "task_mode": "all" + "task_mode": "all", + "strict_optimistic_shard_mode": false } ` @@ -103,7 +104,8 @@ var ( "meta_schema": "dm_meta", "name": "test", "on_duplicate": "error", - "shard_mode": "pessimistic", + "shard_mode": "optimistic", + "strict_optimistic_shard_mode": true, "source_config": { "full_migrate_conf": { "data_dir": "./exported_data", diff --git a/dm/openapi/gen.server.go b/dm/openapi/gen.server.go index bf40d67a7d9..4060295efc7 100644 --- a/dm/openapi/gen.server.go +++ b/dm/openapi/gen.server.go @@ -1255,102 +1255,103 @@ var swaggerSpec = []string{ "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", + "2/8LAAD//xNoTUdjtwAA", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/dm/openapi/gen.types.go b/dm/openapi/gen.types.go index 25731a6c3ff..7867255bb6d 100644 --- a/dm/openapi/gen.types.go +++ b/dm/openapi/gen.types.go @@ -75,7 +75,7 @@ type ClusterWorker struct { // address of the current master node Addr string `json:"addr"` - // bound source name of this worker node + // source name bound to this worker node BoundSourceName string `json:"bound_source_name"` // bound stage of this worker node @@ -501,6 +501,9 @@ type Task struct { SourceConfig TaskSourceConfig `json:"source_config"` StatusList *[]SubTaskStatus `json:"status_list,omitempty"` + // whether to enable strict optimistic shard mode + StrictOptimisticShardMode *bool `json:"strict_optimistic_shard_mode,omitempty"` + // table migrate rule TableMigrateRule []TaskTableMigrateRule `json:"table_migrate_rule"` diff --git a/dm/openapi/spec/dm.yaml b/dm/openapi/spec/dm.yaml index a8a88239cf9..2fc91e7b2cc 100644 --- a/dm/openapi/spec/dm.yaml +++ b/dm/openapi/spec/dm.yaml @@ -1775,6 +1775,11 @@ components: enum: - "pessimistic" - "optimistic" + strict_optimistic_shard_mode: + type: boolean + example: true + description: "whether to enable strict optimistic shard mode" + default: false meta_schema: type: string example: "dm-meta" diff --git a/dm/pkg/terror/errcode_string.go b/dm/pkg/terror/errcode_string.go index 3a5ef5a36c4..4cdec30172f 100644 --- a/dm/pkg/terror/errcode_string.go +++ b/dm/pkg/terror/errcode_string.go @@ -206,6 +206,13 @@ func _() { _ = x[codeConfigInvalidSafeModeDuration-20060] _ = x[codeConfigConfictSafeModeDurationAndSafeMode-20061] _ = x[codeConfigInvalidLoadPhysicalDuplicateResolution-20062] +<<<<<<< HEAD +======= + _ = x[codeConfigInvalidLoadPhysicalChecksum-20063] + _ = x[codeConfigColumnMappingDeprecated-20064] + _ = x[codeConfigInvalidLoadAnalyze-20065] + _ = x[codeConfigStrictOptimisticShardMode-20066] +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) _ = x[codeBinlogExtractPosition-22001] _ = x[codeBinlogInvalidFilename-22002] _ = x[codeBinlogParsePosFromStr-22003] @@ -592,7 +599,11 @@ func _() { _ = x[codeNotSet-50000] } +<<<<<<< HEAD const _ErrCode_name = "DBDriverErrorDBBadConnDBInvalidConnDBUnExpectDBQueryFailedDBExecuteFailedParseMydumperMetaGetFileSizeDropMultipleTablesRenameMultipleTablesAlterMultipleTablesParseSQLUnknownTypeDDLRestoreASTNodeParseGTIDNotSupportedFlavorNotMySQLGTIDNotMariaDBGTIDNotUUIDStringMariaDBDomainIDInvalidServerIDGetSQLModeFromStrVerifySQLOperateArgsStatFileSizeReaderAlreadyRunningReaderAlreadyStartedReaderStateCannotCloseReaderShouldStartSyncEmptyRelayDirReadDirBaseFileNotFoundBinFileCmpCondNotSupportBinlogFileNotValidBinlogFilesNotFoundGetRelayLogStatAddWatchForRelayLogDirWatcherStartWatcherChanClosedWatcherChanRecvErrorRelayLogFileSizeSmallerBinlogFileNotSpecifiedNoRelayLogMatchPosFirstRelayLogNotMatchPosParserParseRelayLogNoSubdirToSwitchNeedSyncAgainSyncClosedSchemaTableNameNotValidGenTableRouterEncryptSecretKeyNotValidEncryptGenCipherEncryptGenIVCiphertextLenNotValidCiphertextContextNotValidInvalidBinlogPosStrEncCipherTextBase64DecodeBinlogWriteBinaryDataBinlogWriteDataToBufferBinlogHeaderLengthNotValidBinlogEventDecodeBinlogEmptyNextBinNameBinlogParseSIDBinlogEmptyGTIDBinlogGTIDSetNotValidBinlogGTIDMySQLNotValidBinlogGTIDMariaDBNotValidBinlogMariaDBServerIDMismatchBinlogOnlyOneGTIDSupportBinlogOnlyOneIntervalInUUIDBinlogIntervalValueNotValidBinlogEmptyQueryBinlogTableMapEvNotValidBinlogExpectFormatDescEvBinlogExpectTableMapEvBinlogExpectRowsEvBinlogUnexpectedEvBinlogParseSingleEvBinlogEventTypeNotValidBinlogEventNoRowsBinlogEventNoColumnsBinlogEventRowLengthNotEqBinlogColumnTypeNotSupportBinlogGoMySQLTypeNotSupportBinlogColumnTypeMisMatchBinlogDummyEvSizeTooSmallBinlogFlavorNotSupportBinlogDMLEmptyDataBinlogLatestGTIDNotInPrevBinlogReadFileByGTIDBinlogWriterNotStateNewBinlogWriterStateCannotCloseBinlogWriterNeedStartBinlogWriterOpenFileBinlogWriterGetFileStatBinlogWriterWriteDataLenBinlogWriterFileNotOpenedBinlogWriterFileSyncBinlogPrevGTIDEvNotValidBinlogDecodeMySQLGTIDSetBinlogNeedMariaDBGTIDSetBinlogParseMariaDBGTIDSetBinlogMariaDBAddGTIDSetTracingEventDataNotValidTracingUploadDataTracingEventTypeNotValidTracingGetTraceCodeTracingDataChecksumTracingGetTSOBackoffArgsNotValidInitLoggerFailGTIDTruncateInvalidRelayLogGivenPosTooBigElectionCampaignFailElectionGetLeaderIDFailBinlogInvalidFilenameWithUUIDSuffixDecodeEtcdKeyFailShardDDLOptimismTrySyncFailConnInvalidTLSConfigConnRegistryTLSConfigUpgradeVersionEtcdFailInvalidV1WorkerMetaPathFailUpdateV1DBSchemaBinlogStatusVarsParseVerifyHandleErrorArgsRewriteSQLNoUUIDDirMatchGTIDNoRelayPosMatchGTIDReaderReachEndOfFileMetadataNoBinlogLocPreviousGTIDNotExistNoMasterStatusBinlogNotLogColumnShardDDLOptimismNeedSkipAndRedirectShardDDLOptimismAddNotFullyDroppedColumnSyncerCancelledDDLIncorrectReturnColumnsNumConfigCheckItemNotSupportConfigTomlTransformConfigYamlTransformConfigTaskNameEmptyConfigEmptySourceIDConfigTooLongSourceIDConfigOnlineSchemeNotSupportConfigInvalidTimezoneConfigParseFlagSetConfigDecryptDBPasswordConfigMetaInvalidConfigMySQLInstNotFoundConfigMySQLInstsAtLeastOneConfigMySQLInstSameSourceIDConfigMydumperCfgConflictConfigLoaderCfgConflictConfigSyncerCfgConflictConfigReadCfgFromFileConfigNeedUniqueTaskNameConfigInvalidTaskModeConfigNeedTargetDBConfigMetadataNotSetConfigRouteRuleNotFoundConfigFilterRuleNotFoundConfigColumnMappingNotFoundConfigBAListNotFoundConfigMydumperCfgNotFoundConfigMydumperPathNotValidConfigLoaderCfgNotFoundConfigSyncerCfgNotFoundConfigSourceIDNotFoundConfigDuplicateCfgItemConfigShardModeNotSupportConfigMoreThanOneConfigEtcdParseConfigMissingForBoundConfigBinlogEventFilterConfigGlobalConfigsUnusedConfigExprFilterManyExprConfigExprFilterNotFoundConfigExprFilterWrongGrammarConfigExprFilterEmptyNameConfigCheckerMaxTooSmallConfigGenBAListConfigGenTableRouterConfigGenColumnMappingConfigInvalidChunkFileSizeConfigOnlineDDLInvalidRegexConfigOnlineDDLMistakeRegexConfigOpenAPITaskConfigExistConfigOpenAPITaskConfigNotExistCollationCompatibleNotSupportConfigInvalidLoadModeConfigInvalidLoadDuplicateResolutionConfigValidationModeContinuousValidatorCfgNotFoundConfigStartTimeTooLateConfigLoaderDirInvalidConfigLoaderS3NotSupportConfigInvalidSafeModeDurationConfigConfictSafeModeDurationAndSafeModeConfigInvalidLoadPhysicalDuplicateResolutionBinlogExtractPositionBinlogInvalidFilenameBinlogParsePosFromStrCheckpointInvalidTaskModeCheckpointSaveInvalidPosCheckpointInvalidTableFileCheckpointDBNotExistInFileCheckpointTableNotExistInFileCheckpointRestoreCountGreaterTaskCheckSameTableNameTaskCheckFailedOpenDBTaskCheckGenTableRouterTaskCheckGenColumnMappingTaskCheckSyncConfigErrorTaskCheckGenBAListSourceCheckGTIDRelayParseUUIDIndexRelayParseUUIDSuffixRelayUUIDWithSuffixNotFoundRelayGenFakeRotateEventRelayNoValidRelaySubDirRelayUUIDSuffixNotValidRelayUUIDSuffixLessThanPrevRelayLoadMetaDataRelayBinlogNameNotValidRelayNoCurrentUUIDRelayFlushLocalMetaRelayUpdateIndexFileRelayLogDirpathEmptyRelayReaderNotStateNewRelayReaderStateCannotCloseRelayReaderNeedStartRelayTCPReaderStartSyncRelayTCPReaderNilGTIDRelayTCPReaderStartSyncGTIDRelayTCPReaderGetEventRelayWriterNotStateNewRelayWriterStateCannotCloseRelayWriterNeedStartRelayWriterNotOpenedRelayWriterExpectRotateEvRelayWriterRotateEvWithNoWriterRelayWriterStatusNotValidRelayWriterGetFileStatRelayWriterLatestPosGTFileSizeRelayWriterFileOperateRelayCheckBinlogFileHeaderExistRelayCheckFormatDescEventExistRelayCheckFormatDescEventParseEvRelayCheckIsDuplicateEventRelayUpdateGTIDRelayNeedPrevGTIDEvBeforeGTIDEvRelayNeedMaGTIDListEvBeforeGTIDEvRelayMkdirRelaySwitchMasterNeedGTIDRelayThisStrategyIsPurgingRelayOtherStrategyIsPurgingRelayPurgeIsForbiddenRelayNoActiveRelayLogRelayPurgeRequestNotValidRelayTrimUUIDNotFoundRelayRemoveFileFailRelayPurgeArgsNotValidPreviousGTIDsNotValidRotateEventWithDifferentServerIDDumpUnitRuntimeDumpUnitGenTableRouterDumpUnitGenBAListDumpUnitGlobalLockLoadUnitCreateSchemaFileLoadUnitInvalidFileEndingLoadUnitParseQuoteValuesLoadUnitDoColumnMappingLoadUnitReadSchemaFileLoadUnitParseStatementLoadUnitNotCreateTableLoadUnitDispatchSQLFromFileLoadUnitInvalidInsertSQLLoadUnitGenTableRouterLoadUnitGenColumnMappingLoadUnitNoDBFileLoadUnitNoTableFileLoadUnitDumpDirNotFoundLoadUnitDuplicateTableFileLoadUnitGenBAListLoadTaskWorkerNotMatchLoadCheckPointNotMatchLoadLightningRuntimeSyncerUnitPanicSyncUnitInvalidTableNameSyncUnitTableNameQuerySyncUnitNotSupportedDMLSyncUnitAddTableInShardingSyncUnitDropSchemaTableInShardingSyncUnitInvalidShardMetaSyncUnitDDLWrongSequenceSyncUnitDDLActiveIndexLargerSyncUnitDupTableGroupSyncUnitShardingGroupNotFoundSyncUnitSafeModeSetCountSyncUnitCausalityConflictSyncUnitDMLStatementFoundSyncerUnitBinlogEventFilterSyncerUnitInvalidReplicaEventSyncerUnitParseStmtSyncerUnitUUIDNotLatestSyncerUnitDDLExecChanCloseOrBusySyncerUnitDDLChanDoneSyncerUnitDDLChanCanceledSyncerUnitDDLOnMultipleTableSyncerUnitInjectDDLOnlySyncerUnitInjectDDLWithoutSchemaSyncerUnitNotSupportedOperateSyncerUnitNilOperatorReqSyncerUnitDMLColumnNotMatchSyncerUnitDMLOldNewValueMismatchSyncerUnitDMLPruneColumnMismatchSyncerUnitGenBinlogEventFilterSyncerUnitGenTableRouterSyncerUnitGenColumnMappingSyncerUnitDoColumnMappingSyncerUnitCacheKeyNotFoundSyncerUnitHeartbeatCheckConfigSyncerUnitHeartbeatRecordExistsSyncerUnitHeartbeatRecordNotFoundSyncerUnitHeartbeatRecordNotValidSyncerUnitOnlineDDLInvalidMetaSyncerUnitOnlineDDLSchemeNotSupportSyncerUnitOnlineDDLOnMultipleTableSyncerUnitGhostApplyEmptyTableSyncerUnitGhostRenameTableNotValidSyncerUnitGhostRenameToGhostTableSyncerUnitGhostRenameGhostTblToOtherSyncerUnitGhostOnlineDDLOnGhostTblSyncerUnitPTApplyEmptyTableSyncerUnitPTRenameTableNotValidSyncerUnitPTRenameToPTTableSyncerUnitPTRenamePTTblToOtherSyncerUnitPTOnlineDDLOnPTTblSyncerUnitRemoteSteamerWithGTIDSyncerUnitRemoteSteamerStartSyncSyncerUnitGetTableFromDBSyncerUnitFirstEndPosNotFoundSyncerUnitResolveCasualityFailSyncerUnitReopenStreamNotSupportSyncerUnitUpdateConfigInShardingSyncerUnitExecWithNoBlockingDDLSyncerUnitGenBAListSyncerUnitHandleDDLFailedSyncerShardDDLConflictSyncerFailpointSyncerEventSyncerOperatorNotExistSyncerEventNotExistSyncerParseDDLSyncerUnsupportedStmtSyncerGetEventSyncerDownstreamTableNotFoundSyncerReprocessWithSafeModeFailMasterSQLOpNilRequestMasterSQLOpNotSupportMasterSQLOpWithoutShardingMasterGRPCCreateConnMasterGRPCSendOnCloseConnMasterGRPCClientCloseMasterGRPCInvalidReqTypeMasterGRPCRequestErrorMasterDeployMapperVerifyMasterConfigParseFlagSetMasterConfigUnknownItemMasterConfigInvalidFlagMasterConfigTomlTransformMasterConfigTimeoutParseMasterConfigUpdateCfgFileMasterShardingDDLDiffMasterStartServiceMasterNoEmitTokenMasterLockNotFoundMasterLockIsResolvingMasterWorkerCliNotFoundMasterWorkerNotWaitLockMasterHandleSQLReqFailMasterOwnerExecDDLMasterPartWorkerExecDDLFailMasterWorkerExistDDLLockMasterGetWorkerCfgExtractorMasterTaskConfigExtractorMasterWorkerArgsExtractorMasterQueryWorkerConfigMasterOperNotFoundMasterOperRespNotSuccessMasterOperRequestTimeoutMasterHandleHTTPApisMasterHostPortNotValidMasterGetHostnameFailMasterGenEmbedEtcdConfigFailMasterStartEmbedEtcdFailMasterParseURLFailMasterJoinEmbedEtcdFailMasterInvalidOperateOpMasterAdvertiseAddrNotValidMasterRequestIsNotForwardToLeaderMasterIsNotAsyncRequestMasterFailToGetExpectResultMasterPessimistNotStartedMasterOptimistNotStartedMasterMasterNameNotExistMasterInvalidOfflineTypeMasterAdvertisePeerURLsNotValidMasterTLSConfigNotValidMasterBoundChangingMasterFailToImportFromV10xMasterInconsistentOptimistDDLsAndInfoMasterOptimisticTableInfobeforeNotExistMasterOptimisticDownstreamMetaNotFoundMasterInvalidClusterIDMasterStartTaskWorkerParseFlagSetWorkerInvalidFlagWorkerDecodeConfigFromFileWorkerUndecodedItemFromFileWorkerNeedSourceIDWorkerTooLongSourceIDWorkerRelayBinlogNameWorkerWriteConfigFileWorkerLogInvalidHandlerWorkerLogPointerInvalidWorkerLogFetchPointerWorkerLogUnmarshalPointerWorkerLogClearPointerWorkerLogTaskKeyNotValidWorkerLogUnmarshalTaskKeyWorkerLogFetchLogIterWorkerLogGetTaskLogWorkerLogUnmarshalBinaryWorkerLogForwardPointerWorkerLogMarshalTaskWorkerLogSaveTaskWorkerLogDeleteKVWorkerLogDeleteKVIterWorkerLogUnmarshalTaskMetaWorkerLogFetchTaskFromMetaWorkerLogVerifyTaskMetaWorkerLogSaveTaskMetaWorkerLogGetTaskMetaWorkerLogDeleteTaskMetaWorkerMetaTomlTransformWorkerMetaOldFileStatWorkerMetaOldReadFileWorkerMetaEncodeTaskWorkerMetaRemoveOldDirWorkerMetaTaskLogNotFoundWorkerMetaHandleTaskOrderWorkerMetaOpenTxnWorkerMetaCommitTxnWorkerRelayStageNotValidWorkerRelayOperNotSupportWorkerOpenKVDBFileWorkerUpgradeCheckKVDirWorkerMarshalVerBinaryWorkerUnmarshalVerBinaryWorkerGetVersionFromKVWorkerSaveVersionToKVWorkerVerAutoDowngradeWorkerStartServiceWorkerAlreadyClosedWorkerNotRunningStageWorkerNotPausedStageWorkerUpdateTaskStageWorkerMigrateStopRelayWorkerSubTaskNotFoundWorkerSubTaskExistsWorkerOperSyncUnitOnlyWorkerRelayUnitStageWorkerNoSyncerRunningWorkerCannotUpdateSourceIDWorkerNoAvailUnitsWorkerDDLLockInfoNotFoundWorkerDDLLockInfoExistsWorkerCacheDDLInfoExistsWorkerExecSkipDDLConflictWorkerExecDDLSyncerOnlyWorkerExecDDLTimeoutWorkerWaitRelayCatchupTimeoutWorkerRelayIsPurgingWorkerHostPortNotValidWorkerNoStartWorkerAlreadyStartedWorkerSourceNotMatchWorkerFailToGetSubtaskConfigFromEtcdWorkerFailToGetSourceConfigFromEtcdWorkerDDLLockOpNotFoundWorkerTLSConfigNotValidWorkerFailConnectMasterWorkerWaitRelayCatchupGTIDWorkerRelayConfigChangingWorkerRouteTableDupMatchWorkerUpdateSubTaskConfigWorkerValidatorNotPausedWorkerServerClosedTracerParseFlagSetTracerConfigTomlTransformTracerConfigInvalidFlagTracerTraceEventNotFoundTracerTraceIDNotProvidedTracerParamNotValidTracerPostMethodOnlyTracerEventAssertionFailTracerEventTypeNotValidTracerStartServiceHAFailTxnOperationHAInvalidItemHAFailWatchEtcdHAFailLeaseOperationHAFailKeepaliveValidatorLoadPersistedDataValidatorPersistDataValidatorGetEventValidatorProcessRowEventValidatorValidateChangeValidatorNotFoundValidatorPanicValidatorTooMuchPendingSchemaTrackerInvalidJSONSchemaTrackerCannotCreateSchemaSchemaTrackerCannotCreateTableSchemaTrackerCannotSerializeSchemaTrackerCannotGetTableSchemaTrackerCannotExecDDLSchemaTrackerCannotFetchDownstreamTableSchemaTrackerCannotParseDownstreamTableSchemaTrackerInvalidCreateTableStmtSchemaTrackerRestoreStmtFailSchemaTrackerCannotDropTableSchemaTrackerInitSchemaTrackerMarshalJSONSchemaTrackerUnMarshalJSONSchemaTrackerUnSchemaNotExistSchemaTrackerCannotSetDownstreamSQLModeSchemaTrackerCannotInitDownstreamParserSchemaTrackerCannotMockDownstreamTableSchemaTrackerCannotFetchDownstreamCreateTableStmtSchemaTrackerIsClosedSchedulerNotStartedSchedulerStartedSchedulerWorkerExistSchedulerWorkerNotExistSchedulerWorkerOnlineSchedulerWorkerInvalidTransSchedulerSourceCfgExistSchedulerSourceCfgNotExistSchedulerSourcesUnboundSchedulerSourceOpTaskExistSchedulerRelayStageInvalidUpdateSchedulerRelayStageSourceNotExistSchedulerMultiTaskSchedulerSubTaskExistSchedulerSubTaskStageInvalidUpdateSchedulerSubTaskOpTaskNotExistSchedulerSubTaskOpSourceNotExistSchedulerTaskNotExistSchedulerRequireRunningTaskInSyncUnitSchedulerRelayWorkersBusySchedulerRelayWorkersBoundSchedulerRelayWorkersWrongRelaySchedulerSourceOpRelayExistSchedulerLatchInUseSchedulerSourceCfgUpdateSchedulerWrongWorkerInputSchedulerCantTransferToRelayWorkerSchedulerStartRelayOnSpecifiedSchedulerStopRelayOnSpecifiedSchedulerStartRelayOnBoundSchedulerStopRelayOnBoundSchedulerPauseTaskForTransferSourceSchedulerWorkerNotFreeSchedulerSubTaskNotExistSchedulerSubTaskCfgUpdateCtlGRPCCreateConnCtlInvalidTLSCfgCtlLoadTLSCfgOpenAPICommonOpenAPITaskSourceNotFoundNotSet" +======= +const _ErrCode_name = "DBDriverErrorDBBadConnDBInvalidConnDBUnExpectDBQueryFailedDBExecuteFailedParseMydumperMetaGetFileSizeDropMultipleTablesRenameMultipleTablesAlterMultipleTablesParseSQLUnknownTypeDDLRestoreASTNodeParseGTIDNotSupportedFlavorNotMySQLGTIDNotMariaDBGTIDNotUUIDStringMariaDBDomainIDInvalidServerIDGetSQLModeFromStrVerifySQLOperateArgsStatFileSizeReaderAlreadyRunningReaderAlreadyStartedReaderStateCannotCloseReaderShouldStartSyncEmptyRelayDirReadDirBaseFileNotFoundBinFileCmpCondNotSupportBinlogFileNotValidBinlogFilesNotFoundGetRelayLogStatAddWatchForRelayLogDirWatcherStartWatcherChanClosedWatcherChanRecvErrorRelayLogFileSizeSmallerBinlogFileNotSpecifiedNoRelayLogMatchPosFirstRelayLogNotMatchPosParserParseRelayLogNoSubdirToSwitchNeedSyncAgainSyncClosedSchemaTableNameNotValidGenTableRouterEncryptSecretKeyNotValidEncryptGenCipherEncryptGenIVCiphertextLenNotValidCiphertextContextNotValidInvalidBinlogPosStrEncCipherTextBase64DecodeBinlogWriteBinaryDataBinlogWriteDataToBufferBinlogHeaderLengthNotValidBinlogEventDecodeBinlogEmptyNextBinNameBinlogParseSIDBinlogEmptyGTIDBinlogGTIDSetNotValidBinlogGTIDMySQLNotValidBinlogGTIDMariaDBNotValidBinlogMariaDBServerIDMismatchBinlogOnlyOneGTIDSupportBinlogOnlyOneIntervalInUUIDBinlogIntervalValueNotValidBinlogEmptyQueryBinlogTableMapEvNotValidBinlogExpectFormatDescEvBinlogExpectTableMapEvBinlogExpectRowsEvBinlogUnexpectedEvBinlogParseSingleEvBinlogEventTypeNotValidBinlogEventNoRowsBinlogEventNoColumnsBinlogEventRowLengthNotEqBinlogColumnTypeNotSupportBinlogGoMySQLTypeNotSupportBinlogColumnTypeMisMatchBinlogDummyEvSizeTooSmallBinlogFlavorNotSupportBinlogDMLEmptyDataBinlogLatestGTIDNotInPrevBinlogReadFileByGTIDBinlogWriterNotStateNewBinlogWriterStateCannotCloseBinlogWriterNeedStartBinlogWriterOpenFileBinlogWriterGetFileStatBinlogWriterWriteDataLenBinlogWriterFileNotOpenedBinlogWriterFileSyncBinlogPrevGTIDEvNotValidBinlogDecodeMySQLGTIDSetBinlogNeedMariaDBGTIDSetBinlogParseMariaDBGTIDSetBinlogMariaDBAddGTIDSetTracingEventDataNotValidTracingUploadDataTracingEventTypeNotValidTracingGetTraceCodeTracingDataChecksumTracingGetTSOBackoffArgsNotValidInitLoggerFailGTIDTruncateInvalidRelayLogGivenPosTooBigElectionCampaignFailElectionGetLeaderIDFailBinlogInvalidFilenameWithUUIDSuffixDecodeEtcdKeyFailShardDDLOptimismTrySyncFailConnInvalidTLSConfigConnRegistryTLSConfigUpgradeVersionEtcdFailInvalidV1WorkerMetaPathFailUpdateV1DBSchemaBinlogStatusVarsParseVerifyHandleErrorArgsRewriteSQLNoUUIDDirMatchGTIDNoRelayPosMatchGTIDReaderReachEndOfFileMetadataNoBinlogLocPreviousGTIDNotExistNoMasterStatusBinlogNotLogColumnShardDDLOptimismNeedSkipAndRedirectShardDDLOptimismAddNotFullyDroppedColumnSyncerCancelledDDLIncorrectReturnColumnsNumConfigCheckItemNotSupportConfigTomlTransformConfigYamlTransformConfigTaskNameEmptyConfigEmptySourceIDConfigTooLongSourceIDConfigOnlineSchemeNotSupportConfigInvalidTimezoneConfigParseFlagSetConfigDecryptDBPasswordConfigMetaInvalidConfigMySQLInstNotFoundConfigMySQLInstsAtLeastOneConfigMySQLInstSameSourceIDConfigMydumperCfgConflictConfigLoaderCfgConflictConfigSyncerCfgConflictConfigReadCfgFromFileConfigNeedUniqueTaskNameConfigInvalidTaskModeConfigNeedTargetDBConfigMetadataNotSetConfigRouteRuleNotFoundConfigFilterRuleNotFoundConfigColumnMappingNotFoundConfigBAListNotFoundConfigMydumperCfgNotFoundConfigMydumperPathNotValidConfigLoaderCfgNotFoundConfigSyncerCfgNotFoundConfigSourceIDNotFoundConfigDuplicateCfgItemConfigShardModeNotSupportConfigMoreThanOneConfigEtcdParseConfigMissingForBoundConfigBinlogEventFilterConfigGlobalConfigsUnusedConfigExprFilterManyExprConfigExprFilterNotFoundConfigExprFilterWrongGrammarConfigExprFilterEmptyNameConfigCheckerMaxTooSmallConfigGenBAListConfigGenTableRouterConfigGenColumnMappingConfigInvalidChunkFileSizeConfigOnlineDDLInvalidRegexConfigOnlineDDLMistakeRegexConfigOpenAPITaskConfigExistConfigOpenAPITaskConfigNotExistCollationCompatibleNotSupportConfigInvalidLoadModeConfigInvalidLoadDuplicateResolutionConfigValidationModeContinuousValidatorCfgNotFoundConfigStartTimeTooLateConfigLoaderDirInvalidConfigLoaderS3NotSupportConfigInvalidSafeModeDurationConfigConfictSafeModeDurationAndSafeModeConfigInvalidLoadPhysicalDuplicateResolutionConfigInvalidLoadPhysicalChecksumConfigColumnMappingDeprecatedConfigInvalidLoadAnalyzeConfigStrictOptimisticShardModeBinlogExtractPositionBinlogInvalidFilenameBinlogParsePosFromStrCheckpointInvalidTaskModeCheckpointSaveInvalidPosCheckpointInvalidTableFileCheckpointDBNotExistInFileCheckpointTableNotExistInFileCheckpointRestoreCountGreaterTaskCheckSameTableNameTaskCheckFailedOpenDBTaskCheckGenTableRouterTaskCheckGenColumnMappingTaskCheckSyncConfigErrorTaskCheckGenBAListSourceCheckGTIDRelayParseUUIDIndexRelayParseUUIDSuffixRelayUUIDWithSuffixNotFoundRelayGenFakeRotateEventRelayNoValidRelaySubDirRelayUUIDSuffixNotValidRelayUUIDSuffixLessThanPrevRelayLoadMetaDataRelayBinlogNameNotValidRelayNoCurrentUUIDRelayFlushLocalMetaRelayUpdateIndexFileRelayLogDirpathEmptyRelayReaderNotStateNewRelayReaderStateCannotCloseRelayReaderNeedStartRelayTCPReaderStartSyncRelayTCPReaderNilGTIDRelayTCPReaderStartSyncGTIDRelayTCPReaderGetEventRelayWriterNotStateNewRelayWriterStateCannotCloseRelayWriterNeedStartRelayWriterNotOpenedRelayWriterExpectRotateEvRelayWriterRotateEvWithNoWriterRelayWriterStatusNotValidRelayWriterGetFileStatRelayWriterLatestPosGTFileSizeRelayWriterFileOperateRelayCheckBinlogFileHeaderExistRelayCheckFormatDescEventExistRelayCheckFormatDescEventParseEvRelayCheckIsDuplicateEventRelayUpdateGTIDRelayNeedPrevGTIDEvBeforeGTIDEvRelayNeedMaGTIDListEvBeforeGTIDEvRelayMkdirRelaySwitchMasterNeedGTIDRelayThisStrategyIsPurgingRelayOtherStrategyIsPurgingRelayPurgeIsForbiddenRelayNoActiveRelayLogRelayPurgeRequestNotValidRelayTrimUUIDNotFoundRelayRemoveFileFailRelayPurgeArgsNotValidPreviousGTIDsNotValidRotateEventWithDifferentServerIDDumpUnitRuntimeDumpUnitGenTableRouterDumpUnitGenBAListDumpUnitGlobalLockLoadUnitCreateSchemaFileLoadUnitInvalidFileEndingLoadUnitParseQuoteValuesLoadUnitDoColumnMappingLoadUnitReadSchemaFileLoadUnitParseStatementLoadUnitNotCreateTableLoadUnitDispatchSQLFromFileLoadUnitInvalidInsertSQLLoadUnitGenTableRouterLoadUnitGenColumnMappingLoadUnitNoDBFileLoadUnitNoTableFileLoadUnitDumpDirNotFoundLoadUnitDuplicateTableFileLoadUnitGenBAListLoadTaskWorkerNotMatchLoadCheckPointNotMatchLoadLightningRuntimeLoadLightningHasDupLoadLightningChecksumSyncerUnitPanicSyncUnitInvalidTableNameSyncUnitTableNameQuerySyncUnitNotSupportedDMLSyncUnitAddTableInShardingSyncUnitDropSchemaTableInShardingSyncUnitInvalidShardMetaSyncUnitDDLWrongSequenceSyncUnitDDLActiveIndexLargerSyncUnitDupTableGroupSyncUnitShardingGroupNotFoundSyncUnitSafeModeSetCountSyncUnitCausalityConflictSyncUnitDMLStatementFoundSyncerUnitBinlogEventFilterSyncerUnitInvalidReplicaEventSyncerUnitParseStmtSyncerUnitUUIDNotLatestSyncerUnitDDLExecChanCloseOrBusySyncerUnitDDLChanDoneSyncerUnitDDLChanCanceledSyncerUnitDDLOnMultipleTableSyncerUnitInjectDDLOnlySyncerUnitInjectDDLWithoutSchemaSyncerUnitNotSupportedOperateSyncerUnitNilOperatorReqSyncerUnitDMLColumnNotMatchSyncerUnitDMLOldNewValueMismatchSyncerUnitDMLPruneColumnMismatchSyncerUnitGenBinlogEventFilterSyncerUnitGenTableRouterSyncerUnitGenColumnMappingSyncerUnitDoColumnMappingSyncerUnitCacheKeyNotFoundSyncerUnitHeartbeatCheckConfigSyncerUnitHeartbeatRecordExistsSyncerUnitHeartbeatRecordNotFoundSyncerUnitHeartbeatRecordNotValidSyncerUnitOnlineDDLInvalidMetaSyncerUnitOnlineDDLSchemeNotSupportSyncerUnitOnlineDDLOnMultipleTableSyncerUnitGhostApplyEmptyTableSyncerUnitGhostRenameTableNotValidSyncerUnitGhostRenameToGhostTableSyncerUnitGhostRenameGhostTblToOtherSyncerUnitGhostOnlineDDLOnGhostTblSyncerUnitPTApplyEmptyTableSyncerUnitPTRenameTableNotValidSyncerUnitPTRenameToPTTableSyncerUnitPTRenamePTTblToOtherSyncerUnitPTOnlineDDLOnPTTblSyncerUnitRemoteSteamerWithGTIDSyncerUnitRemoteSteamerStartSyncSyncerUnitGetTableFromDBSyncerUnitFirstEndPosNotFoundSyncerUnitResolveCasualityFailSyncerUnitReopenStreamNotSupportSyncerUnitUpdateConfigInShardingSyncerUnitExecWithNoBlockingDDLSyncerUnitGenBAListSyncerUnitHandleDDLFailedSyncerShardDDLConflictSyncerFailpointSyncerEventSyncerOperatorNotExistSyncerEventNotExistSyncerParseDDLSyncerUnsupportedStmtSyncerGetEventSyncerDownstreamTableNotFoundSyncerReprocessWithSafeModeFailMasterSQLOpNilRequestMasterSQLOpNotSupportMasterSQLOpWithoutShardingMasterGRPCCreateConnMasterGRPCSendOnCloseConnMasterGRPCClientCloseMasterGRPCInvalidReqTypeMasterGRPCRequestErrorMasterDeployMapperVerifyMasterConfigParseFlagSetMasterConfigUnknownItemMasterConfigInvalidFlagMasterConfigTomlTransformMasterConfigTimeoutParseMasterConfigUpdateCfgFileMasterShardingDDLDiffMasterStartServiceMasterNoEmitTokenMasterLockNotFoundMasterLockIsResolvingMasterWorkerCliNotFoundMasterWorkerNotWaitLockMasterHandleSQLReqFailMasterOwnerExecDDLMasterPartWorkerExecDDLFailMasterWorkerExistDDLLockMasterGetWorkerCfgExtractorMasterTaskConfigExtractorMasterWorkerArgsExtractorMasterQueryWorkerConfigMasterOperNotFoundMasterOperRespNotSuccessMasterOperRequestTimeoutMasterHandleHTTPApisMasterHostPortNotValidMasterGetHostnameFailMasterGenEmbedEtcdConfigFailMasterStartEmbedEtcdFailMasterParseURLFailMasterJoinEmbedEtcdFailMasterInvalidOperateOpMasterAdvertiseAddrNotValidMasterRequestIsNotForwardToLeaderMasterIsNotAsyncRequestMasterFailToGetExpectResultMasterPessimistNotStartedMasterOptimistNotStartedMasterMasterNameNotExistMasterInvalidOfflineTypeMasterAdvertisePeerURLsNotValidMasterTLSConfigNotValidMasterBoundChangingMasterFailToImportFromV10xMasterInconsistentOptimistDDLsAndInfoMasterOptimisticTableInfobeforeNotExistMasterOptimisticDownstreamMetaNotFoundMasterInvalidClusterIDMasterStartTaskWorkerParseFlagSetWorkerInvalidFlagWorkerDecodeConfigFromFileWorkerUndecodedItemFromFileWorkerNeedSourceIDWorkerTooLongSourceIDWorkerRelayBinlogNameWorkerWriteConfigFileWorkerLogInvalidHandlerWorkerLogPointerInvalidWorkerLogFetchPointerWorkerLogUnmarshalPointerWorkerLogClearPointerWorkerLogTaskKeyNotValidWorkerLogUnmarshalTaskKeyWorkerLogFetchLogIterWorkerLogGetTaskLogWorkerLogUnmarshalBinaryWorkerLogForwardPointerWorkerLogMarshalTaskWorkerLogSaveTaskWorkerLogDeleteKVWorkerLogDeleteKVIterWorkerLogUnmarshalTaskMetaWorkerLogFetchTaskFromMetaWorkerLogVerifyTaskMetaWorkerLogSaveTaskMetaWorkerLogGetTaskMetaWorkerLogDeleteTaskMetaWorkerMetaTomlTransformWorkerMetaOldFileStatWorkerMetaOldReadFileWorkerMetaEncodeTaskWorkerMetaRemoveOldDirWorkerMetaTaskLogNotFoundWorkerMetaHandleTaskOrderWorkerMetaOpenTxnWorkerMetaCommitTxnWorkerRelayStageNotValidWorkerRelayOperNotSupportWorkerOpenKVDBFileWorkerUpgradeCheckKVDirWorkerMarshalVerBinaryWorkerUnmarshalVerBinaryWorkerGetVersionFromKVWorkerSaveVersionToKVWorkerVerAutoDowngradeWorkerStartServiceWorkerAlreadyClosedWorkerNotRunningStageWorkerNotPausedStageWorkerUpdateTaskStageWorkerMigrateStopRelayWorkerSubTaskNotFoundWorkerSubTaskExistsWorkerOperSyncUnitOnlyWorkerRelayUnitStageWorkerNoSyncerRunningWorkerCannotUpdateSourceIDWorkerNoAvailUnitsWorkerDDLLockInfoNotFoundWorkerDDLLockInfoExistsWorkerCacheDDLInfoExistsWorkerExecSkipDDLConflictWorkerExecDDLSyncerOnlyWorkerExecDDLTimeoutWorkerWaitRelayCatchupTimeoutWorkerRelayIsPurgingWorkerHostPortNotValidWorkerNoStartWorkerAlreadyStartedWorkerSourceNotMatchWorkerFailToGetSubtaskConfigFromEtcdWorkerFailToGetSourceConfigFromEtcdWorkerDDLLockOpNotFoundWorkerTLSConfigNotValidWorkerFailConnectMasterWorkerWaitRelayCatchupGTIDWorkerRelayConfigChangingWorkerRouteTableDupMatchWorkerUpdateSubTaskConfigWorkerValidatorNotPausedWorkerServerClosedTracerParseFlagSetTracerConfigTomlTransformTracerConfigInvalidFlagTracerTraceEventNotFoundTracerTraceIDNotProvidedTracerParamNotValidTracerPostMethodOnlyTracerEventAssertionFailTracerEventTypeNotValidTracerStartServiceHAFailTxnOperationHAInvalidItemHAFailWatchEtcdHAFailLeaseOperationHAFailKeepaliveValidatorLoadPersistedDataValidatorPersistDataValidatorGetEventValidatorProcessRowEventValidatorValidateChangeValidatorNotFoundValidatorPanicValidatorTooMuchPendingSchemaTrackerInvalidJSONSchemaTrackerCannotCreateSchemaSchemaTrackerCannotCreateTableSchemaTrackerCannotSerializeSchemaTrackerCannotGetTableSchemaTrackerCannotExecDDLSchemaTrackerCannotFetchDownstreamTableSchemaTrackerCannotParseDownstreamTableSchemaTrackerInvalidCreateTableStmtSchemaTrackerRestoreStmtFailSchemaTrackerCannotDropTableSchemaTrackerInitSchemaTrackerMarshalJSONSchemaTrackerUnMarshalJSONSchemaTrackerUnSchemaNotExistSchemaTrackerCannotSetDownstreamSQLModeSchemaTrackerCannotInitDownstreamParserSchemaTrackerCannotMockDownstreamTableSchemaTrackerCannotFetchDownstreamCreateTableStmtSchemaTrackerIsClosedSchedulerNotStartedSchedulerStartedSchedulerWorkerExistSchedulerWorkerNotExistSchedulerWorkerOnlineSchedulerWorkerInvalidTransSchedulerSourceCfgExistSchedulerSourceCfgNotExistSchedulerSourcesUnboundSchedulerSourceOpTaskExistSchedulerRelayStageInvalidUpdateSchedulerRelayStageSourceNotExistSchedulerMultiTaskSchedulerSubTaskExistSchedulerSubTaskStageInvalidUpdateSchedulerSubTaskOpTaskNotExistSchedulerSubTaskOpSourceNotExistSchedulerTaskNotExistSchedulerRequireRunningTaskInSyncUnitSchedulerRelayWorkersBusySchedulerRelayWorkersBoundSchedulerRelayWorkersWrongRelaySchedulerSourceOpRelayExistSchedulerLatchInUseSchedulerSourceCfgUpdateSchedulerWrongWorkerInputSchedulerCantTransferToRelayWorkerSchedulerStartRelayOnSpecifiedSchedulerStopRelayOnSpecifiedSchedulerStartRelayOnBoundSchedulerStopRelayOnBoundSchedulerPauseTaskForTransferSourceSchedulerWorkerNotFreeSchedulerSubTaskNotExistSchedulerSubTaskCfgUpdateCtlGRPCCreateConnCtlInvalidTLSCfgCtlLoadTLSCfgOpenAPICommonOpenAPITaskSourceNotFoundNotSet" +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) var _ErrCode_map = map[ErrCode]string{ 10001: _ErrCode_name[0:13], @@ -793,6 +804,7 @@ var _ErrCode_map = map[ErrCode]string{ 20060: _ErrCode_name[4042:4071], 20061: _ErrCode_name[4071:4111], 20062: _ErrCode_name[4111:4155], +<<<<<<< HEAD 22001: _ErrCode_name[4155:4176], 22002: _ErrCode_name[4176:4197], 22003: _ErrCode_name[4197:4218], @@ -1177,6 +1189,398 @@ var _ErrCode_map = map[ErrCode]string{ 49001: _ErrCode_name[13326:13339], 49002: _ErrCode_name[13339:13364], 50000: _ErrCode_name[13364:13370], +======= + 20063: _ErrCode_name[4155:4188], + 20064: _ErrCode_name[4188:4217], + 20065: _ErrCode_name[4217:4241], + 20066: _ErrCode_name[4241:4272], + 22001: _ErrCode_name[4272:4293], + 22002: _ErrCode_name[4293:4314], + 22003: _ErrCode_name[4314:4335], + 24001: _ErrCode_name[4335:4360], + 24002: _ErrCode_name[4360:4384], + 24003: _ErrCode_name[4384:4410], + 24004: _ErrCode_name[4410:4436], + 24005: _ErrCode_name[4436:4465], + 24006: _ErrCode_name[4465:4494], + 26001: _ErrCode_name[4494:4516], + 26002: _ErrCode_name[4516:4537], + 26003: _ErrCode_name[4537:4560], + 26004: _ErrCode_name[4560:4585], + 26005: _ErrCode_name[4585:4609], + 26006: _ErrCode_name[4609:4627], + 26007: _ErrCode_name[4627:4642], + 28001: _ErrCode_name[4642:4661], + 28002: _ErrCode_name[4661:4681], + 28003: _ErrCode_name[4681:4708], + 28004: _ErrCode_name[4708:4731], + 28005: _ErrCode_name[4731:4754], + 30001: _ErrCode_name[4754:4777], + 30002: _ErrCode_name[4777:4804], + 30003: _ErrCode_name[4804:4821], + 30004: _ErrCode_name[4821:4844], + 30005: _ErrCode_name[4844:4862], + 30006: _ErrCode_name[4862:4881], + 30007: _ErrCode_name[4881:4901], + 30008: _ErrCode_name[4901:4921], + 30009: _ErrCode_name[4921:4943], + 30010: _ErrCode_name[4943:4970], + 30011: _ErrCode_name[4970:4990], + 30012: _ErrCode_name[4990:5013], + 30013: _ErrCode_name[5013:5034], + 30014: _ErrCode_name[5034:5061], + 30015: _ErrCode_name[5061:5083], + 30016: _ErrCode_name[5083:5105], + 30017: _ErrCode_name[5105:5132], + 30018: _ErrCode_name[5132:5152], + 30019: _ErrCode_name[5152:5172], + 30020: _ErrCode_name[5172:5197], + 30021: _ErrCode_name[5197:5228], + 30022: _ErrCode_name[5228:5253], + 30023: _ErrCode_name[5253:5275], + 30024: _ErrCode_name[5275:5305], + 30025: _ErrCode_name[5305:5327], + 30026: _ErrCode_name[5327:5358], + 30027: _ErrCode_name[5358:5388], + 30028: _ErrCode_name[5388:5420], + 30029: _ErrCode_name[5420:5446], + 30030: _ErrCode_name[5446:5461], + 30031: _ErrCode_name[5461:5492], + 30032: _ErrCode_name[5492:5525], + 30033: _ErrCode_name[5525:5535], + 30034: _ErrCode_name[5535:5560], + 30035: _ErrCode_name[5560:5586], + 30036: _ErrCode_name[5586:5613], + 30037: _ErrCode_name[5613:5634], + 30038: _ErrCode_name[5634:5655], + 30039: _ErrCode_name[5655:5680], + 30040: _ErrCode_name[5680:5701], + 30041: _ErrCode_name[5701:5720], + 30042: _ErrCode_name[5720:5742], + 30043: _ErrCode_name[5742:5763], + 30044: _ErrCode_name[5763:5795], + 32001: _ErrCode_name[5795:5810], + 32002: _ErrCode_name[5810:5832], + 32003: _ErrCode_name[5832:5849], + 32004: _ErrCode_name[5849:5867], + 34001: _ErrCode_name[5867:5891], + 34002: _ErrCode_name[5891:5916], + 34003: _ErrCode_name[5916:5940], + 34004: _ErrCode_name[5940:5963], + 34005: _ErrCode_name[5963:5985], + 34006: _ErrCode_name[5985:6007], + 34007: _ErrCode_name[6007:6029], + 34008: _ErrCode_name[6029:6056], + 34009: _ErrCode_name[6056:6080], + 34010: _ErrCode_name[6080:6102], + 34011: _ErrCode_name[6102:6126], + 34012: _ErrCode_name[6126:6142], + 34013: _ErrCode_name[6142:6161], + 34014: _ErrCode_name[6161:6184], + 34015: _ErrCode_name[6184:6210], + 34016: _ErrCode_name[6210:6227], + 34017: _ErrCode_name[6227:6249], + 34018: _ErrCode_name[6249:6271], + 34019: _ErrCode_name[6271:6291], + 34020: _ErrCode_name[6291:6310], + 34021: _ErrCode_name[6310:6331], + 36001: _ErrCode_name[6331:6346], + 36002: _ErrCode_name[6346:6370], + 36003: _ErrCode_name[6370:6392], + 36004: _ErrCode_name[6392:6415], + 36005: _ErrCode_name[6415:6441], + 36006: _ErrCode_name[6441:6474], + 36007: _ErrCode_name[6474:6498], + 36008: _ErrCode_name[6498:6522], + 36009: _ErrCode_name[6522:6550], + 36010: _ErrCode_name[6550:6571], + 36011: _ErrCode_name[6571:6600], + 36012: _ErrCode_name[6600:6624], + 36013: _ErrCode_name[6624:6649], + 36014: _ErrCode_name[6649:6674], + 36015: _ErrCode_name[6674:6701], + 36016: _ErrCode_name[6701:6730], + 36017: _ErrCode_name[6730:6749], + 36018: _ErrCode_name[6749:6772], + 36019: _ErrCode_name[6772:6804], + 36020: _ErrCode_name[6804:6825], + 36021: _ErrCode_name[6825:6850], + 36022: _ErrCode_name[6850:6878], + 36023: _ErrCode_name[6878:6901], + 36024: _ErrCode_name[6901:6933], + 36025: _ErrCode_name[6933:6962], + 36026: _ErrCode_name[6962:6986], + 36027: _ErrCode_name[6986:7013], + 36028: _ErrCode_name[7013:7045], + 36029: _ErrCode_name[7045:7077], + 36030: _ErrCode_name[7077:7107], + 36031: _ErrCode_name[7107:7131], + 36032: _ErrCode_name[7131:7157], + 36033: _ErrCode_name[7157:7182], + 36034: _ErrCode_name[7182:7208], + 36035: _ErrCode_name[7208:7238], + 36036: _ErrCode_name[7238:7269], + 36037: _ErrCode_name[7269:7302], + 36038: _ErrCode_name[7302:7335], + 36039: _ErrCode_name[7335:7365], + 36040: _ErrCode_name[7365:7400], + 36041: _ErrCode_name[7400:7434], + 36042: _ErrCode_name[7434:7464], + 36043: _ErrCode_name[7464:7498], + 36044: _ErrCode_name[7498:7531], + 36045: _ErrCode_name[7531:7567], + 36046: _ErrCode_name[7567:7601], + 36047: _ErrCode_name[7601:7628], + 36048: _ErrCode_name[7628:7659], + 36049: _ErrCode_name[7659:7686], + 36050: _ErrCode_name[7686:7716], + 36051: _ErrCode_name[7716:7744], + 36052: _ErrCode_name[7744:7775], + 36053: _ErrCode_name[7775:7807], + 36054: _ErrCode_name[7807:7831], + 36055: _ErrCode_name[7831:7860], + 36056: _ErrCode_name[7860:7890], + 36057: _ErrCode_name[7890:7922], + 36058: _ErrCode_name[7922:7954], + 36059: _ErrCode_name[7954:7985], + 36060: _ErrCode_name[7985:8004], + 36061: _ErrCode_name[8004:8029], + 36062: _ErrCode_name[8029:8051], + 36063: _ErrCode_name[8051:8066], + 36064: _ErrCode_name[8066:8077], + 36065: _ErrCode_name[8077:8099], + 36066: _ErrCode_name[8099:8118], + 36067: _ErrCode_name[8118:8132], + 36068: _ErrCode_name[8132:8153], + 36069: _ErrCode_name[8153:8167], + 36070: _ErrCode_name[8167:8196], + 36071: _ErrCode_name[8196:8227], + 38001: _ErrCode_name[8227:8248], + 38002: _ErrCode_name[8248:8269], + 38003: _ErrCode_name[8269:8295], + 38004: _ErrCode_name[8295:8315], + 38005: _ErrCode_name[8315:8340], + 38006: _ErrCode_name[8340:8361], + 38007: _ErrCode_name[8361:8385], + 38008: _ErrCode_name[8385:8407], + 38009: _ErrCode_name[8407:8431], + 38010: _ErrCode_name[8431:8455], + 38011: _ErrCode_name[8455:8478], + 38012: _ErrCode_name[8478:8501], + 38013: _ErrCode_name[8501:8526], + 38014: _ErrCode_name[8526:8550], + 38015: _ErrCode_name[8550:8575], + 38016: _ErrCode_name[8575:8596], + 38017: _ErrCode_name[8596:8614], + 38018: _ErrCode_name[8614:8631], + 38019: _ErrCode_name[8631:8649], + 38020: _ErrCode_name[8649:8670], + 38021: _ErrCode_name[8670:8693], + 38022: _ErrCode_name[8693:8716], + 38023: _ErrCode_name[8716:8738], + 38024: _ErrCode_name[8738:8756], + 38025: _ErrCode_name[8756:8783], + 38026: _ErrCode_name[8783:8807], + 38027: _ErrCode_name[8807:8834], + 38028: _ErrCode_name[8834:8859], + 38029: _ErrCode_name[8859:8884], + 38030: _ErrCode_name[8884:8907], + 38031: _ErrCode_name[8907:8925], + 38032: _ErrCode_name[8925:8949], + 38033: _ErrCode_name[8949:8973], + 38034: _ErrCode_name[8973:8993], + 38035: _ErrCode_name[8993:9015], + 38036: _ErrCode_name[9015:9036], + 38037: _ErrCode_name[9036:9064], + 38038: _ErrCode_name[9064:9088], + 38039: _ErrCode_name[9088:9106], + 38040: _ErrCode_name[9106:9129], + 38041: _ErrCode_name[9129:9151], + 38042: _ErrCode_name[9151:9178], + 38043: _ErrCode_name[9178:9211], + 38044: _ErrCode_name[9211:9234], + 38045: _ErrCode_name[9234:9261], + 38046: _ErrCode_name[9261:9286], + 38047: _ErrCode_name[9286:9310], + 38048: _ErrCode_name[9310:9334], + 38049: _ErrCode_name[9334:9358], + 38050: _ErrCode_name[9358:9389], + 38051: _ErrCode_name[9389:9412], + 38052: _ErrCode_name[9412:9431], + 38053: _ErrCode_name[9431:9457], + 38054: _ErrCode_name[9457:9494], + 38055: _ErrCode_name[9494:9533], + 38056: _ErrCode_name[9533:9571], + 38057: _ErrCode_name[9571:9593], + 38058: _ErrCode_name[9593:9608], + 40001: _ErrCode_name[9608:9626], + 40002: _ErrCode_name[9626:9643], + 40003: _ErrCode_name[9643:9669], + 40004: _ErrCode_name[9669:9696], + 40005: _ErrCode_name[9696:9714], + 40006: _ErrCode_name[9714:9735], + 40007: _ErrCode_name[9735:9756], + 40008: _ErrCode_name[9756:9777], + 40009: _ErrCode_name[9777:9800], + 40010: _ErrCode_name[9800:9823], + 40011: _ErrCode_name[9823:9844], + 40012: _ErrCode_name[9844:9869], + 40013: _ErrCode_name[9869:9890], + 40014: _ErrCode_name[9890:9914], + 40015: _ErrCode_name[9914:9939], + 40016: _ErrCode_name[9939:9960], + 40017: _ErrCode_name[9960:9979], + 40018: _ErrCode_name[9979:10003], + 40019: _ErrCode_name[10003:10026], + 40020: _ErrCode_name[10026:10046], + 40021: _ErrCode_name[10046:10063], + 40022: _ErrCode_name[10063:10080], + 40023: _ErrCode_name[10080:10101], + 40024: _ErrCode_name[10101:10127], + 40025: _ErrCode_name[10127:10153], + 40026: _ErrCode_name[10153:10176], + 40027: _ErrCode_name[10176:10197], + 40028: _ErrCode_name[10197:10217], + 40029: _ErrCode_name[10217:10240], + 40030: _ErrCode_name[10240:10263], + 40031: _ErrCode_name[10263:10284], + 40032: _ErrCode_name[10284:10305], + 40033: _ErrCode_name[10305:10325], + 40034: _ErrCode_name[10325:10347], + 40035: _ErrCode_name[10347:10372], + 40036: _ErrCode_name[10372:10397], + 40037: _ErrCode_name[10397:10414], + 40038: _ErrCode_name[10414:10433], + 40039: _ErrCode_name[10433:10457], + 40040: _ErrCode_name[10457:10482], + 40041: _ErrCode_name[10482:10500], + 40042: _ErrCode_name[10500:10523], + 40043: _ErrCode_name[10523:10545], + 40044: _ErrCode_name[10545:10569], + 40045: _ErrCode_name[10569:10591], + 40046: _ErrCode_name[10591:10612], + 40047: _ErrCode_name[10612:10634], + 40048: _ErrCode_name[10634:10652], + 40049: _ErrCode_name[10652:10671], + 40050: _ErrCode_name[10671:10692], + 40051: _ErrCode_name[10692:10712], + 40052: _ErrCode_name[10712:10733], + 40053: _ErrCode_name[10733:10755], + 40054: _ErrCode_name[10755:10776], + 40055: _ErrCode_name[10776:10795], + 40056: _ErrCode_name[10795:10817], + 40057: _ErrCode_name[10817:10837], + 40058: _ErrCode_name[10837:10858], + 40059: _ErrCode_name[10858:10884], + 40060: _ErrCode_name[10884:10902], + 40061: _ErrCode_name[10902:10927], + 40062: _ErrCode_name[10927:10950], + 40063: _ErrCode_name[10950:10974], + 40064: _ErrCode_name[10974:10999], + 40065: _ErrCode_name[10999:11022], + 40066: _ErrCode_name[11022:11042], + 40067: _ErrCode_name[11042:11071], + 40068: _ErrCode_name[11071:11091], + 40069: _ErrCode_name[11091:11113], + 40070: _ErrCode_name[11113:11126], + 40071: _ErrCode_name[11126:11146], + 40072: _ErrCode_name[11146:11166], + 40073: _ErrCode_name[11166:11202], + 40074: _ErrCode_name[11202:11237], + 40075: _ErrCode_name[11237:11260], + 40076: _ErrCode_name[11260:11283], + 40077: _ErrCode_name[11283:11306], + 40078: _ErrCode_name[11306:11332], + 40079: _ErrCode_name[11332:11357], + 40080: _ErrCode_name[11357:11381], + 40081: _ErrCode_name[11381:11406], + 40082: _ErrCode_name[11406:11430], + 40083: _ErrCode_name[11430:11448], + 42001: _ErrCode_name[11448:11466], + 42002: _ErrCode_name[11466:11491], + 42003: _ErrCode_name[11491:11514], + 42004: _ErrCode_name[11514:11538], + 42005: _ErrCode_name[11538:11562], + 42006: _ErrCode_name[11562:11581], + 42007: _ErrCode_name[11581:11601], + 42008: _ErrCode_name[11601:11625], + 42009: _ErrCode_name[11625:11648], + 42010: _ErrCode_name[11648:11666], + 42501: _ErrCode_name[11666:11684], + 42502: _ErrCode_name[11684:11697], + 42503: _ErrCode_name[11697:11712], + 42504: _ErrCode_name[11712:11732], + 42505: _ErrCode_name[11732:11747], + 43001: _ErrCode_name[11747:11773], + 43002: _ErrCode_name[11773:11793], + 43003: _ErrCode_name[11793:11810], + 43004: _ErrCode_name[11810:11834], + 43005: _ErrCode_name[11834:11857], + 43006: _ErrCode_name[11857:11874], + 43007: _ErrCode_name[11874:11888], + 43008: _ErrCode_name[11888:11911], + 44001: _ErrCode_name[11911:11935], + 44002: _ErrCode_name[11935:11966], + 44003: _ErrCode_name[11966:11996], + 44004: _ErrCode_name[11996:12024], + 44005: _ErrCode_name[12024:12051], + 44006: _ErrCode_name[12051:12077], + 44007: _ErrCode_name[12077:12116], + 44008: _ErrCode_name[12116:12155], + 44009: _ErrCode_name[12155:12190], + 44010: _ErrCode_name[12190:12218], + 44011: _ErrCode_name[12218:12246], + 44012: _ErrCode_name[12246:12263], + 44013: _ErrCode_name[12263:12287], + 44014: _ErrCode_name[12287:12313], + 44015: _ErrCode_name[12313:12342], + 44016: _ErrCode_name[12342:12381], + 44017: _ErrCode_name[12381:12420], + 44018: _ErrCode_name[12420:12458], + 44019: _ErrCode_name[12458:12507], + 44020: _ErrCode_name[12507:12528], + 46001: _ErrCode_name[12528:12547], + 46002: _ErrCode_name[12547:12563], + 46003: _ErrCode_name[12563:12583], + 46004: _ErrCode_name[12583:12606], + 46005: _ErrCode_name[12606:12627], + 46006: _ErrCode_name[12627:12654], + 46007: _ErrCode_name[12654:12677], + 46008: _ErrCode_name[12677:12703], + 46009: _ErrCode_name[12703:12726], + 46010: _ErrCode_name[12726:12752], + 46011: _ErrCode_name[12752:12784], + 46012: _ErrCode_name[12784:12817], + 46013: _ErrCode_name[12817:12835], + 46014: _ErrCode_name[12835:12856], + 46015: _ErrCode_name[12856:12890], + 46016: _ErrCode_name[12890:12920], + 46017: _ErrCode_name[12920:12952], + 46018: _ErrCode_name[12952:12973], + 46019: _ErrCode_name[12973:13010], + 46020: _ErrCode_name[13010:13035], + 46021: _ErrCode_name[13035:13061], + 46022: _ErrCode_name[13061:13092], + 46023: _ErrCode_name[13092:13119], + 46024: _ErrCode_name[13119:13138], + 46025: _ErrCode_name[13138:13162], + 46026: _ErrCode_name[13162:13187], + 46027: _ErrCode_name[13187:13221], + 46028: _ErrCode_name[13221:13251], + 46029: _ErrCode_name[13251:13280], + 46030: _ErrCode_name[13280:13306], + 46031: _ErrCode_name[13306:13331], + 46032: _ErrCode_name[13331:13366], + 46033: _ErrCode_name[13366:13388], + 46034: _ErrCode_name[13388:13412], + 46035: _ErrCode_name[13412:13437], + 48001: _ErrCode_name[13437:13454], + 48002: _ErrCode_name[13454:13470], + 48003: _ErrCode_name[13470:13483], + 49001: _ErrCode_name[13483:13496], + 49002: _ErrCode_name[13496:13521], + 50000: _ErrCode_name[13521:13527], +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) } func (i ErrCode) String() string { diff --git a/dm/pkg/terror/error_list.go b/dm/pkg/terror/error_list.go index 4daf7e74fda..93a4af63e76 100644 --- a/dm/pkg/terror/error_list.go +++ b/dm/pkg/terror/error_list.go @@ -267,6 +267,13 @@ const ( codeConfigInvalidSafeModeDuration codeConfigConfictSafeModeDurationAndSafeMode codeConfigInvalidLoadPhysicalDuplicateResolution +<<<<<<< HEAD +======= + codeConfigInvalidLoadPhysicalChecksum + codeConfigColumnMappingDeprecated + codeConfigInvalidLoadAnalyze + codeConfigStrictOptimisticShardMode +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) ) // Binlog operation error code list. @@ -973,6 +980,13 @@ var ( ErrConfigInvalidSafeModeDuration = New(codeConfigInvalidSafeModeDuration, ClassConfig, ScopeInternal, LevelMedium, "safe-mode-duration '%s' parsed failed: %v", "Please check the `safe-mode-duration` is correct.") ErrConfigConfictSafeModeDurationAndSafeMode = New(codeConfigConfictSafeModeDurationAndSafeMode, ClassConfig, ScopeInternal, LevelLow, "safe-mode(true) conflicts with safe-mode-duration(0s)", "Please set safe-mode to false or safe-mode-duration to non-zero.") ErrConfigInvalidPhysicalDuplicateResolution = New(codeConfigInvalidLoadPhysicalDuplicateResolution, ClassConfig, ScopeInternal, LevelMedium, "invalid load on-duplicate-physical option '%s'", "Please choose a valid value in ['none', 'manual'] or leave it empty.") +<<<<<<< HEAD +======= + ErrConfigInvalidPhysicalChecksum = New(codeConfigInvalidLoadPhysicalChecksum, ClassConfig, ScopeInternal, LevelMedium, "invalid load checksum-physical option '%s'", "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty.") + ErrConfigColumnMappingDeprecated = New(codeConfigColumnMappingDeprecated, ClassConfig, ScopeInternal, LevelHigh, "column-mapping is not supported since v6.6.0", "Please use extract-table/extract-schema/extract-source to handle data conflict when merge tables. See https://docs.pingcap.com/tidb/v6.4/task-configuration-file-full#task-configuration-file-template-advanced") + ErrConfigInvalidLoadAnalyze = New(codeConfigInvalidLoadAnalyze, ClassConfig, ScopeInternal, LevelMedium, "invalid load analyze option '%s'", "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty.") + ErrConfigStrictOptimisticShardMode = New(codeConfigStrictOptimisticShardMode, ClassConfig, ScopeInternal, LevelMedium, "cannot enable `strict-optimistic-shard-mode` while `shard-mode` is not `optimistic`", "Please set `shard-mode` to `optimistic` if you want to enable `strict-optimistic-shard-mode`.") +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) // Binlog operation error. ErrBinlogExtractPosition = New(codeBinlogExtractPosition, ClassBinlogOp, ScopeInternal, LevelHigh, "", "") diff --git a/dm/syncer/ddl.go b/dm/syncer/ddl.go index 305d239df4d..992d776d8fe 100644 --- a/dm/syncer/ddl.go +++ b/dm/syncer/ddl.go @@ -186,6 +186,7 @@ type Optimist struct { getTableInfo func(tctx *tcontext.Context, sourceTable, targetTable *filter.Table) (*model.TableInfo, error) execError *atomic.Error optimist *shardddl.Optimist // shard DDL optimist + strict bool } func NewOptimistDDL(pLogger *log.Logger, syncer *Syncer) *Optimist { @@ -202,6 +203,7 @@ func NewOptimistDDL(pLogger *log.Logger, syncer *Syncer) *Optimist { getTableInfo: syncer.getTableInfo, execError: &syncer.execError, optimist: syncer.optimist, + strict: syncer.cfg.StrictOptimisticShardMode, } } @@ -860,6 +862,9 @@ func (ddl *Optimist) handleDDL(qec *queryEventContext) error { // To do this, we append this table to osgk to prevent the following ddl/dmls from being executed. // conflict location must be the start location for current received ddl event. case optimism.ConflictSkipWaitRedirect: + if ddl.strict { + return terror.ErrSyncerShardDDLConflict.Generate(qec.needHandleDDLs, "") + } // TODO: check if we don't need Clone for startLocation first := ddl.osgk.appendConflictTable(upTable, downTable, qec.startLocation.Clone(), ddl.flavor, ddl.enableGTID) if first { diff --git a/dm/tests/dmctl_basic/conf/get_task.yaml b/dm/tests/dmctl_basic/conf/get_task.yaml index 23c2a06c0d1..8172d2dac29 100644 --- a/dm/tests/dmctl_basic/conf/get_task.yaml +++ b/dm/tests/dmctl_basic/conf/get_task.yaml @@ -2,6 +2,7 @@ name: test task-mode: all is-sharding: true shard-mode: pessimistic +strict-optimistic-shard-mode: false ignore-checking-items: [] meta-schema: dm_meta enable-heartbeat: false diff --git a/dm/tests/import_v10x/conf/task.yaml b/dm/tests/import_v10x/conf/task.yaml index bc5928107bd..3cc0e270710 100644 --- a/dm/tests/import_v10x/conf/task.yaml +++ b/dm/tests/import_v10x/conf/task.yaml @@ -2,6 +2,7 @@ name: test task-mode: all is-sharding: false shard-mode: "" +strict-optimistic-shard-mode: false ignore-checking-items: [] meta-schema: dm_meta enable-heartbeat: false diff --git a/dm/tests/shardddl4_1/conf/double-source-strict-optimistic.yaml b/dm/tests/shardddl4_1/conf/double-source-strict-optimistic.yaml new file mode 100644 index 00000000000..c25986f6586 --- /dev/null +++ b/dm/tests/shardddl4_1/conf/double-source-strict-optimistic.yaml @@ -0,0 +1,59 @@ +--- +name: test +task-mode: all +is-sharding: true +shard-mode: "optimistic" +strict-optimistic-shard-mode: true +meta-schema: "dm_meta" +ignore-checking-items: ["auto_increment_ID"] + +target-database: + host: "127.0.0.1" + port: 4000 + user: "test" + password: "/Q7B9DizNLLTTfiZHv9WoEAKamfpIUs=" + +mysql-instances: + - source-id: "mysql-replica-01" + block-allow-list: "instance" + route-rules: ["sharding-table-rules","sharding-schema-rules"] + mydumper-config-name: "global" + loader-config-name: "global" + syncer-config-name: "global" + - source-id: "mysql-replica-02" + block-allow-list: "instance" + route-rules: ["sharding-table-rules","sharding-schema-rules"] + mydumper-config-name: "global" + loader-config-name: "global" + syncer-config-name: "global" + +block-allow-list: + instance: + do-dbs: ["shardddl1","shardddl2"] + +routes: + sharding-table-rules: + schema-pattern: "shardddl*" + target-schema: "shardddl" + table-pattern: "tb*" + target-table: "tb" + sharding-schema-rules: + schema-pattern: "shardddl*" + target-schema: "shardddl" + +mydumpers: + global: + threads: 4 + chunk-filesize: 64 + skip-tz-utc: true + extra-args: "" + +loaders: + global: + pool-size: 16 + dir: "./dumped_data" + +syncers: + global: + worker-count: 16 + batch: 100 diff --git a/dm/tests/shardddl4_1/conf/single-source-strict-optimistic.yaml b/dm/tests/shardddl4_1/conf/single-source-strict-optimistic.yaml new file mode 100644 index 00000000000..d0f83c5066d --- /dev/null +++ b/dm/tests/shardddl4_1/conf/single-source-strict-optimistic.yaml @@ -0,0 +1,52 @@ +--- +name: test +task-mode: all +is-sharding: true +shard-mode: "optimistic" +strict-optimistic-shard-mode: true +meta-schema: "dm_meta" + +target-database: + host: "127.0.0.1" + port: 4000 + user: "test" + password: "/Q7B9DizNLLTTfiZHv9WoEAKamfpIUs=" + +mysql-instances: + - source-id: "mysql-replica-01" + block-allow-list: "instance" + route-rules: ["sharding-table-rules","sharding-schema-rules"] + mydumper-config-name: "global" + loader-config-name: "global" + syncer-config-name: "global" + +block-allow-list: + instance: + do-dbs: ["shardddl1","shardddl2"] + +routes: + sharding-table-rules: + schema-pattern: "shardddl*" + target-schema: "shardddl" + table-pattern: "tb*" + target-table: "tb" + sharding-schema-rules: + schema-pattern: "shardddl*" + target-schema: "shardddl" + +mydumpers: + global: + threads: 4 + chunk-filesize: 64 + skip-tz-utc: true + extra-args: "" + +loaders: + global: + pool-size: 16 + dir: "./dumped_data" + +syncers: + global: + worker-count: 16 + batch: 100 diff --git a/dm/tests/shardddl4_1/run.sh b/dm/tests/shardddl4_1/run.sh index cf3525dedb0..b7914bf6fae 100644 --- a/dm/tests/shardddl4_1/run.sh +++ b/dm/tests/shardddl4_1/run.sh @@ -1213,12 +1213,56 @@ function DM_RESYNC_TXN_INTERRUPT() { "clean_table" "optimistic" } +function DM_STRICT_OPTIMISTIC_SINGLE_SOURCE_CASE() { + run_sql_source1 "insert into ${shardddl1}.${tb1} values(1,1);" + run_sql_source1 "insert into ${shardddl1}.${tb2} values(2,2);" + + run_sql_source1 "alter table ${shardddl1}.${tb1} add c int;" + run_sql_source1 "insert into ${shardddl1}.${tb1} values(3,3,3);" + run_sql_source1 "insert into ${shardddl1}.${tb2} values(4,4);" + + run_sql_source1 "alter table ${shardddl1}.${tb2} change b c int;" + run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "query-status test" \ + "because schema conflict detected" 1 +} + +function DM_STRICT_OPTIMISTIC_SINGLE_SOURCE() { + run_case STRICT_OPTIMISTIC_SINGLE_SOURCE "single-source-strict-optimistic" \ + "run_sql_source1 \"create table ${shardddl1}.${tb1} (a int primary key, b int);\"; \ + run_sql_source1 \"create table ${shardddl1}.${tb2} (a int primary key, b int);\"" \ + "clean_table" "optimistic" +} + +function DM_STRICT_OPTIMISTIC_DOUBLE_SOURCE_CASE() { + run_sql_source1 "insert into ${shardddl1}.${tb1} values(1,1);" + run_sql_source2 "insert into ${shardddl1}.${tb1} values(2,2);" + + run_sql_source1 "alter table ${shardddl1}.${tb1} add c int;" + run_sql_source1 "insert into ${shardddl1}.${tb1} values(3,3,3);" + run_sql_source2 "insert into ${shardddl1}.${tb1} values(4,4);" + + run_sql_source1 "alter table ${shardddl1}.${tb1} add d int not null;" + run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "query-status test" \ + "because schema conflict detected" 1 +} + +function DM_STRICT_OPTIMISTIC_DOUBLE_SOURCE() { + run_case STRICT_OPTIMISTIC_DOUBLE_SOURCE "double-source-strict-optimistic" \ + "run_sql_source1 \"create table ${shardddl1}.${tb1} (a int primary key, b int);\"; \ + run_sql_source2 \"create table ${shardddl1}.${tb1} (a int primary key, b int);\"" \ + "clean_table" "optimistic" +} + function run() { init_cluster init_database DM_TABLE_CHECKPOINT_BACKWARD DM_RESYNC_NOT_FLUSHED DM_RESYNC_TXN_INTERRUPT + DM_STRICT_OPTIMISTIC_SINGLE_SOURCE + DM_STRICT_OPTIMISTIC_DOUBLE_SOURCE start=131 end=155 except=(140 141 144) diff --git a/engine/jobmaster/dm/config/config.go b/engine/jobmaster/dm/config/config.go index 11b345e8b0e..be32cd7390e 100644 --- a/engine/jobmaster/dm/config/config.go +++ b/engine/jobmaster/dm/config/config.go @@ -75,6 +75,7 @@ func (u *UpstreamCfg) adjust() error { // It represents a DM subtask with multiple source configs embedded as Upstreams. // DISCUSS: support command line args. e.g. --start-time. type JobCfg struct { +<<<<<<< HEAD TaskMode string `yaml:"task-mode" toml:"task-mode" json:"task-mode"` ShardMode string `yaml:"shard-mode" toml:"shard-mode" json:"shard-mode"` // when `shard-mode` set, we always enable sharding support. IgnoreCheckingItems []string `yaml:"ignore-checking-items" toml:"ignore-checking-items" json:"ignore-checking-items"` @@ -91,6 +92,25 @@ type JobCfg struct { Syncers map[string]*dmconfig.SyncerConfig `yaml:"syncers" toml:"syncers" json:"syncers"` Routes map[string]*router.TableRule `yaml:"routes" toml:"routes" json:"routes"` Validators map[string]*dmconfig.ValidatorConfig `yaml:"validators" toml:"validators" json:"validators"` +======= + TaskMode string `yaml:"task-mode" toml:"task-mode" json:"task-mode"` + ShardMode string `yaml:"shard-mode" toml:"shard-mode" json:"shard-mode"` // when `shard-mode` set, we always enable sharding support. + StrictOptimisticShardMode bool `yaml:"strict-optimistic-shard-mode" toml:"strict-optimistic-shard-mode" json:"strict-optimistic-shard-mode"` + IgnoreCheckingItems []string `yaml:"ignore-checking-items" toml:"ignore-checking-items" json:"ignore-checking-items"` + Timezone string `yaml:"timezone" toml:"timezone" json:"timezone"` + CollationCompatible string `yaml:"collation_compatible" toml:"collation_compatible" json:"collation_compatible"` + TargetDB *dbconfig.DBConfig `yaml:"target-database" toml:"target-database" json:"target-database"` + ShadowTableRules []string `yaml:"shadow-table-rules" toml:"shadow-table-rules" json:"shadow-table-rules"` + TrashTableRules []string `yaml:"trash-table-rules" toml:"trash-table-rules" json:"trash-table-rules"` + Filters map[string]*bf.BinlogEventRule `yaml:"filters" toml:"filters" json:"filters"` + ExprFilter map[string]*dmconfig.ExpressionFilter `yaml:"expression-filter" toml:"expression-filter" json:"expression-filter"` + BAList map[string]*filter.Rules `yaml:"block-allow-list" toml:"block-allow-list" json:"block-allow-list"` + Mydumpers map[string]*dmconfig.MydumperConfig `yaml:"mydumpers" toml:"mydumpers" json:"mydumpers"` + Loaders map[string]*dmconfig.LoaderConfig `yaml:"loaders" toml:"loaders" json:"loaders"` + Syncers map[string]*dmconfig.SyncerConfig `yaml:"syncers" toml:"syncers" json:"syncers"` + Routes map[string]*router.TableRule `yaml:"routes" toml:"routes" json:"routes"` + Validators map[string]*dmconfig.ValidatorConfig `yaml:"validators" toml:"validators" json:"validators"` +>>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) // remove source config, use db config instead. Upstreams []*UpstreamCfg `yaml:"upstreams" toml:"upstreams" json:"upstreams"` @@ -277,6 +297,7 @@ func (c *TaskCfg) ToJobCfg() *JobCfg { func (c *TaskCfg) ToDMSubTaskCfg(jobID string) *dmconfig.SubTaskConfig { cfg := &dmconfig.SubTaskConfig{} cfg.ShardMode = c.ShardMode + cfg.StrictOptimisticShardMode = c.StrictOptimisticShardMode cfg.OnlineDDL = c.OnlineDDL cfg.ShadowTableRules = c.ShadowTableRules cfg.TrashTableRules = c.TrashTableRules diff --git a/engine/jobmaster/dm/config/dm_subtask_3306.toml b/engine/jobmaster/dm/config/dm_subtask_3306.toml index 872a3f19cf3..2b74538f185 100644 --- a/engine/jobmaster/dm/config/dm_subtask_3306.toml +++ b/engine/jobmaster/dm/config/dm_subtask_3306.toml @@ -1,5 +1,6 @@ is-sharding = false -shard-mode = "pessimistic" +shard-mode = "optimistic" +strict-optimistic-shard-mode = true online-ddl = true shadow-table-rules = [] trash-table-rules = [] diff --git a/engine/jobmaster/dm/config/dm_subtask_3307.toml b/engine/jobmaster/dm/config/dm_subtask_3307.toml index 9b0425cd826..f767f419012 100644 --- a/engine/jobmaster/dm/config/dm_subtask_3307.toml +++ b/engine/jobmaster/dm/config/dm_subtask_3307.toml @@ -1,5 +1,6 @@ is-sharding = false -shard-mode = "pessimistic" +shard-mode = "optimistic" +strict-optimistic-shard-mode = true online-ddl = true shadow-table-rules = [] trash-table-rules = [] diff --git a/engine/jobmaster/dm/config/job_template.yaml b/engine/jobmaster/dm/config/job_template.yaml index 6d1c4091e5a..1c071276d9f 100644 --- a/engine/jobmaster/dm/config/job_template.yaml +++ b/engine/jobmaster/dm/config/job_template.yaml @@ -1,5 +1,6 @@ task-mode: all -shard-mode: pessimistic +shard-mode: optimistic +strict-optimistic-shard-mode: true ignore-checking-items: [] meta-schema: dm_meta #enable-heartbeat: false From 8dfae88b1cc1f2ab433200969d81b1de5fbdc20c Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Wed, 14 Jun 2023 00:47:28 +0800 Subject: [PATCH 2/5] update --- dm/pkg/terror/errcode_string.go | 1176 ++++++++++--------------------- dm/pkg/terror/error_list.go | 12 - 2 files changed, 387 insertions(+), 801 deletions(-) diff --git a/dm/pkg/terror/errcode_string.go b/dm/pkg/terror/errcode_string.go index 4cdec30172f..950ad6124f0 100644 --- a/dm/pkg/terror/errcode_string.go +++ b/dm/pkg/terror/errcode_string.go @@ -206,13 +206,7 @@ func _() { _ = x[codeConfigInvalidSafeModeDuration-20060] _ = x[codeConfigConfictSafeModeDurationAndSafeMode-20061] _ = x[codeConfigInvalidLoadPhysicalDuplicateResolution-20062] -<<<<<<< HEAD -======= - _ = x[codeConfigInvalidLoadPhysicalChecksum-20063] - _ = x[codeConfigColumnMappingDeprecated-20064] - _ = x[codeConfigInvalidLoadAnalyze-20065] - _ = x[codeConfigStrictOptimisticShardMode-20066] ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) + _ = x[codeConfigStrictOptimisticShardMode-20063] _ = x[codeBinlogExtractPosition-22001] _ = x[codeBinlogInvalidFilename-22002] _ = x[codeBinlogParsePosFromStr-22003] @@ -599,11 +593,7 @@ func _() { _ = x[codeNotSet-50000] } -<<<<<<< HEAD -const _ErrCode_name = "DBDriverErrorDBBadConnDBInvalidConnDBUnExpectDBQueryFailedDBExecuteFailedParseMydumperMetaGetFileSizeDropMultipleTablesRenameMultipleTablesAlterMultipleTablesParseSQLUnknownTypeDDLRestoreASTNodeParseGTIDNotSupportedFlavorNotMySQLGTIDNotMariaDBGTIDNotUUIDStringMariaDBDomainIDInvalidServerIDGetSQLModeFromStrVerifySQLOperateArgsStatFileSizeReaderAlreadyRunningReaderAlreadyStartedReaderStateCannotCloseReaderShouldStartSyncEmptyRelayDirReadDirBaseFileNotFoundBinFileCmpCondNotSupportBinlogFileNotValidBinlogFilesNotFoundGetRelayLogStatAddWatchForRelayLogDirWatcherStartWatcherChanClosedWatcherChanRecvErrorRelayLogFileSizeSmallerBinlogFileNotSpecifiedNoRelayLogMatchPosFirstRelayLogNotMatchPosParserParseRelayLogNoSubdirToSwitchNeedSyncAgainSyncClosedSchemaTableNameNotValidGenTableRouterEncryptSecretKeyNotValidEncryptGenCipherEncryptGenIVCiphertextLenNotValidCiphertextContextNotValidInvalidBinlogPosStrEncCipherTextBase64DecodeBinlogWriteBinaryDataBinlogWriteDataToBufferBinlogHeaderLengthNotValidBinlogEventDecodeBinlogEmptyNextBinNameBinlogParseSIDBinlogEmptyGTIDBinlogGTIDSetNotValidBinlogGTIDMySQLNotValidBinlogGTIDMariaDBNotValidBinlogMariaDBServerIDMismatchBinlogOnlyOneGTIDSupportBinlogOnlyOneIntervalInUUIDBinlogIntervalValueNotValidBinlogEmptyQueryBinlogTableMapEvNotValidBinlogExpectFormatDescEvBinlogExpectTableMapEvBinlogExpectRowsEvBinlogUnexpectedEvBinlogParseSingleEvBinlogEventTypeNotValidBinlogEventNoRowsBinlogEventNoColumnsBinlogEventRowLengthNotEqBinlogColumnTypeNotSupportBinlogGoMySQLTypeNotSupportBinlogColumnTypeMisMatchBinlogDummyEvSizeTooSmallBinlogFlavorNotSupportBinlogDMLEmptyDataBinlogLatestGTIDNotInPrevBinlogReadFileByGTIDBinlogWriterNotStateNewBinlogWriterStateCannotCloseBinlogWriterNeedStartBinlogWriterOpenFileBinlogWriterGetFileStatBinlogWriterWriteDataLenBinlogWriterFileNotOpenedBinlogWriterFileSyncBinlogPrevGTIDEvNotValidBinlogDecodeMySQLGTIDSetBinlogNeedMariaDBGTIDSetBinlogParseMariaDBGTIDSetBinlogMariaDBAddGTIDSetTracingEventDataNotValidTracingUploadDataTracingEventTypeNotValidTracingGetTraceCodeTracingDataChecksumTracingGetTSOBackoffArgsNotValidInitLoggerFailGTIDTruncateInvalidRelayLogGivenPosTooBigElectionCampaignFailElectionGetLeaderIDFailBinlogInvalidFilenameWithUUIDSuffixDecodeEtcdKeyFailShardDDLOptimismTrySyncFailConnInvalidTLSConfigConnRegistryTLSConfigUpgradeVersionEtcdFailInvalidV1WorkerMetaPathFailUpdateV1DBSchemaBinlogStatusVarsParseVerifyHandleErrorArgsRewriteSQLNoUUIDDirMatchGTIDNoRelayPosMatchGTIDReaderReachEndOfFileMetadataNoBinlogLocPreviousGTIDNotExistNoMasterStatusBinlogNotLogColumnShardDDLOptimismNeedSkipAndRedirectShardDDLOptimismAddNotFullyDroppedColumnSyncerCancelledDDLIncorrectReturnColumnsNumConfigCheckItemNotSupportConfigTomlTransformConfigYamlTransformConfigTaskNameEmptyConfigEmptySourceIDConfigTooLongSourceIDConfigOnlineSchemeNotSupportConfigInvalidTimezoneConfigParseFlagSetConfigDecryptDBPasswordConfigMetaInvalidConfigMySQLInstNotFoundConfigMySQLInstsAtLeastOneConfigMySQLInstSameSourceIDConfigMydumperCfgConflictConfigLoaderCfgConflictConfigSyncerCfgConflictConfigReadCfgFromFileConfigNeedUniqueTaskNameConfigInvalidTaskModeConfigNeedTargetDBConfigMetadataNotSetConfigRouteRuleNotFoundConfigFilterRuleNotFoundConfigColumnMappingNotFoundConfigBAListNotFoundConfigMydumperCfgNotFoundConfigMydumperPathNotValidConfigLoaderCfgNotFoundConfigSyncerCfgNotFoundConfigSourceIDNotFoundConfigDuplicateCfgItemConfigShardModeNotSupportConfigMoreThanOneConfigEtcdParseConfigMissingForBoundConfigBinlogEventFilterConfigGlobalConfigsUnusedConfigExprFilterManyExprConfigExprFilterNotFoundConfigExprFilterWrongGrammarConfigExprFilterEmptyNameConfigCheckerMaxTooSmallConfigGenBAListConfigGenTableRouterConfigGenColumnMappingConfigInvalidChunkFileSizeConfigOnlineDDLInvalidRegexConfigOnlineDDLMistakeRegexConfigOpenAPITaskConfigExistConfigOpenAPITaskConfigNotExistCollationCompatibleNotSupportConfigInvalidLoadModeConfigInvalidLoadDuplicateResolutionConfigValidationModeContinuousValidatorCfgNotFoundConfigStartTimeTooLateConfigLoaderDirInvalidConfigLoaderS3NotSupportConfigInvalidSafeModeDurationConfigConfictSafeModeDurationAndSafeModeConfigInvalidLoadPhysicalDuplicateResolutionBinlogExtractPositionBinlogInvalidFilenameBinlogParsePosFromStrCheckpointInvalidTaskModeCheckpointSaveInvalidPosCheckpointInvalidTableFileCheckpointDBNotExistInFileCheckpointTableNotExistInFileCheckpointRestoreCountGreaterTaskCheckSameTableNameTaskCheckFailedOpenDBTaskCheckGenTableRouterTaskCheckGenColumnMappingTaskCheckSyncConfigErrorTaskCheckGenBAListSourceCheckGTIDRelayParseUUIDIndexRelayParseUUIDSuffixRelayUUIDWithSuffixNotFoundRelayGenFakeRotateEventRelayNoValidRelaySubDirRelayUUIDSuffixNotValidRelayUUIDSuffixLessThanPrevRelayLoadMetaDataRelayBinlogNameNotValidRelayNoCurrentUUIDRelayFlushLocalMetaRelayUpdateIndexFileRelayLogDirpathEmptyRelayReaderNotStateNewRelayReaderStateCannotCloseRelayReaderNeedStartRelayTCPReaderStartSyncRelayTCPReaderNilGTIDRelayTCPReaderStartSyncGTIDRelayTCPReaderGetEventRelayWriterNotStateNewRelayWriterStateCannotCloseRelayWriterNeedStartRelayWriterNotOpenedRelayWriterExpectRotateEvRelayWriterRotateEvWithNoWriterRelayWriterStatusNotValidRelayWriterGetFileStatRelayWriterLatestPosGTFileSizeRelayWriterFileOperateRelayCheckBinlogFileHeaderExistRelayCheckFormatDescEventExistRelayCheckFormatDescEventParseEvRelayCheckIsDuplicateEventRelayUpdateGTIDRelayNeedPrevGTIDEvBeforeGTIDEvRelayNeedMaGTIDListEvBeforeGTIDEvRelayMkdirRelaySwitchMasterNeedGTIDRelayThisStrategyIsPurgingRelayOtherStrategyIsPurgingRelayPurgeIsForbiddenRelayNoActiveRelayLogRelayPurgeRequestNotValidRelayTrimUUIDNotFoundRelayRemoveFileFailRelayPurgeArgsNotValidPreviousGTIDsNotValidRotateEventWithDifferentServerIDDumpUnitRuntimeDumpUnitGenTableRouterDumpUnitGenBAListDumpUnitGlobalLockLoadUnitCreateSchemaFileLoadUnitInvalidFileEndingLoadUnitParseQuoteValuesLoadUnitDoColumnMappingLoadUnitReadSchemaFileLoadUnitParseStatementLoadUnitNotCreateTableLoadUnitDispatchSQLFromFileLoadUnitInvalidInsertSQLLoadUnitGenTableRouterLoadUnitGenColumnMappingLoadUnitNoDBFileLoadUnitNoTableFileLoadUnitDumpDirNotFoundLoadUnitDuplicateTableFileLoadUnitGenBAListLoadTaskWorkerNotMatchLoadCheckPointNotMatchLoadLightningRuntimeSyncerUnitPanicSyncUnitInvalidTableNameSyncUnitTableNameQuerySyncUnitNotSupportedDMLSyncUnitAddTableInShardingSyncUnitDropSchemaTableInShardingSyncUnitInvalidShardMetaSyncUnitDDLWrongSequenceSyncUnitDDLActiveIndexLargerSyncUnitDupTableGroupSyncUnitShardingGroupNotFoundSyncUnitSafeModeSetCountSyncUnitCausalityConflictSyncUnitDMLStatementFoundSyncerUnitBinlogEventFilterSyncerUnitInvalidReplicaEventSyncerUnitParseStmtSyncerUnitUUIDNotLatestSyncerUnitDDLExecChanCloseOrBusySyncerUnitDDLChanDoneSyncerUnitDDLChanCanceledSyncerUnitDDLOnMultipleTableSyncerUnitInjectDDLOnlySyncerUnitInjectDDLWithoutSchemaSyncerUnitNotSupportedOperateSyncerUnitNilOperatorReqSyncerUnitDMLColumnNotMatchSyncerUnitDMLOldNewValueMismatchSyncerUnitDMLPruneColumnMismatchSyncerUnitGenBinlogEventFilterSyncerUnitGenTableRouterSyncerUnitGenColumnMappingSyncerUnitDoColumnMappingSyncerUnitCacheKeyNotFoundSyncerUnitHeartbeatCheckConfigSyncerUnitHeartbeatRecordExistsSyncerUnitHeartbeatRecordNotFoundSyncerUnitHeartbeatRecordNotValidSyncerUnitOnlineDDLInvalidMetaSyncerUnitOnlineDDLSchemeNotSupportSyncerUnitOnlineDDLOnMultipleTableSyncerUnitGhostApplyEmptyTableSyncerUnitGhostRenameTableNotValidSyncerUnitGhostRenameToGhostTableSyncerUnitGhostRenameGhostTblToOtherSyncerUnitGhostOnlineDDLOnGhostTblSyncerUnitPTApplyEmptyTableSyncerUnitPTRenameTableNotValidSyncerUnitPTRenameToPTTableSyncerUnitPTRenamePTTblToOtherSyncerUnitPTOnlineDDLOnPTTblSyncerUnitRemoteSteamerWithGTIDSyncerUnitRemoteSteamerStartSyncSyncerUnitGetTableFromDBSyncerUnitFirstEndPosNotFoundSyncerUnitResolveCasualityFailSyncerUnitReopenStreamNotSupportSyncerUnitUpdateConfigInShardingSyncerUnitExecWithNoBlockingDDLSyncerUnitGenBAListSyncerUnitHandleDDLFailedSyncerShardDDLConflictSyncerFailpointSyncerEventSyncerOperatorNotExistSyncerEventNotExistSyncerParseDDLSyncerUnsupportedStmtSyncerGetEventSyncerDownstreamTableNotFoundSyncerReprocessWithSafeModeFailMasterSQLOpNilRequestMasterSQLOpNotSupportMasterSQLOpWithoutShardingMasterGRPCCreateConnMasterGRPCSendOnCloseConnMasterGRPCClientCloseMasterGRPCInvalidReqTypeMasterGRPCRequestErrorMasterDeployMapperVerifyMasterConfigParseFlagSetMasterConfigUnknownItemMasterConfigInvalidFlagMasterConfigTomlTransformMasterConfigTimeoutParseMasterConfigUpdateCfgFileMasterShardingDDLDiffMasterStartServiceMasterNoEmitTokenMasterLockNotFoundMasterLockIsResolvingMasterWorkerCliNotFoundMasterWorkerNotWaitLockMasterHandleSQLReqFailMasterOwnerExecDDLMasterPartWorkerExecDDLFailMasterWorkerExistDDLLockMasterGetWorkerCfgExtractorMasterTaskConfigExtractorMasterWorkerArgsExtractorMasterQueryWorkerConfigMasterOperNotFoundMasterOperRespNotSuccessMasterOperRequestTimeoutMasterHandleHTTPApisMasterHostPortNotValidMasterGetHostnameFailMasterGenEmbedEtcdConfigFailMasterStartEmbedEtcdFailMasterParseURLFailMasterJoinEmbedEtcdFailMasterInvalidOperateOpMasterAdvertiseAddrNotValidMasterRequestIsNotForwardToLeaderMasterIsNotAsyncRequestMasterFailToGetExpectResultMasterPessimistNotStartedMasterOptimistNotStartedMasterMasterNameNotExistMasterInvalidOfflineTypeMasterAdvertisePeerURLsNotValidMasterTLSConfigNotValidMasterBoundChangingMasterFailToImportFromV10xMasterInconsistentOptimistDDLsAndInfoMasterOptimisticTableInfobeforeNotExistMasterOptimisticDownstreamMetaNotFoundMasterInvalidClusterIDMasterStartTaskWorkerParseFlagSetWorkerInvalidFlagWorkerDecodeConfigFromFileWorkerUndecodedItemFromFileWorkerNeedSourceIDWorkerTooLongSourceIDWorkerRelayBinlogNameWorkerWriteConfigFileWorkerLogInvalidHandlerWorkerLogPointerInvalidWorkerLogFetchPointerWorkerLogUnmarshalPointerWorkerLogClearPointerWorkerLogTaskKeyNotValidWorkerLogUnmarshalTaskKeyWorkerLogFetchLogIterWorkerLogGetTaskLogWorkerLogUnmarshalBinaryWorkerLogForwardPointerWorkerLogMarshalTaskWorkerLogSaveTaskWorkerLogDeleteKVWorkerLogDeleteKVIterWorkerLogUnmarshalTaskMetaWorkerLogFetchTaskFromMetaWorkerLogVerifyTaskMetaWorkerLogSaveTaskMetaWorkerLogGetTaskMetaWorkerLogDeleteTaskMetaWorkerMetaTomlTransformWorkerMetaOldFileStatWorkerMetaOldReadFileWorkerMetaEncodeTaskWorkerMetaRemoveOldDirWorkerMetaTaskLogNotFoundWorkerMetaHandleTaskOrderWorkerMetaOpenTxnWorkerMetaCommitTxnWorkerRelayStageNotValidWorkerRelayOperNotSupportWorkerOpenKVDBFileWorkerUpgradeCheckKVDirWorkerMarshalVerBinaryWorkerUnmarshalVerBinaryWorkerGetVersionFromKVWorkerSaveVersionToKVWorkerVerAutoDowngradeWorkerStartServiceWorkerAlreadyClosedWorkerNotRunningStageWorkerNotPausedStageWorkerUpdateTaskStageWorkerMigrateStopRelayWorkerSubTaskNotFoundWorkerSubTaskExistsWorkerOperSyncUnitOnlyWorkerRelayUnitStageWorkerNoSyncerRunningWorkerCannotUpdateSourceIDWorkerNoAvailUnitsWorkerDDLLockInfoNotFoundWorkerDDLLockInfoExistsWorkerCacheDDLInfoExistsWorkerExecSkipDDLConflictWorkerExecDDLSyncerOnlyWorkerExecDDLTimeoutWorkerWaitRelayCatchupTimeoutWorkerRelayIsPurgingWorkerHostPortNotValidWorkerNoStartWorkerAlreadyStartedWorkerSourceNotMatchWorkerFailToGetSubtaskConfigFromEtcdWorkerFailToGetSourceConfigFromEtcdWorkerDDLLockOpNotFoundWorkerTLSConfigNotValidWorkerFailConnectMasterWorkerWaitRelayCatchupGTIDWorkerRelayConfigChangingWorkerRouteTableDupMatchWorkerUpdateSubTaskConfigWorkerValidatorNotPausedWorkerServerClosedTracerParseFlagSetTracerConfigTomlTransformTracerConfigInvalidFlagTracerTraceEventNotFoundTracerTraceIDNotProvidedTracerParamNotValidTracerPostMethodOnlyTracerEventAssertionFailTracerEventTypeNotValidTracerStartServiceHAFailTxnOperationHAInvalidItemHAFailWatchEtcdHAFailLeaseOperationHAFailKeepaliveValidatorLoadPersistedDataValidatorPersistDataValidatorGetEventValidatorProcessRowEventValidatorValidateChangeValidatorNotFoundValidatorPanicValidatorTooMuchPendingSchemaTrackerInvalidJSONSchemaTrackerCannotCreateSchemaSchemaTrackerCannotCreateTableSchemaTrackerCannotSerializeSchemaTrackerCannotGetTableSchemaTrackerCannotExecDDLSchemaTrackerCannotFetchDownstreamTableSchemaTrackerCannotParseDownstreamTableSchemaTrackerInvalidCreateTableStmtSchemaTrackerRestoreStmtFailSchemaTrackerCannotDropTableSchemaTrackerInitSchemaTrackerMarshalJSONSchemaTrackerUnMarshalJSONSchemaTrackerUnSchemaNotExistSchemaTrackerCannotSetDownstreamSQLModeSchemaTrackerCannotInitDownstreamParserSchemaTrackerCannotMockDownstreamTableSchemaTrackerCannotFetchDownstreamCreateTableStmtSchemaTrackerIsClosedSchedulerNotStartedSchedulerStartedSchedulerWorkerExistSchedulerWorkerNotExistSchedulerWorkerOnlineSchedulerWorkerInvalidTransSchedulerSourceCfgExistSchedulerSourceCfgNotExistSchedulerSourcesUnboundSchedulerSourceOpTaskExistSchedulerRelayStageInvalidUpdateSchedulerRelayStageSourceNotExistSchedulerMultiTaskSchedulerSubTaskExistSchedulerSubTaskStageInvalidUpdateSchedulerSubTaskOpTaskNotExistSchedulerSubTaskOpSourceNotExistSchedulerTaskNotExistSchedulerRequireRunningTaskInSyncUnitSchedulerRelayWorkersBusySchedulerRelayWorkersBoundSchedulerRelayWorkersWrongRelaySchedulerSourceOpRelayExistSchedulerLatchInUseSchedulerSourceCfgUpdateSchedulerWrongWorkerInputSchedulerCantTransferToRelayWorkerSchedulerStartRelayOnSpecifiedSchedulerStopRelayOnSpecifiedSchedulerStartRelayOnBoundSchedulerStopRelayOnBoundSchedulerPauseTaskForTransferSourceSchedulerWorkerNotFreeSchedulerSubTaskNotExistSchedulerSubTaskCfgUpdateCtlGRPCCreateConnCtlInvalidTLSCfgCtlLoadTLSCfgOpenAPICommonOpenAPITaskSourceNotFoundNotSet" -======= -const _ErrCode_name = "DBDriverErrorDBBadConnDBInvalidConnDBUnExpectDBQueryFailedDBExecuteFailedParseMydumperMetaGetFileSizeDropMultipleTablesRenameMultipleTablesAlterMultipleTablesParseSQLUnknownTypeDDLRestoreASTNodeParseGTIDNotSupportedFlavorNotMySQLGTIDNotMariaDBGTIDNotUUIDStringMariaDBDomainIDInvalidServerIDGetSQLModeFromStrVerifySQLOperateArgsStatFileSizeReaderAlreadyRunningReaderAlreadyStartedReaderStateCannotCloseReaderShouldStartSyncEmptyRelayDirReadDirBaseFileNotFoundBinFileCmpCondNotSupportBinlogFileNotValidBinlogFilesNotFoundGetRelayLogStatAddWatchForRelayLogDirWatcherStartWatcherChanClosedWatcherChanRecvErrorRelayLogFileSizeSmallerBinlogFileNotSpecifiedNoRelayLogMatchPosFirstRelayLogNotMatchPosParserParseRelayLogNoSubdirToSwitchNeedSyncAgainSyncClosedSchemaTableNameNotValidGenTableRouterEncryptSecretKeyNotValidEncryptGenCipherEncryptGenIVCiphertextLenNotValidCiphertextContextNotValidInvalidBinlogPosStrEncCipherTextBase64DecodeBinlogWriteBinaryDataBinlogWriteDataToBufferBinlogHeaderLengthNotValidBinlogEventDecodeBinlogEmptyNextBinNameBinlogParseSIDBinlogEmptyGTIDBinlogGTIDSetNotValidBinlogGTIDMySQLNotValidBinlogGTIDMariaDBNotValidBinlogMariaDBServerIDMismatchBinlogOnlyOneGTIDSupportBinlogOnlyOneIntervalInUUIDBinlogIntervalValueNotValidBinlogEmptyQueryBinlogTableMapEvNotValidBinlogExpectFormatDescEvBinlogExpectTableMapEvBinlogExpectRowsEvBinlogUnexpectedEvBinlogParseSingleEvBinlogEventTypeNotValidBinlogEventNoRowsBinlogEventNoColumnsBinlogEventRowLengthNotEqBinlogColumnTypeNotSupportBinlogGoMySQLTypeNotSupportBinlogColumnTypeMisMatchBinlogDummyEvSizeTooSmallBinlogFlavorNotSupportBinlogDMLEmptyDataBinlogLatestGTIDNotInPrevBinlogReadFileByGTIDBinlogWriterNotStateNewBinlogWriterStateCannotCloseBinlogWriterNeedStartBinlogWriterOpenFileBinlogWriterGetFileStatBinlogWriterWriteDataLenBinlogWriterFileNotOpenedBinlogWriterFileSyncBinlogPrevGTIDEvNotValidBinlogDecodeMySQLGTIDSetBinlogNeedMariaDBGTIDSetBinlogParseMariaDBGTIDSetBinlogMariaDBAddGTIDSetTracingEventDataNotValidTracingUploadDataTracingEventTypeNotValidTracingGetTraceCodeTracingDataChecksumTracingGetTSOBackoffArgsNotValidInitLoggerFailGTIDTruncateInvalidRelayLogGivenPosTooBigElectionCampaignFailElectionGetLeaderIDFailBinlogInvalidFilenameWithUUIDSuffixDecodeEtcdKeyFailShardDDLOptimismTrySyncFailConnInvalidTLSConfigConnRegistryTLSConfigUpgradeVersionEtcdFailInvalidV1WorkerMetaPathFailUpdateV1DBSchemaBinlogStatusVarsParseVerifyHandleErrorArgsRewriteSQLNoUUIDDirMatchGTIDNoRelayPosMatchGTIDReaderReachEndOfFileMetadataNoBinlogLocPreviousGTIDNotExistNoMasterStatusBinlogNotLogColumnShardDDLOptimismNeedSkipAndRedirectShardDDLOptimismAddNotFullyDroppedColumnSyncerCancelledDDLIncorrectReturnColumnsNumConfigCheckItemNotSupportConfigTomlTransformConfigYamlTransformConfigTaskNameEmptyConfigEmptySourceIDConfigTooLongSourceIDConfigOnlineSchemeNotSupportConfigInvalidTimezoneConfigParseFlagSetConfigDecryptDBPasswordConfigMetaInvalidConfigMySQLInstNotFoundConfigMySQLInstsAtLeastOneConfigMySQLInstSameSourceIDConfigMydumperCfgConflictConfigLoaderCfgConflictConfigSyncerCfgConflictConfigReadCfgFromFileConfigNeedUniqueTaskNameConfigInvalidTaskModeConfigNeedTargetDBConfigMetadataNotSetConfigRouteRuleNotFoundConfigFilterRuleNotFoundConfigColumnMappingNotFoundConfigBAListNotFoundConfigMydumperCfgNotFoundConfigMydumperPathNotValidConfigLoaderCfgNotFoundConfigSyncerCfgNotFoundConfigSourceIDNotFoundConfigDuplicateCfgItemConfigShardModeNotSupportConfigMoreThanOneConfigEtcdParseConfigMissingForBoundConfigBinlogEventFilterConfigGlobalConfigsUnusedConfigExprFilterManyExprConfigExprFilterNotFoundConfigExprFilterWrongGrammarConfigExprFilterEmptyNameConfigCheckerMaxTooSmallConfigGenBAListConfigGenTableRouterConfigGenColumnMappingConfigInvalidChunkFileSizeConfigOnlineDDLInvalidRegexConfigOnlineDDLMistakeRegexConfigOpenAPITaskConfigExistConfigOpenAPITaskConfigNotExistCollationCompatibleNotSupportConfigInvalidLoadModeConfigInvalidLoadDuplicateResolutionConfigValidationModeContinuousValidatorCfgNotFoundConfigStartTimeTooLateConfigLoaderDirInvalidConfigLoaderS3NotSupportConfigInvalidSafeModeDurationConfigConfictSafeModeDurationAndSafeModeConfigInvalidLoadPhysicalDuplicateResolutionConfigInvalidLoadPhysicalChecksumConfigColumnMappingDeprecatedConfigInvalidLoadAnalyzeConfigStrictOptimisticShardModeBinlogExtractPositionBinlogInvalidFilenameBinlogParsePosFromStrCheckpointInvalidTaskModeCheckpointSaveInvalidPosCheckpointInvalidTableFileCheckpointDBNotExistInFileCheckpointTableNotExistInFileCheckpointRestoreCountGreaterTaskCheckSameTableNameTaskCheckFailedOpenDBTaskCheckGenTableRouterTaskCheckGenColumnMappingTaskCheckSyncConfigErrorTaskCheckGenBAListSourceCheckGTIDRelayParseUUIDIndexRelayParseUUIDSuffixRelayUUIDWithSuffixNotFoundRelayGenFakeRotateEventRelayNoValidRelaySubDirRelayUUIDSuffixNotValidRelayUUIDSuffixLessThanPrevRelayLoadMetaDataRelayBinlogNameNotValidRelayNoCurrentUUIDRelayFlushLocalMetaRelayUpdateIndexFileRelayLogDirpathEmptyRelayReaderNotStateNewRelayReaderStateCannotCloseRelayReaderNeedStartRelayTCPReaderStartSyncRelayTCPReaderNilGTIDRelayTCPReaderStartSyncGTIDRelayTCPReaderGetEventRelayWriterNotStateNewRelayWriterStateCannotCloseRelayWriterNeedStartRelayWriterNotOpenedRelayWriterExpectRotateEvRelayWriterRotateEvWithNoWriterRelayWriterStatusNotValidRelayWriterGetFileStatRelayWriterLatestPosGTFileSizeRelayWriterFileOperateRelayCheckBinlogFileHeaderExistRelayCheckFormatDescEventExistRelayCheckFormatDescEventParseEvRelayCheckIsDuplicateEventRelayUpdateGTIDRelayNeedPrevGTIDEvBeforeGTIDEvRelayNeedMaGTIDListEvBeforeGTIDEvRelayMkdirRelaySwitchMasterNeedGTIDRelayThisStrategyIsPurgingRelayOtherStrategyIsPurgingRelayPurgeIsForbiddenRelayNoActiveRelayLogRelayPurgeRequestNotValidRelayTrimUUIDNotFoundRelayRemoveFileFailRelayPurgeArgsNotValidPreviousGTIDsNotValidRotateEventWithDifferentServerIDDumpUnitRuntimeDumpUnitGenTableRouterDumpUnitGenBAListDumpUnitGlobalLockLoadUnitCreateSchemaFileLoadUnitInvalidFileEndingLoadUnitParseQuoteValuesLoadUnitDoColumnMappingLoadUnitReadSchemaFileLoadUnitParseStatementLoadUnitNotCreateTableLoadUnitDispatchSQLFromFileLoadUnitInvalidInsertSQLLoadUnitGenTableRouterLoadUnitGenColumnMappingLoadUnitNoDBFileLoadUnitNoTableFileLoadUnitDumpDirNotFoundLoadUnitDuplicateTableFileLoadUnitGenBAListLoadTaskWorkerNotMatchLoadCheckPointNotMatchLoadLightningRuntimeLoadLightningHasDupLoadLightningChecksumSyncerUnitPanicSyncUnitInvalidTableNameSyncUnitTableNameQuerySyncUnitNotSupportedDMLSyncUnitAddTableInShardingSyncUnitDropSchemaTableInShardingSyncUnitInvalidShardMetaSyncUnitDDLWrongSequenceSyncUnitDDLActiveIndexLargerSyncUnitDupTableGroupSyncUnitShardingGroupNotFoundSyncUnitSafeModeSetCountSyncUnitCausalityConflictSyncUnitDMLStatementFoundSyncerUnitBinlogEventFilterSyncerUnitInvalidReplicaEventSyncerUnitParseStmtSyncerUnitUUIDNotLatestSyncerUnitDDLExecChanCloseOrBusySyncerUnitDDLChanDoneSyncerUnitDDLChanCanceledSyncerUnitDDLOnMultipleTableSyncerUnitInjectDDLOnlySyncerUnitInjectDDLWithoutSchemaSyncerUnitNotSupportedOperateSyncerUnitNilOperatorReqSyncerUnitDMLColumnNotMatchSyncerUnitDMLOldNewValueMismatchSyncerUnitDMLPruneColumnMismatchSyncerUnitGenBinlogEventFilterSyncerUnitGenTableRouterSyncerUnitGenColumnMappingSyncerUnitDoColumnMappingSyncerUnitCacheKeyNotFoundSyncerUnitHeartbeatCheckConfigSyncerUnitHeartbeatRecordExistsSyncerUnitHeartbeatRecordNotFoundSyncerUnitHeartbeatRecordNotValidSyncerUnitOnlineDDLInvalidMetaSyncerUnitOnlineDDLSchemeNotSupportSyncerUnitOnlineDDLOnMultipleTableSyncerUnitGhostApplyEmptyTableSyncerUnitGhostRenameTableNotValidSyncerUnitGhostRenameToGhostTableSyncerUnitGhostRenameGhostTblToOtherSyncerUnitGhostOnlineDDLOnGhostTblSyncerUnitPTApplyEmptyTableSyncerUnitPTRenameTableNotValidSyncerUnitPTRenameToPTTableSyncerUnitPTRenamePTTblToOtherSyncerUnitPTOnlineDDLOnPTTblSyncerUnitRemoteSteamerWithGTIDSyncerUnitRemoteSteamerStartSyncSyncerUnitGetTableFromDBSyncerUnitFirstEndPosNotFoundSyncerUnitResolveCasualityFailSyncerUnitReopenStreamNotSupportSyncerUnitUpdateConfigInShardingSyncerUnitExecWithNoBlockingDDLSyncerUnitGenBAListSyncerUnitHandleDDLFailedSyncerShardDDLConflictSyncerFailpointSyncerEventSyncerOperatorNotExistSyncerEventNotExistSyncerParseDDLSyncerUnsupportedStmtSyncerGetEventSyncerDownstreamTableNotFoundSyncerReprocessWithSafeModeFailMasterSQLOpNilRequestMasterSQLOpNotSupportMasterSQLOpWithoutShardingMasterGRPCCreateConnMasterGRPCSendOnCloseConnMasterGRPCClientCloseMasterGRPCInvalidReqTypeMasterGRPCRequestErrorMasterDeployMapperVerifyMasterConfigParseFlagSetMasterConfigUnknownItemMasterConfigInvalidFlagMasterConfigTomlTransformMasterConfigTimeoutParseMasterConfigUpdateCfgFileMasterShardingDDLDiffMasterStartServiceMasterNoEmitTokenMasterLockNotFoundMasterLockIsResolvingMasterWorkerCliNotFoundMasterWorkerNotWaitLockMasterHandleSQLReqFailMasterOwnerExecDDLMasterPartWorkerExecDDLFailMasterWorkerExistDDLLockMasterGetWorkerCfgExtractorMasterTaskConfigExtractorMasterWorkerArgsExtractorMasterQueryWorkerConfigMasterOperNotFoundMasterOperRespNotSuccessMasterOperRequestTimeoutMasterHandleHTTPApisMasterHostPortNotValidMasterGetHostnameFailMasterGenEmbedEtcdConfigFailMasterStartEmbedEtcdFailMasterParseURLFailMasterJoinEmbedEtcdFailMasterInvalidOperateOpMasterAdvertiseAddrNotValidMasterRequestIsNotForwardToLeaderMasterIsNotAsyncRequestMasterFailToGetExpectResultMasterPessimistNotStartedMasterOptimistNotStartedMasterMasterNameNotExistMasterInvalidOfflineTypeMasterAdvertisePeerURLsNotValidMasterTLSConfigNotValidMasterBoundChangingMasterFailToImportFromV10xMasterInconsistentOptimistDDLsAndInfoMasterOptimisticTableInfobeforeNotExistMasterOptimisticDownstreamMetaNotFoundMasterInvalidClusterIDMasterStartTaskWorkerParseFlagSetWorkerInvalidFlagWorkerDecodeConfigFromFileWorkerUndecodedItemFromFileWorkerNeedSourceIDWorkerTooLongSourceIDWorkerRelayBinlogNameWorkerWriteConfigFileWorkerLogInvalidHandlerWorkerLogPointerInvalidWorkerLogFetchPointerWorkerLogUnmarshalPointerWorkerLogClearPointerWorkerLogTaskKeyNotValidWorkerLogUnmarshalTaskKeyWorkerLogFetchLogIterWorkerLogGetTaskLogWorkerLogUnmarshalBinaryWorkerLogForwardPointerWorkerLogMarshalTaskWorkerLogSaveTaskWorkerLogDeleteKVWorkerLogDeleteKVIterWorkerLogUnmarshalTaskMetaWorkerLogFetchTaskFromMetaWorkerLogVerifyTaskMetaWorkerLogSaveTaskMetaWorkerLogGetTaskMetaWorkerLogDeleteTaskMetaWorkerMetaTomlTransformWorkerMetaOldFileStatWorkerMetaOldReadFileWorkerMetaEncodeTaskWorkerMetaRemoveOldDirWorkerMetaTaskLogNotFoundWorkerMetaHandleTaskOrderWorkerMetaOpenTxnWorkerMetaCommitTxnWorkerRelayStageNotValidWorkerRelayOperNotSupportWorkerOpenKVDBFileWorkerUpgradeCheckKVDirWorkerMarshalVerBinaryWorkerUnmarshalVerBinaryWorkerGetVersionFromKVWorkerSaveVersionToKVWorkerVerAutoDowngradeWorkerStartServiceWorkerAlreadyClosedWorkerNotRunningStageWorkerNotPausedStageWorkerUpdateTaskStageWorkerMigrateStopRelayWorkerSubTaskNotFoundWorkerSubTaskExistsWorkerOperSyncUnitOnlyWorkerRelayUnitStageWorkerNoSyncerRunningWorkerCannotUpdateSourceIDWorkerNoAvailUnitsWorkerDDLLockInfoNotFoundWorkerDDLLockInfoExistsWorkerCacheDDLInfoExistsWorkerExecSkipDDLConflictWorkerExecDDLSyncerOnlyWorkerExecDDLTimeoutWorkerWaitRelayCatchupTimeoutWorkerRelayIsPurgingWorkerHostPortNotValidWorkerNoStartWorkerAlreadyStartedWorkerSourceNotMatchWorkerFailToGetSubtaskConfigFromEtcdWorkerFailToGetSourceConfigFromEtcdWorkerDDLLockOpNotFoundWorkerTLSConfigNotValidWorkerFailConnectMasterWorkerWaitRelayCatchupGTIDWorkerRelayConfigChangingWorkerRouteTableDupMatchWorkerUpdateSubTaskConfigWorkerValidatorNotPausedWorkerServerClosedTracerParseFlagSetTracerConfigTomlTransformTracerConfigInvalidFlagTracerTraceEventNotFoundTracerTraceIDNotProvidedTracerParamNotValidTracerPostMethodOnlyTracerEventAssertionFailTracerEventTypeNotValidTracerStartServiceHAFailTxnOperationHAInvalidItemHAFailWatchEtcdHAFailLeaseOperationHAFailKeepaliveValidatorLoadPersistedDataValidatorPersistDataValidatorGetEventValidatorProcessRowEventValidatorValidateChangeValidatorNotFoundValidatorPanicValidatorTooMuchPendingSchemaTrackerInvalidJSONSchemaTrackerCannotCreateSchemaSchemaTrackerCannotCreateTableSchemaTrackerCannotSerializeSchemaTrackerCannotGetTableSchemaTrackerCannotExecDDLSchemaTrackerCannotFetchDownstreamTableSchemaTrackerCannotParseDownstreamTableSchemaTrackerInvalidCreateTableStmtSchemaTrackerRestoreStmtFailSchemaTrackerCannotDropTableSchemaTrackerInitSchemaTrackerMarshalJSONSchemaTrackerUnMarshalJSONSchemaTrackerUnSchemaNotExistSchemaTrackerCannotSetDownstreamSQLModeSchemaTrackerCannotInitDownstreamParserSchemaTrackerCannotMockDownstreamTableSchemaTrackerCannotFetchDownstreamCreateTableStmtSchemaTrackerIsClosedSchedulerNotStartedSchedulerStartedSchedulerWorkerExistSchedulerWorkerNotExistSchedulerWorkerOnlineSchedulerWorkerInvalidTransSchedulerSourceCfgExistSchedulerSourceCfgNotExistSchedulerSourcesUnboundSchedulerSourceOpTaskExistSchedulerRelayStageInvalidUpdateSchedulerRelayStageSourceNotExistSchedulerMultiTaskSchedulerSubTaskExistSchedulerSubTaskStageInvalidUpdateSchedulerSubTaskOpTaskNotExistSchedulerSubTaskOpSourceNotExistSchedulerTaskNotExistSchedulerRequireRunningTaskInSyncUnitSchedulerRelayWorkersBusySchedulerRelayWorkersBoundSchedulerRelayWorkersWrongRelaySchedulerSourceOpRelayExistSchedulerLatchInUseSchedulerSourceCfgUpdateSchedulerWrongWorkerInputSchedulerCantTransferToRelayWorkerSchedulerStartRelayOnSpecifiedSchedulerStopRelayOnSpecifiedSchedulerStartRelayOnBoundSchedulerStopRelayOnBoundSchedulerPauseTaskForTransferSourceSchedulerWorkerNotFreeSchedulerSubTaskNotExistSchedulerSubTaskCfgUpdateCtlGRPCCreateConnCtlInvalidTLSCfgCtlLoadTLSCfgOpenAPICommonOpenAPITaskSourceNotFoundNotSet" ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) +const _ErrCode_name = "DBDriverErrorDBBadConnDBInvalidConnDBUnExpectDBQueryFailedDBExecuteFailedParseMydumperMetaGetFileSizeDropMultipleTablesRenameMultipleTablesAlterMultipleTablesParseSQLUnknownTypeDDLRestoreASTNodeParseGTIDNotSupportedFlavorNotMySQLGTIDNotMariaDBGTIDNotUUIDStringMariaDBDomainIDInvalidServerIDGetSQLModeFromStrVerifySQLOperateArgsStatFileSizeReaderAlreadyRunningReaderAlreadyStartedReaderStateCannotCloseReaderShouldStartSyncEmptyRelayDirReadDirBaseFileNotFoundBinFileCmpCondNotSupportBinlogFileNotValidBinlogFilesNotFoundGetRelayLogStatAddWatchForRelayLogDirWatcherStartWatcherChanClosedWatcherChanRecvErrorRelayLogFileSizeSmallerBinlogFileNotSpecifiedNoRelayLogMatchPosFirstRelayLogNotMatchPosParserParseRelayLogNoSubdirToSwitchNeedSyncAgainSyncClosedSchemaTableNameNotValidGenTableRouterEncryptSecretKeyNotValidEncryptGenCipherEncryptGenIVCiphertextLenNotValidCiphertextContextNotValidInvalidBinlogPosStrEncCipherTextBase64DecodeBinlogWriteBinaryDataBinlogWriteDataToBufferBinlogHeaderLengthNotValidBinlogEventDecodeBinlogEmptyNextBinNameBinlogParseSIDBinlogEmptyGTIDBinlogGTIDSetNotValidBinlogGTIDMySQLNotValidBinlogGTIDMariaDBNotValidBinlogMariaDBServerIDMismatchBinlogOnlyOneGTIDSupportBinlogOnlyOneIntervalInUUIDBinlogIntervalValueNotValidBinlogEmptyQueryBinlogTableMapEvNotValidBinlogExpectFormatDescEvBinlogExpectTableMapEvBinlogExpectRowsEvBinlogUnexpectedEvBinlogParseSingleEvBinlogEventTypeNotValidBinlogEventNoRowsBinlogEventNoColumnsBinlogEventRowLengthNotEqBinlogColumnTypeNotSupportBinlogGoMySQLTypeNotSupportBinlogColumnTypeMisMatchBinlogDummyEvSizeTooSmallBinlogFlavorNotSupportBinlogDMLEmptyDataBinlogLatestGTIDNotInPrevBinlogReadFileByGTIDBinlogWriterNotStateNewBinlogWriterStateCannotCloseBinlogWriterNeedStartBinlogWriterOpenFileBinlogWriterGetFileStatBinlogWriterWriteDataLenBinlogWriterFileNotOpenedBinlogWriterFileSyncBinlogPrevGTIDEvNotValidBinlogDecodeMySQLGTIDSetBinlogNeedMariaDBGTIDSetBinlogParseMariaDBGTIDSetBinlogMariaDBAddGTIDSetTracingEventDataNotValidTracingUploadDataTracingEventTypeNotValidTracingGetTraceCodeTracingDataChecksumTracingGetTSOBackoffArgsNotValidInitLoggerFailGTIDTruncateInvalidRelayLogGivenPosTooBigElectionCampaignFailElectionGetLeaderIDFailBinlogInvalidFilenameWithUUIDSuffixDecodeEtcdKeyFailShardDDLOptimismTrySyncFailConnInvalidTLSConfigConnRegistryTLSConfigUpgradeVersionEtcdFailInvalidV1WorkerMetaPathFailUpdateV1DBSchemaBinlogStatusVarsParseVerifyHandleErrorArgsRewriteSQLNoUUIDDirMatchGTIDNoRelayPosMatchGTIDReaderReachEndOfFileMetadataNoBinlogLocPreviousGTIDNotExistNoMasterStatusBinlogNotLogColumnShardDDLOptimismNeedSkipAndRedirectShardDDLOptimismAddNotFullyDroppedColumnSyncerCancelledDDLIncorrectReturnColumnsNumConfigCheckItemNotSupportConfigTomlTransformConfigYamlTransformConfigTaskNameEmptyConfigEmptySourceIDConfigTooLongSourceIDConfigOnlineSchemeNotSupportConfigInvalidTimezoneConfigParseFlagSetConfigDecryptDBPasswordConfigMetaInvalidConfigMySQLInstNotFoundConfigMySQLInstsAtLeastOneConfigMySQLInstSameSourceIDConfigMydumperCfgConflictConfigLoaderCfgConflictConfigSyncerCfgConflictConfigReadCfgFromFileConfigNeedUniqueTaskNameConfigInvalidTaskModeConfigNeedTargetDBConfigMetadataNotSetConfigRouteRuleNotFoundConfigFilterRuleNotFoundConfigColumnMappingNotFoundConfigBAListNotFoundConfigMydumperCfgNotFoundConfigMydumperPathNotValidConfigLoaderCfgNotFoundConfigSyncerCfgNotFoundConfigSourceIDNotFoundConfigDuplicateCfgItemConfigShardModeNotSupportConfigMoreThanOneConfigEtcdParseConfigMissingForBoundConfigBinlogEventFilterConfigGlobalConfigsUnusedConfigExprFilterManyExprConfigExprFilterNotFoundConfigExprFilterWrongGrammarConfigExprFilterEmptyNameConfigCheckerMaxTooSmallConfigGenBAListConfigGenTableRouterConfigGenColumnMappingConfigInvalidChunkFileSizeConfigOnlineDDLInvalidRegexConfigOnlineDDLMistakeRegexConfigOpenAPITaskConfigExistConfigOpenAPITaskConfigNotExistCollationCompatibleNotSupportConfigInvalidLoadModeConfigInvalidLoadDuplicateResolutionConfigValidationModeContinuousValidatorCfgNotFoundConfigStartTimeTooLateConfigLoaderDirInvalidConfigLoaderS3NotSupportConfigInvalidSafeModeDurationConfigConfictSafeModeDurationAndSafeModeConfigInvalidLoadPhysicalDuplicateResolutionConfigStrictOptimisticShardModeBinlogExtractPositionBinlogInvalidFilenameBinlogParsePosFromStrCheckpointInvalidTaskModeCheckpointSaveInvalidPosCheckpointInvalidTableFileCheckpointDBNotExistInFileCheckpointTableNotExistInFileCheckpointRestoreCountGreaterTaskCheckSameTableNameTaskCheckFailedOpenDBTaskCheckGenTableRouterTaskCheckGenColumnMappingTaskCheckSyncConfigErrorTaskCheckGenBAListSourceCheckGTIDRelayParseUUIDIndexRelayParseUUIDSuffixRelayUUIDWithSuffixNotFoundRelayGenFakeRotateEventRelayNoValidRelaySubDirRelayUUIDSuffixNotValidRelayUUIDSuffixLessThanPrevRelayLoadMetaDataRelayBinlogNameNotValidRelayNoCurrentUUIDRelayFlushLocalMetaRelayUpdateIndexFileRelayLogDirpathEmptyRelayReaderNotStateNewRelayReaderStateCannotCloseRelayReaderNeedStartRelayTCPReaderStartSyncRelayTCPReaderNilGTIDRelayTCPReaderStartSyncGTIDRelayTCPReaderGetEventRelayWriterNotStateNewRelayWriterStateCannotCloseRelayWriterNeedStartRelayWriterNotOpenedRelayWriterExpectRotateEvRelayWriterRotateEvWithNoWriterRelayWriterStatusNotValidRelayWriterGetFileStatRelayWriterLatestPosGTFileSizeRelayWriterFileOperateRelayCheckBinlogFileHeaderExistRelayCheckFormatDescEventExistRelayCheckFormatDescEventParseEvRelayCheckIsDuplicateEventRelayUpdateGTIDRelayNeedPrevGTIDEvBeforeGTIDEvRelayNeedMaGTIDListEvBeforeGTIDEvRelayMkdirRelaySwitchMasterNeedGTIDRelayThisStrategyIsPurgingRelayOtherStrategyIsPurgingRelayPurgeIsForbiddenRelayNoActiveRelayLogRelayPurgeRequestNotValidRelayTrimUUIDNotFoundRelayRemoveFileFailRelayPurgeArgsNotValidPreviousGTIDsNotValidRotateEventWithDifferentServerIDDumpUnitRuntimeDumpUnitGenTableRouterDumpUnitGenBAListDumpUnitGlobalLockLoadUnitCreateSchemaFileLoadUnitInvalidFileEndingLoadUnitParseQuoteValuesLoadUnitDoColumnMappingLoadUnitReadSchemaFileLoadUnitParseStatementLoadUnitNotCreateTableLoadUnitDispatchSQLFromFileLoadUnitInvalidInsertSQLLoadUnitGenTableRouterLoadUnitGenColumnMappingLoadUnitNoDBFileLoadUnitNoTableFileLoadUnitDumpDirNotFoundLoadUnitDuplicateTableFileLoadUnitGenBAListLoadTaskWorkerNotMatchLoadCheckPointNotMatchLoadLightningRuntimeSyncerUnitPanicSyncUnitInvalidTableNameSyncUnitTableNameQuerySyncUnitNotSupportedDMLSyncUnitAddTableInShardingSyncUnitDropSchemaTableInShardingSyncUnitInvalidShardMetaSyncUnitDDLWrongSequenceSyncUnitDDLActiveIndexLargerSyncUnitDupTableGroupSyncUnitShardingGroupNotFoundSyncUnitSafeModeSetCountSyncUnitCausalityConflictSyncUnitDMLStatementFoundSyncerUnitBinlogEventFilterSyncerUnitInvalidReplicaEventSyncerUnitParseStmtSyncerUnitUUIDNotLatestSyncerUnitDDLExecChanCloseOrBusySyncerUnitDDLChanDoneSyncerUnitDDLChanCanceledSyncerUnitDDLOnMultipleTableSyncerUnitInjectDDLOnlySyncerUnitInjectDDLWithoutSchemaSyncerUnitNotSupportedOperateSyncerUnitNilOperatorReqSyncerUnitDMLColumnNotMatchSyncerUnitDMLOldNewValueMismatchSyncerUnitDMLPruneColumnMismatchSyncerUnitGenBinlogEventFilterSyncerUnitGenTableRouterSyncerUnitGenColumnMappingSyncerUnitDoColumnMappingSyncerUnitCacheKeyNotFoundSyncerUnitHeartbeatCheckConfigSyncerUnitHeartbeatRecordExistsSyncerUnitHeartbeatRecordNotFoundSyncerUnitHeartbeatRecordNotValidSyncerUnitOnlineDDLInvalidMetaSyncerUnitOnlineDDLSchemeNotSupportSyncerUnitOnlineDDLOnMultipleTableSyncerUnitGhostApplyEmptyTableSyncerUnitGhostRenameTableNotValidSyncerUnitGhostRenameToGhostTableSyncerUnitGhostRenameGhostTblToOtherSyncerUnitGhostOnlineDDLOnGhostTblSyncerUnitPTApplyEmptyTableSyncerUnitPTRenameTableNotValidSyncerUnitPTRenameToPTTableSyncerUnitPTRenamePTTblToOtherSyncerUnitPTOnlineDDLOnPTTblSyncerUnitRemoteSteamerWithGTIDSyncerUnitRemoteSteamerStartSyncSyncerUnitGetTableFromDBSyncerUnitFirstEndPosNotFoundSyncerUnitResolveCasualityFailSyncerUnitReopenStreamNotSupportSyncerUnitUpdateConfigInShardingSyncerUnitExecWithNoBlockingDDLSyncerUnitGenBAListSyncerUnitHandleDDLFailedSyncerShardDDLConflictSyncerFailpointSyncerEventSyncerOperatorNotExistSyncerEventNotExistSyncerParseDDLSyncerUnsupportedStmtSyncerGetEventSyncerDownstreamTableNotFoundSyncerReprocessWithSafeModeFailMasterSQLOpNilRequestMasterSQLOpNotSupportMasterSQLOpWithoutShardingMasterGRPCCreateConnMasterGRPCSendOnCloseConnMasterGRPCClientCloseMasterGRPCInvalidReqTypeMasterGRPCRequestErrorMasterDeployMapperVerifyMasterConfigParseFlagSetMasterConfigUnknownItemMasterConfigInvalidFlagMasterConfigTomlTransformMasterConfigTimeoutParseMasterConfigUpdateCfgFileMasterShardingDDLDiffMasterStartServiceMasterNoEmitTokenMasterLockNotFoundMasterLockIsResolvingMasterWorkerCliNotFoundMasterWorkerNotWaitLockMasterHandleSQLReqFailMasterOwnerExecDDLMasterPartWorkerExecDDLFailMasterWorkerExistDDLLockMasterGetWorkerCfgExtractorMasterTaskConfigExtractorMasterWorkerArgsExtractorMasterQueryWorkerConfigMasterOperNotFoundMasterOperRespNotSuccessMasterOperRequestTimeoutMasterHandleHTTPApisMasterHostPortNotValidMasterGetHostnameFailMasterGenEmbedEtcdConfigFailMasterStartEmbedEtcdFailMasterParseURLFailMasterJoinEmbedEtcdFailMasterInvalidOperateOpMasterAdvertiseAddrNotValidMasterRequestIsNotForwardToLeaderMasterIsNotAsyncRequestMasterFailToGetExpectResultMasterPessimistNotStartedMasterOptimistNotStartedMasterMasterNameNotExistMasterInvalidOfflineTypeMasterAdvertisePeerURLsNotValidMasterTLSConfigNotValidMasterBoundChangingMasterFailToImportFromV10xMasterInconsistentOptimistDDLsAndInfoMasterOptimisticTableInfobeforeNotExistMasterOptimisticDownstreamMetaNotFoundMasterInvalidClusterIDMasterStartTaskWorkerParseFlagSetWorkerInvalidFlagWorkerDecodeConfigFromFileWorkerUndecodedItemFromFileWorkerNeedSourceIDWorkerTooLongSourceIDWorkerRelayBinlogNameWorkerWriteConfigFileWorkerLogInvalidHandlerWorkerLogPointerInvalidWorkerLogFetchPointerWorkerLogUnmarshalPointerWorkerLogClearPointerWorkerLogTaskKeyNotValidWorkerLogUnmarshalTaskKeyWorkerLogFetchLogIterWorkerLogGetTaskLogWorkerLogUnmarshalBinaryWorkerLogForwardPointerWorkerLogMarshalTaskWorkerLogSaveTaskWorkerLogDeleteKVWorkerLogDeleteKVIterWorkerLogUnmarshalTaskMetaWorkerLogFetchTaskFromMetaWorkerLogVerifyTaskMetaWorkerLogSaveTaskMetaWorkerLogGetTaskMetaWorkerLogDeleteTaskMetaWorkerMetaTomlTransformWorkerMetaOldFileStatWorkerMetaOldReadFileWorkerMetaEncodeTaskWorkerMetaRemoveOldDirWorkerMetaTaskLogNotFoundWorkerMetaHandleTaskOrderWorkerMetaOpenTxnWorkerMetaCommitTxnWorkerRelayStageNotValidWorkerRelayOperNotSupportWorkerOpenKVDBFileWorkerUpgradeCheckKVDirWorkerMarshalVerBinaryWorkerUnmarshalVerBinaryWorkerGetVersionFromKVWorkerSaveVersionToKVWorkerVerAutoDowngradeWorkerStartServiceWorkerAlreadyClosedWorkerNotRunningStageWorkerNotPausedStageWorkerUpdateTaskStageWorkerMigrateStopRelayWorkerSubTaskNotFoundWorkerSubTaskExistsWorkerOperSyncUnitOnlyWorkerRelayUnitStageWorkerNoSyncerRunningWorkerCannotUpdateSourceIDWorkerNoAvailUnitsWorkerDDLLockInfoNotFoundWorkerDDLLockInfoExistsWorkerCacheDDLInfoExistsWorkerExecSkipDDLConflictWorkerExecDDLSyncerOnlyWorkerExecDDLTimeoutWorkerWaitRelayCatchupTimeoutWorkerRelayIsPurgingWorkerHostPortNotValidWorkerNoStartWorkerAlreadyStartedWorkerSourceNotMatchWorkerFailToGetSubtaskConfigFromEtcdWorkerFailToGetSourceConfigFromEtcdWorkerDDLLockOpNotFoundWorkerTLSConfigNotValidWorkerFailConnectMasterWorkerWaitRelayCatchupGTIDWorkerRelayConfigChangingWorkerRouteTableDupMatchWorkerUpdateSubTaskConfigWorkerValidatorNotPausedWorkerServerClosedTracerParseFlagSetTracerConfigTomlTransformTracerConfigInvalidFlagTracerTraceEventNotFoundTracerTraceIDNotProvidedTracerParamNotValidTracerPostMethodOnlyTracerEventAssertionFailTracerEventTypeNotValidTracerStartServiceHAFailTxnOperationHAInvalidItemHAFailWatchEtcdHAFailLeaseOperationHAFailKeepaliveValidatorLoadPersistedDataValidatorPersistDataValidatorGetEventValidatorProcessRowEventValidatorValidateChangeValidatorNotFoundValidatorPanicValidatorTooMuchPendingSchemaTrackerInvalidJSONSchemaTrackerCannotCreateSchemaSchemaTrackerCannotCreateTableSchemaTrackerCannotSerializeSchemaTrackerCannotGetTableSchemaTrackerCannotExecDDLSchemaTrackerCannotFetchDownstreamTableSchemaTrackerCannotParseDownstreamTableSchemaTrackerInvalidCreateTableStmtSchemaTrackerRestoreStmtFailSchemaTrackerCannotDropTableSchemaTrackerInitSchemaTrackerMarshalJSONSchemaTrackerUnMarshalJSONSchemaTrackerUnSchemaNotExistSchemaTrackerCannotSetDownstreamSQLModeSchemaTrackerCannotInitDownstreamParserSchemaTrackerCannotMockDownstreamTableSchemaTrackerCannotFetchDownstreamCreateTableStmtSchemaTrackerIsClosedSchedulerNotStartedSchedulerStartedSchedulerWorkerExistSchedulerWorkerNotExistSchedulerWorkerOnlineSchedulerWorkerInvalidTransSchedulerSourceCfgExistSchedulerSourceCfgNotExistSchedulerSourcesUnboundSchedulerSourceOpTaskExistSchedulerRelayStageInvalidUpdateSchedulerRelayStageSourceNotExistSchedulerMultiTaskSchedulerSubTaskExistSchedulerSubTaskStageInvalidUpdateSchedulerSubTaskOpTaskNotExistSchedulerSubTaskOpSourceNotExistSchedulerTaskNotExistSchedulerRequireRunningTaskInSyncUnitSchedulerRelayWorkersBusySchedulerRelayWorkersBoundSchedulerRelayWorkersWrongRelaySchedulerSourceOpRelayExistSchedulerLatchInUseSchedulerSourceCfgUpdateSchedulerWrongWorkerInputSchedulerCantTransferToRelayWorkerSchedulerStartRelayOnSpecifiedSchedulerStopRelayOnSpecifiedSchedulerStartRelayOnBoundSchedulerStopRelayOnBoundSchedulerPauseTaskForTransferSourceSchedulerWorkerNotFreeSchedulerSubTaskNotExistSchedulerSubTaskCfgUpdateCtlGRPCCreateConnCtlInvalidTLSCfgCtlLoadTLSCfgOpenAPICommonOpenAPITaskSourceNotFoundNotSet" var _ErrCode_map = map[ErrCode]string{ 10001: _ErrCode_name[0:13], @@ -804,783 +794,391 @@ var _ErrCode_map = map[ErrCode]string{ 20060: _ErrCode_name[4042:4071], 20061: _ErrCode_name[4071:4111], 20062: _ErrCode_name[4111:4155], -<<<<<<< HEAD - 22001: _ErrCode_name[4155:4176], - 22002: _ErrCode_name[4176:4197], - 22003: _ErrCode_name[4197:4218], - 24001: _ErrCode_name[4218:4243], - 24002: _ErrCode_name[4243:4267], - 24003: _ErrCode_name[4267:4293], - 24004: _ErrCode_name[4293:4319], - 24005: _ErrCode_name[4319:4348], - 24006: _ErrCode_name[4348:4377], - 26001: _ErrCode_name[4377:4399], - 26002: _ErrCode_name[4399:4420], - 26003: _ErrCode_name[4420:4443], - 26004: _ErrCode_name[4443:4468], - 26005: _ErrCode_name[4468:4492], - 26006: _ErrCode_name[4492:4510], - 26007: _ErrCode_name[4510:4525], - 28001: _ErrCode_name[4525:4544], - 28002: _ErrCode_name[4544:4564], - 28003: _ErrCode_name[4564:4591], - 28004: _ErrCode_name[4591:4614], - 28005: _ErrCode_name[4614:4637], - 30001: _ErrCode_name[4637:4660], - 30002: _ErrCode_name[4660:4687], - 30003: _ErrCode_name[4687:4704], - 30004: _ErrCode_name[4704:4727], - 30005: _ErrCode_name[4727:4745], - 30006: _ErrCode_name[4745:4764], - 30007: _ErrCode_name[4764:4784], - 30008: _ErrCode_name[4784:4804], - 30009: _ErrCode_name[4804:4826], - 30010: _ErrCode_name[4826:4853], - 30011: _ErrCode_name[4853:4873], - 30012: _ErrCode_name[4873:4896], - 30013: _ErrCode_name[4896:4917], - 30014: _ErrCode_name[4917:4944], - 30015: _ErrCode_name[4944:4966], - 30016: _ErrCode_name[4966:4988], - 30017: _ErrCode_name[4988:5015], - 30018: _ErrCode_name[5015:5035], - 30019: _ErrCode_name[5035:5055], - 30020: _ErrCode_name[5055:5080], - 30021: _ErrCode_name[5080:5111], - 30022: _ErrCode_name[5111:5136], - 30023: _ErrCode_name[5136:5158], - 30024: _ErrCode_name[5158:5188], - 30025: _ErrCode_name[5188:5210], - 30026: _ErrCode_name[5210:5241], - 30027: _ErrCode_name[5241:5271], - 30028: _ErrCode_name[5271:5303], - 30029: _ErrCode_name[5303:5329], - 30030: _ErrCode_name[5329:5344], - 30031: _ErrCode_name[5344:5375], - 30032: _ErrCode_name[5375:5408], - 30033: _ErrCode_name[5408:5418], - 30034: _ErrCode_name[5418:5443], - 30035: _ErrCode_name[5443:5469], - 30036: _ErrCode_name[5469:5496], - 30037: _ErrCode_name[5496:5517], - 30038: _ErrCode_name[5517:5538], - 30039: _ErrCode_name[5538:5563], - 30040: _ErrCode_name[5563:5584], - 30041: _ErrCode_name[5584:5603], - 30042: _ErrCode_name[5603:5625], - 30043: _ErrCode_name[5625:5646], - 30044: _ErrCode_name[5646:5678], - 32001: _ErrCode_name[5678:5693], - 32002: _ErrCode_name[5693:5715], - 32003: _ErrCode_name[5715:5732], - 32004: _ErrCode_name[5732:5750], - 34001: _ErrCode_name[5750:5774], - 34002: _ErrCode_name[5774:5799], - 34003: _ErrCode_name[5799:5823], - 34004: _ErrCode_name[5823:5846], - 34005: _ErrCode_name[5846:5868], - 34006: _ErrCode_name[5868:5890], - 34007: _ErrCode_name[5890:5912], - 34008: _ErrCode_name[5912:5939], - 34009: _ErrCode_name[5939:5963], - 34010: _ErrCode_name[5963:5985], - 34011: _ErrCode_name[5985:6009], - 34012: _ErrCode_name[6009:6025], - 34013: _ErrCode_name[6025:6044], - 34014: _ErrCode_name[6044:6067], - 34015: _ErrCode_name[6067:6093], - 34016: _ErrCode_name[6093:6110], - 34017: _ErrCode_name[6110:6132], - 34018: _ErrCode_name[6132:6154], - 34019: _ErrCode_name[6154:6174], - 36001: _ErrCode_name[6174:6189], - 36002: _ErrCode_name[6189:6213], - 36003: _ErrCode_name[6213:6235], - 36004: _ErrCode_name[6235:6258], - 36005: _ErrCode_name[6258:6284], - 36006: _ErrCode_name[6284:6317], - 36007: _ErrCode_name[6317:6341], - 36008: _ErrCode_name[6341:6365], - 36009: _ErrCode_name[6365:6393], - 36010: _ErrCode_name[6393:6414], - 36011: _ErrCode_name[6414:6443], - 36012: _ErrCode_name[6443:6467], - 36013: _ErrCode_name[6467:6492], - 36014: _ErrCode_name[6492:6517], - 36015: _ErrCode_name[6517:6544], - 36016: _ErrCode_name[6544:6573], - 36017: _ErrCode_name[6573:6592], - 36018: _ErrCode_name[6592:6615], - 36019: _ErrCode_name[6615:6647], - 36020: _ErrCode_name[6647:6668], - 36021: _ErrCode_name[6668:6693], - 36022: _ErrCode_name[6693:6721], - 36023: _ErrCode_name[6721:6744], - 36024: _ErrCode_name[6744:6776], - 36025: _ErrCode_name[6776:6805], - 36026: _ErrCode_name[6805:6829], - 36027: _ErrCode_name[6829:6856], - 36028: _ErrCode_name[6856:6888], - 36029: _ErrCode_name[6888:6920], - 36030: _ErrCode_name[6920:6950], - 36031: _ErrCode_name[6950:6974], - 36032: _ErrCode_name[6974:7000], - 36033: _ErrCode_name[7000:7025], - 36034: _ErrCode_name[7025:7051], - 36035: _ErrCode_name[7051:7081], - 36036: _ErrCode_name[7081:7112], - 36037: _ErrCode_name[7112:7145], - 36038: _ErrCode_name[7145:7178], - 36039: _ErrCode_name[7178:7208], - 36040: _ErrCode_name[7208:7243], - 36041: _ErrCode_name[7243:7277], - 36042: _ErrCode_name[7277:7307], - 36043: _ErrCode_name[7307:7341], - 36044: _ErrCode_name[7341:7374], - 36045: _ErrCode_name[7374:7410], - 36046: _ErrCode_name[7410:7444], - 36047: _ErrCode_name[7444:7471], - 36048: _ErrCode_name[7471:7502], - 36049: _ErrCode_name[7502:7529], - 36050: _ErrCode_name[7529:7559], - 36051: _ErrCode_name[7559:7587], - 36052: _ErrCode_name[7587:7618], - 36053: _ErrCode_name[7618:7650], - 36054: _ErrCode_name[7650:7674], - 36055: _ErrCode_name[7674:7703], - 36056: _ErrCode_name[7703:7733], - 36057: _ErrCode_name[7733:7765], - 36058: _ErrCode_name[7765:7797], - 36059: _ErrCode_name[7797:7828], - 36060: _ErrCode_name[7828:7847], - 36061: _ErrCode_name[7847:7872], - 36062: _ErrCode_name[7872:7894], - 36063: _ErrCode_name[7894:7909], - 36064: _ErrCode_name[7909:7920], - 36065: _ErrCode_name[7920:7942], - 36066: _ErrCode_name[7942:7961], - 36067: _ErrCode_name[7961:7975], - 36068: _ErrCode_name[7975:7996], - 36069: _ErrCode_name[7996:8010], - 36070: _ErrCode_name[8010:8039], - 36071: _ErrCode_name[8039:8070], - 38001: _ErrCode_name[8070:8091], - 38002: _ErrCode_name[8091:8112], - 38003: _ErrCode_name[8112:8138], - 38004: _ErrCode_name[8138:8158], - 38005: _ErrCode_name[8158:8183], - 38006: _ErrCode_name[8183:8204], - 38007: _ErrCode_name[8204:8228], - 38008: _ErrCode_name[8228:8250], - 38009: _ErrCode_name[8250:8274], - 38010: _ErrCode_name[8274:8298], - 38011: _ErrCode_name[8298:8321], - 38012: _ErrCode_name[8321:8344], - 38013: _ErrCode_name[8344:8369], - 38014: _ErrCode_name[8369:8393], - 38015: _ErrCode_name[8393:8418], - 38016: _ErrCode_name[8418:8439], - 38017: _ErrCode_name[8439:8457], - 38018: _ErrCode_name[8457:8474], - 38019: _ErrCode_name[8474:8492], - 38020: _ErrCode_name[8492:8513], - 38021: _ErrCode_name[8513:8536], - 38022: _ErrCode_name[8536:8559], - 38023: _ErrCode_name[8559:8581], - 38024: _ErrCode_name[8581:8599], - 38025: _ErrCode_name[8599:8626], - 38026: _ErrCode_name[8626:8650], - 38027: _ErrCode_name[8650:8677], - 38028: _ErrCode_name[8677:8702], - 38029: _ErrCode_name[8702:8727], - 38030: _ErrCode_name[8727:8750], - 38031: _ErrCode_name[8750:8768], - 38032: _ErrCode_name[8768:8792], - 38033: _ErrCode_name[8792:8816], - 38034: _ErrCode_name[8816:8836], - 38035: _ErrCode_name[8836:8858], - 38036: _ErrCode_name[8858:8879], - 38037: _ErrCode_name[8879:8907], - 38038: _ErrCode_name[8907:8931], - 38039: _ErrCode_name[8931:8949], - 38040: _ErrCode_name[8949:8972], - 38041: _ErrCode_name[8972:8994], - 38042: _ErrCode_name[8994:9021], - 38043: _ErrCode_name[9021:9054], - 38044: _ErrCode_name[9054:9077], - 38045: _ErrCode_name[9077:9104], - 38046: _ErrCode_name[9104:9129], - 38047: _ErrCode_name[9129:9153], - 38048: _ErrCode_name[9153:9177], - 38049: _ErrCode_name[9177:9201], - 38050: _ErrCode_name[9201:9232], - 38051: _ErrCode_name[9232:9255], - 38052: _ErrCode_name[9255:9274], - 38053: _ErrCode_name[9274:9300], - 38054: _ErrCode_name[9300:9337], - 38055: _ErrCode_name[9337:9376], - 38056: _ErrCode_name[9376:9414], - 38057: _ErrCode_name[9414:9436], - 38058: _ErrCode_name[9436:9451], - 40001: _ErrCode_name[9451:9469], - 40002: _ErrCode_name[9469:9486], - 40003: _ErrCode_name[9486:9512], - 40004: _ErrCode_name[9512:9539], - 40005: _ErrCode_name[9539:9557], - 40006: _ErrCode_name[9557:9578], - 40007: _ErrCode_name[9578:9599], - 40008: _ErrCode_name[9599:9620], - 40009: _ErrCode_name[9620:9643], - 40010: _ErrCode_name[9643:9666], - 40011: _ErrCode_name[9666:9687], - 40012: _ErrCode_name[9687:9712], - 40013: _ErrCode_name[9712:9733], - 40014: _ErrCode_name[9733:9757], - 40015: _ErrCode_name[9757:9782], - 40016: _ErrCode_name[9782:9803], - 40017: _ErrCode_name[9803:9822], - 40018: _ErrCode_name[9822:9846], - 40019: _ErrCode_name[9846:9869], - 40020: _ErrCode_name[9869:9889], - 40021: _ErrCode_name[9889:9906], - 40022: _ErrCode_name[9906:9923], - 40023: _ErrCode_name[9923:9944], - 40024: _ErrCode_name[9944:9970], - 40025: _ErrCode_name[9970:9996], - 40026: _ErrCode_name[9996:10019], - 40027: _ErrCode_name[10019:10040], - 40028: _ErrCode_name[10040:10060], - 40029: _ErrCode_name[10060:10083], - 40030: _ErrCode_name[10083:10106], - 40031: _ErrCode_name[10106:10127], - 40032: _ErrCode_name[10127:10148], - 40033: _ErrCode_name[10148:10168], - 40034: _ErrCode_name[10168:10190], - 40035: _ErrCode_name[10190:10215], - 40036: _ErrCode_name[10215:10240], - 40037: _ErrCode_name[10240:10257], - 40038: _ErrCode_name[10257:10276], - 40039: _ErrCode_name[10276:10300], - 40040: _ErrCode_name[10300:10325], - 40041: _ErrCode_name[10325:10343], - 40042: _ErrCode_name[10343:10366], - 40043: _ErrCode_name[10366:10388], - 40044: _ErrCode_name[10388:10412], - 40045: _ErrCode_name[10412:10434], - 40046: _ErrCode_name[10434:10455], - 40047: _ErrCode_name[10455:10477], - 40048: _ErrCode_name[10477:10495], - 40049: _ErrCode_name[10495:10514], - 40050: _ErrCode_name[10514:10535], - 40051: _ErrCode_name[10535:10555], - 40052: _ErrCode_name[10555:10576], - 40053: _ErrCode_name[10576:10598], - 40054: _ErrCode_name[10598:10619], - 40055: _ErrCode_name[10619:10638], - 40056: _ErrCode_name[10638:10660], - 40057: _ErrCode_name[10660:10680], - 40058: _ErrCode_name[10680:10701], - 40059: _ErrCode_name[10701:10727], - 40060: _ErrCode_name[10727:10745], - 40061: _ErrCode_name[10745:10770], - 40062: _ErrCode_name[10770:10793], - 40063: _ErrCode_name[10793:10817], - 40064: _ErrCode_name[10817:10842], - 40065: _ErrCode_name[10842:10865], - 40066: _ErrCode_name[10865:10885], - 40067: _ErrCode_name[10885:10914], - 40068: _ErrCode_name[10914:10934], - 40069: _ErrCode_name[10934:10956], - 40070: _ErrCode_name[10956:10969], - 40071: _ErrCode_name[10969:10989], - 40072: _ErrCode_name[10989:11009], - 40073: _ErrCode_name[11009:11045], - 40074: _ErrCode_name[11045:11080], - 40075: _ErrCode_name[11080:11103], - 40076: _ErrCode_name[11103:11126], - 40077: _ErrCode_name[11126:11149], - 40078: _ErrCode_name[11149:11175], - 40079: _ErrCode_name[11175:11200], - 40080: _ErrCode_name[11200:11224], - 40081: _ErrCode_name[11224:11249], - 40082: _ErrCode_name[11249:11273], - 40083: _ErrCode_name[11273:11291], - 42001: _ErrCode_name[11291:11309], - 42002: _ErrCode_name[11309:11334], - 42003: _ErrCode_name[11334:11357], - 42004: _ErrCode_name[11357:11381], - 42005: _ErrCode_name[11381:11405], - 42006: _ErrCode_name[11405:11424], - 42007: _ErrCode_name[11424:11444], - 42008: _ErrCode_name[11444:11468], - 42009: _ErrCode_name[11468:11491], - 42010: _ErrCode_name[11491:11509], - 42501: _ErrCode_name[11509:11527], - 42502: _ErrCode_name[11527:11540], - 42503: _ErrCode_name[11540:11555], - 42504: _ErrCode_name[11555:11575], - 42505: _ErrCode_name[11575:11590], - 43001: _ErrCode_name[11590:11616], - 43002: _ErrCode_name[11616:11636], - 43003: _ErrCode_name[11636:11653], - 43004: _ErrCode_name[11653:11677], - 43005: _ErrCode_name[11677:11700], - 43006: _ErrCode_name[11700:11717], - 43007: _ErrCode_name[11717:11731], - 43008: _ErrCode_name[11731:11754], - 44001: _ErrCode_name[11754:11778], - 44002: _ErrCode_name[11778:11809], - 44003: _ErrCode_name[11809:11839], - 44004: _ErrCode_name[11839:11867], - 44005: _ErrCode_name[11867:11894], - 44006: _ErrCode_name[11894:11920], - 44007: _ErrCode_name[11920:11959], - 44008: _ErrCode_name[11959:11998], - 44009: _ErrCode_name[11998:12033], - 44010: _ErrCode_name[12033:12061], - 44011: _ErrCode_name[12061:12089], - 44012: _ErrCode_name[12089:12106], - 44013: _ErrCode_name[12106:12130], - 44014: _ErrCode_name[12130:12156], - 44015: _ErrCode_name[12156:12185], - 44016: _ErrCode_name[12185:12224], - 44017: _ErrCode_name[12224:12263], - 44018: _ErrCode_name[12263:12301], - 44019: _ErrCode_name[12301:12350], - 44020: _ErrCode_name[12350:12371], - 46001: _ErrCode_name[12371:12390], - 46002: _ErrCode_name[12390:12406], - 46003: _ErrCode_name[12406:12426], - 46004: _ErrCode_name[12426:12449], - 46005: _ErrCode_name[12449:12470], - 46006: _ErrCode_name[12470:12497], - 46007: _ErrCode_name[12497:12520], - 46008: _ErrCode_name[12520:12546], - 46009: _ErrCode_name[12546:12569], - 46010: _ErrCode_name[12569:12595], - 46011: _ErrCode_name[12595:12627], - 46012: _ErrCode_name[12627:12660], - 46013: _ErrCode_name[12660:12678], - 46014: _ErrCode_name[12678:12699], - 46015: _ErrCode_name[12699:12733], - 46016: _ErrCode_name[12733:12763], - 46017: _ErrCode_name[12763:12795], - 46018: _ErrCode_name[12795:12816], - 46019: _ErrCode_name[12816:12853], - 46020: _ErrCode_name[12853:12878], - 46021: _ErrCode_name[12878:12904], - 46022: _ErrCode_name[12904:12935], - 46023: _ErrCode_name[12935:12962], - 46024: _ErrCode_name[12962:12981], - 46025: _ErrCode_name[12981:13005], - 46026: _ErrCode_name[13005:13030], - 46027: _ErrCode_name[13030:13064], - 46028: _ErrCode_name[13064:13094], - 46029: _ErrCode_name[13094:13123], - 46030: _ErrCode_name[13123:13149], - 46031: _ErrCode_name[13149:13174], - 46032: _ErrCode_name[13174:13209], - 46033: _ErrCode_name[13209:13231], - 46034: _ErrCode_name[13231:13255], - 46035: _ErrCode_name[13255:13280], - 48001: _ErrCode_name[13280:13297], - 48002: _ErrCode_name[13297:13313], - 48003: _ErrCode_name[13313:13326], - 49001: _ErrCode_name[13326:13339], - 49002: _ErrCode_name[13339:13364], - 50000: _ErrCode_name[13364:13370], -======= - 20063: _ErrCode_name[4155:4188], - 20064: _ErrCode_name[4188:4217], - 20065: _ErrCode_name[4217:4241], - 20066: _ErrCode_name[4241:4272], - 22001: _ErrCode_name[4272:4293], - 22002: _ErrCode_name[4293:4314], - 22003: _ErrCode_name[4314:4335], - 24001: _ErrCode_name[4335:4360], - 24002: _ErrCode_name[4360:4384], - 24003: _ErrCode_name[4384:4410], - 24004: _ErrCode_name[4410:4436], - 24005: _ErrCode_name[4436:4465], - 24006: _ErrCode_name[4465:4494], - 26001: _ErrCode_name[4494:4516], - 26002: _ErrCode_name[4516:4537], - 26003: _ErrCode_name[4537:4560], - 26004: _ErrCode_name[4560:4585], - 26005: _ErrCode_name[4585:4609], - 26006: _ErrCode_name[4609:4627], - 26007: _ErrCode_name[4627:4642], - 28001: _ErrCode_name[4642:4661], - 28002: _ErrCode_name[4661:4681], - 28003: _ErrCode_name[4681:4708], - 28004: _ErrCode_name[4708:4731], - 28005: _ErrCode_name[4731:4754], - 30001: _ErrCode_name[4754:4777], - 30002: _ErrCode_name[4777:4804], - 30003: _ErrCode_name[4804:4821], - 30004: _ErrCode_name[4821:4844], - 30005: _ErrCode_name[4844:4862], - 30006: _ErrCode_name[4862:4881], - 30007: _ErrCode_name[4881:4901], - 30008: _ErrCode_name[4901:4921], - 30009: _ErrCode_name[4921:4943], - 30010: _ErrCode_name[4943:4970], - 30011: _ErrCode_name[4970:4990], - 30012: _ErrCode_name[4990:5013], - 30013: _ErrCode_name[5013:5034], - 30014: _ErrCode_name[5034:5061], - 30015: _ErrCode_name[5061:5083], - 30016: _ErrCode_name[5083:5105], - 30017: _ErrCode_name[5105:5132], - 30018: _ErrCode_name[5132:5152], - 30019: _ErrCode_name[5152:5172], - 30020: _ErrCode_name[5172:5197], - 30021: _ErrCode_name[5197:5228], - 30022: _ErrCode_name[5228:5253], - 30023: _ErrCode_name[5253:5275], - 30024: _ErrCode_name[5275:5305], - 30025: _ErrCode_name[5305:5327], - 30026: _ErrCode_name[5327:5358], - 30027: _ErrCode_name[5358:5388], - 30028: _ErrCode_name[5388:5420], - 30029: _ErrCode_name[5420:5446], - 30030: _ErrCode_name[5446:5461], - 30031: _ErrCode_name[5461:5492], - 30032: _ErrCode_name[5492:5525], - 30033: _ErrCode_name[5525:5535], - 30034: _ErrCode_name[5535:5560], - 30035: _ErrCode_name[5560:5586], - 30036: _ErrCode_name[5586:5613], - 30037: _ErrCode_name[5613:5634], - 30038: _ErrCode_name[5634:5655], - 30039: _ErrCode_name[5655:5680], - 30040: _ErrCode_name[5680:5701], - 30041: _ErrCode_name[5701:5720], - 30042: _ErrCode_name[5720:5742], - 30043: _ErrCode_name[5742:5763], - 30044: _ErrCode_name[5763:5795], - 32001: _ErrCode_name[5795:5810], - 32002: _ErrCode_name[5810:5832], - 32003: _ErrCode_name[5832:5849], - 32004: _ErrCode_name[5849:5867], - 34001: _ErrCode_name[5867:5891], - 34002: _ErrCode_name[5891:5916], - 34003: _ErrCode_name[5916:5940], - 34004: _ErrCode_name[5940:5963], - 34005: _ErrCode_name[5963:5985], - 34006: _ErrCode_name[5985:6007], - 34007: _ErrCode_name[6007:6029], - 34008: _ErrCode_name[6029:6056], - 34009: _ErrCode_name[6056:6080], - 34010: _ErrCode_name[6080:6102], - 34011: _ErrCode_name[6102:6126], - 34012: _ErrCode_name[6126:6142], - 34013: _ErrCode_name[6142:6161], - 34014: _ErrCode_name[6161:6184], - 34015: _ErrCode_name[6184:6210], - 34016: _ErrCode_name[6210:6227], - 34017: _ErrCode_name[6227:6249], - 34018: _ErrCode_name[6249:6271], - 34019: _ErrCode_name[6271:6291], - 34020: _ErrCode_name[6291:6310], - 34021: _ErrCode_name[6310:6331], - 36001: _ErrCode_name[6331:6346], - 36002: _ErrCode_name[6346:6370], - 36003: _ErrCode_name[6370:6392], - 36004: _ErrCode_name[6392:6415], - 36005: _ErrCode_name[6415:6441], - 36006: _ErrCode_name[6441:6474], - 36007: _ErrCode_name[6474:6498], - 36008: _ErrCode_name[6498:6522], - 36009: _ErrCode_name[6522:6550], - 36010: _ErrCode_name[6550:6571], - 36011: _ErrCode_name[6571:6600], - 36012: _ErrCode_name[6600:6624], - 36013: _ErrCode_name[6624:6649], - 36014: _ErrCode_name[6649:6674], - 36015: _ErrCode_name[6674:6701], - 36016: _ErrCode_name[6701:6730], - 36017: _ErrCode_name[6730:6749], - 36018: _ErrCode_name[6749:6772], - 36019: _ErrCode_name[6772:6804], - 36020: _ErrCode_name[6804:6825], - 36021: _ErrCode_name[6825:6850], - 36022: _ErrCode_name[6850:6878], - 36023: _ErrCode_name[6878:6901], - 36024: _ErrCode_name[6901:6933], - 36025: _ErrCode_name[6933:6962], - 36026: _ErrCode_name[6962:6986], - 36027: _ErrCode_name[6986:7013], - 36028: _ErrCode_name[7013:7045], - 36029: _ErrCode_name[7045:7077], - 36030: _ErrCode_name[7077:7107], - 36031: _ErrCode_name[7107:7131], - 36032: _ErrCode_name[7131:7157], - 36033: _ErrCode_name[7157:7182], - 36034: _ErrCode_name[7182:7208], - 36035: _ErrCode_name[7208:7238], - 36036: _ErrCode_name[7238:7269], - 36037: _ErrCode_name[7269:7302], - 36038: _ErrCode_name[7302:7335], - 36039: _ErrCode_name[7335:7365], - 36040: _ErrCode_name[7365:7400], - 36041: _ErrCode_name[7400:7434], - 36042: _ErrCode_name[7434:7464], - 36043: _ErrCode_name[7464:7498], - 36044: _ErrCode_name[7498:7531], - 36045: _ErrCode_name[7531:7567], - 36046: _ErrCode_name[7567:7601], - 36047: _ErrCode_name[7601:7628], - 36048: _ErrCode_name[7628:7659], - 36049: _ErrCode_name[7659:7686], - 36050: _ErrCode_name[7686:7716], - 36051: _ErrCode_name[7716:7744], - 36052: _ErrCode_name[7744:7775], - 36053: _ErrCode_name[7775:7807], - 36054: _ErrCode_name[7807:7831], - 36055: _ErrCode_name[7831:7860], - 36056: _ErrCode_name[7860:7890], - 36057: _ErrCode_name[7890:7922], - 36058: _ErrCode_name[7922:7954], - 36059: _ErrCode_name[7954:7985], - 36060: _ErrCode_name[7985:8004], - 36061: _ErrCode_name[8004:8029], - 36062: _ErrCode_name[8029:8051], - 36063: _ErrCode_name[8051:8066], - 36064: _ErrCode_name[8066:8077], - 36065: _ErrCode_name[8077:8099], - 36066: _ErrCode_name[8099:8118], - 36067: _ErrCode_name[8118:8132], - 36068: _ErrCode_name[8132:8153], - 36069: _ErrCode_name[8153:8167], - 36070: _ErrCode_name[8167:8196], - 36071: _ErrCode_name[8196:8227], - 38001: _ErrCode_name[8227:8248], - 38002: _ErrCode_name[8248:8269], - 38003: _ErrCode_name[8269:8295], - 38004: _ErrCode_name[8295:8315], - 38005: _ErrCode_name[8315:8340], - 38006: _ErrCode_name[8340:8361], - 38007: _ErrCode_name[8361:8385], - 38008: _ErrCode_name[8385:8407], - 38009: _ErrCode_name[8407:8431], - 38010: _ErrCode_name[8431:8455], - 38011: _ErrCode_name[8455:8478], - 38012: _ErrCode_name[8478:8501], - 38013: _ErrCode_name[8501:8526], - 38014: _ErrCode_name[8526:8550], - 38015: _ErrCode_name[8550:8575], - 38016: _ErrCode_name[8575:8596], - 38017: _ErrCode_name[8596:8614], - 38018: _ErrCode_name[8614:8631], - 38019: _ErrCode_name[8631:8649], - 38020: _ErrCode_name[8649:8670], - 38021: _ErrCode_name[8670:8693], - 38022: _ErrCode_name[8693:8716], - 38023: _ErrCode_name[8716:8738], - 38024: _ErrCode_name[8738:8756], - 38025: _ErrCode_name[8756:8783], - 38026: _ErrCode_name[8783:8807], - 38027: _ErrCode_name[8807:8834], - 38028: _ErrCode_name[8834:8859], - 38029: _ErrCode_name[8859:8884], - 38030: _ErrCode_name[8884:8907], - 38031: _ErrCode_name[8907:8925], - 38032: _ErrCode_name[8925:8949], - 38033: _ErrCode_name[8949:8973], - 38034: _ErrCode_name[8973:8993], - 38035: _ErrCode_name[8993:9015], - 38036: _ErrCode_name[9015:9036], - 38037: _ErrCode_name[9036:9064], - 38038: _ErrCode_name[9064:9088], - 38039: _ErrCode_name[9088:9106], - 38040: _ErrCode_name[9106:9129], - 38041: _ErrCode_name[9129:9151], - 38042: _ErrCode_name[9151:9178], - 38043: _ErrCode_name[9178:9211], - 38044: _ErrCode_name[9211:9234], - 38045: _ErrCode_name[9234:9261], - 38046: _ErrCode_name[9261:9286], - 38047: _ErrCode_name[9286:9310], - 38048: _ErrCode_name[9310:9334], - 38049: _ErrCode_name[9334:9358], - 38050: _ErrCode_name[9358:9389], - 38051: _ErrCode_name[9389:9412], - 38052: _ErrCode_name[9412:9431], - 38053: _ErrCode_name[9431:9457], - 38054: _ErrCode_name[9457:9494], - 38055: _ErrCode_name[9494:9533], - 38056: _ErrCode_name[9533:9571], - 38057: _ErrCode_name[9571:9593], - 38058: _ErrCode_name[9593:9608], - 40001: _ErrCode_name[9608:9626], - 40002: _ErrCode_name[9626:9643], - 40003: _ErrCode_name[9643:9669], - 40004: _ErrCode_name[9669:9696], - 40005: _ErrCode_name[9696:9714], - 40006: _ErrCode_name[9714:9735], - 40007: _ErrCode_name[9735:9756], - 40008: _ErrCode_name[9756:9777], - 40009: _ErrCode_name[9777:9800], - 40010: _ErrCode_name[9800:9823], - 40011: _ErrCode_name[9823:9844], - 40012: _ErrCode_name[9844:9869], - 40013: _ErrCode_name[9869:9890], - 40014: _ErrCode_name[9890:9914], - 40015: _ErrCode_name[9914:9939], - 40016: _ErrCode_name[9939:9960], - 40017: _ErrCode_name[9960:9979], - 40018: _ErrCode_name[9979:10003], - 40019: _ErrCode_name[10003:10026], - 40020: _ErrCode_name[10026:10046], - 40021: _ErrCode_name[10046:10063], - 40022: _ErrCode_name[10063:10080], - 40023: _ErrCode_name[10080:10101], - 40024: _ErrCode_name[10101:10127], - 40025: _ErrCode_name[10127:10153], - 40026: _ErrCode_name[10153:10176], - 40027: _ErrCode_name[10176:10197], - 40028: _ErrCode_name[10197:10217], - 40029: _ErrCode_name[10217:10240], - 40030: _ErrCode_name[10240:10263], - 40031: _ErrCode_name[10263:10284], - 40032: _ErrCode_name[10284:10305], - 40033: _ErrCode_name[10305:10325], - 40034: _ErrCode_name[10325:10347], - 40035: _ErrCode_name[10347:10372], - 40036: _ErrCode_name[10372:10397], - 40037: _ErrCode_name[10397:10414], - 40038: _ErrCode_name[10414:10433], - 40039: _ErrCode_name[10433:10457], - 40040: _ErrCode_name[10457:10482], - 40041: _ErrCode_name[10482:10500], - 40042: _ErrCode_name[10500:10523], - 40043: _ErrCode_name[10523:10545], - 40044: _ErrCode_name[10545:10569], - 40045: _ErrCode_name[10569:10591], - 40046: _ErrCode_name[10591:10612], - 40047: _ErrCode_name[10612:10634], - 40048: _ErrCode_name[10634:10652], - 40049: _ErrCode_name[10652:10671], - 40050: _ErrCode_name[10671:10692], - 40051: _ErrCode_name[10692:10712], - 40052: _ErrCode_name[10712:10733], - 40053: _ErrCode_name[10733:10755], - 40054: _ErrCode_name[10755:10776], - 40055: _ErrCode_name[10776:10795], - 40056: _ErrCode_name[10795:10817], - 40057: _ErrCode_name[10817:10837], - 40058: _ErrCode_name[10837:10858], - 40059: _ErrCode_name[10858:10884], - 40060: _ErrCode_name[10884:10902], - 40061: _ErrCode_name[10902:10927], - 40062: _ErrCode_name[10927:10950], - 40063: _ErrCode_name[10950:10974], - 40064: _ErrCode_name[10974:10999], - 40065: _ErrCode_name[10999:11022], - 40066: _ErrCode_name[11022:11042], - 40067: _ErrCode_name[11042:11071], - 40068: _ErrCode_name[11071:11091], - 40069: _ErrCode_name[11091:11113], - 40070: _ErrCode_name[11113:11126], - 40071: _ErrCode_name[11126:11146], - 40072: _ErrCode_name[11146:11166], - 40073: _ErrCode_name[11166:11202], - 40074: _ErrCode_name[11202:11237], - 40075: _ErrCode_name[11237:11260], - 40076: _ErrCode_name[11260:11283], - 40077: _ErrCode_name[11283:11306], - 40078: _ErrCode_name[11306:11332], - 40079: _ErrCode_name[11332:11357], - 40080: _ErrCode_name[11357:11381], - 40081: _ErrCode_name[11381:11406], - 40082: _ErrCode_name[11406:11430], - 40083: _ErrCode_name[11430:11448], - 42001: _ErrCode_name[11448:11466], - 42002: _ErrCode_name[11466:11491], - 42003: _ErrCode_name[11491:11514], - 42004: _ErrCode_name[11514:11538], - 42005: _ErrCode_name[11538:11562], - 42006: _ErrCode_name[11562:11581], - 42007: _ErrCode_name[11581:11601], - 42008: _ErrCode_name[11601:11625], - 42009: _ErrCode_name[11625:11648], - 42010: _ErrCode_name[11648:11666], - 42501: _ErrCode_name[11666:11684], - 42502: _ErrCode_name[11684:11697], - 42503: _ErrCode_name[11697:11712], - 42504: _ErrCode_name[11712:11732], - 42505: _ErrCode_name[11732:11747], - 43001: _ErrCode_name[11747:11773], - 43002: _ErrCode_name[11773:11793], - 43003: _ErrCode_name[11793:11810], - 43004: _ErrCode_name[11810:11834], - 43005: _ErrCode_name[11834:11857], - 43006: _ErrCode_name[11857:11874], - 43007: _ErrCode_name[11874:11888], - 43008: _ErrCode_name[11888:11911], - 44001: _ErrCode_name[11911:11935], - 44002: _ErrCode_name[11935:11966], - 44003: _ErrCode_name[11966:11996], - 44004: _ErrCode_name[11996:12024], - 44005: _ErrCode_name[12024:12051], - 44006: _ErrCode_name[12051:12077], - 44007: _ErrCode_name[12077:12116], - 44008: _ErrCode_name[12116:12155], - 44009: _ErrCode_name[12155:12190], - 44010: _ErrCode_name[12190:12218], - 44011: _ErrCode_name[12218:12246], - 44012: _ErrCode_name[12246:12263], - 44013: _ErrCode_name[12263:12287], - 44014: _ErrCode_name[12287:12313], - 44015: _ErrCode_name[12313:12342], - 44016: _ErrCode_name[12342:12381], - 44017: _ErrCode_name[12381:12420], - 44018: _ErrCode_name[12420:12458], - 44019: _ErrCode_name[12458:12507], - 44020: _ErrCode_name[12507:12528], - 46001: _ErrCode_name[12528:12547], - 46002: _ErrCode_name[12547:12563], - 46003: _ErrCode_name[12563:12583], - 46004: _ErrCode_name[12583:12606], - 46005: _ErrCode_name[12606:12627], - 46006: _ErrCode_name[12627:12654], - 46007: _ErrCode_name[12654:12677], - 46008: _ErrCode_name[12677:12703], - 46009: _ErrCode_name[12703:12726], - 46010: _ErrCode_name[12726:12752], - 46011: _ErrCode_name[12752:12784], - 46012: _ErrCode_name[12784:12817], - 46013: _ErrCode_name[12817:12835], - 46014: _ErrCode_name[12835:12856], - 46015: _ErrCode_name[12856:12890], - 46016: _ErrCode_name[12890:12920], - 46017: _ErrCode_name[12920:12952], - 46018: _ErrCode_name[12952:12973], - 46019: _ErrCode_name[12973:13010], - 46020: _ErrCode_name[13010:13035], - 46021: _ErrCode_name[13035:13061], - 46022: _ErrCode_name[13061:13092], - 46023: _ErrCode_name[13092:13119], - 46024: _ErrCode_name[13119:13138], - 46025: _ErrCode_name[13138:13162], - 46026: _ErrCode_name[13162:13187], - 46027: _ErrCode_name[13187:13221], - 46028: _ErrCode_name[13221:13251], - 46029: _ErrCode_name[13251:13280], - 46030: _ErrCode_name[13280:13306], - 46031: _ErrCode_name[13306:13331], - 46032: _ErrCode_name[13331:13366], - 46033: _ErrCode_name[13366:13388], - 46034: _ErrCode_name[13388:13412], - 46035: _ErrCode_name[13412:13437], - 48001: _ErrCode_name[13437:13454], - 48002: _ErrCode_name[13454:13470], - 48003: _ErrCode_name[13470:13483], - 49001: _ErrCode_name[13483:13496], - 49002: _ErrCode_name[13496:13521], - 50000: _ErrCode_name[13521:13527], ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) + 20063: _ErrCode_name[4155:4186], + 22001: _ErrCode_name[4186:4207], + 22002: _ErrCode_name[4207:4228], + 22003: _ErrCode_name[4228:4249], + 24001: _ErrCode_name[4249:4274], + 24002: _ErrCode_name[4274:4298], + 24003: _ErrCode_name[4298:4324], + 24004: _ErrCode_name[4324:4350], + 24005: _ErrCode_name[4350:4379], + 24006: _ErrCode_name[4379:4408], + 26001: _ErrCode_name[4408:4430], + 26002: _ErrCode_name[4430:4451], + 26003: _ErrCode_name[4451:4474], + 26004: _ErrCode_name[4474:4499], + 26005: _ErrCode_name[4499:4523], + 26006: _ErrCode_name[4523:4541], + 26007: _ErrCode_name[4541:4556], + 28001: _ErrCode_name[4556:4575], + 28002: _ErrCode_name[4575:4595], + 28003: _ErrCode_name[4595:4622], + 28004: _ErrCode_name[4622:4645], + 28005: _ErrCode_name[4645:4668], + 30001: _ErrCode_name[4668:4691], + 30002: _ErrCode_name[4691:4718], + 30003: _ErrCode_name[4718:4735], + 30004: _ErrCode_name[4735:4758], + 30005: _ErrCode_name[4758:4776], + 30006: _ErrCode_name[4776:4795], + 30007: _ErrCode_name[4795:4815], + 30008: _ErrCode_name[4815:4835], + 30009: _ErrCode_name[4835:4857], + 30010: _ErrCode_name[4857:4884], + 30011: _ErrCode_name[4884:4904], + 30012: _ErrCode_name[4904:4927], + 30013: _ErrCode_name[4927:4948], + 30014: _ErrCode_name[4948:4975], + 30015: _ErrCode_name[4975:4997], + 30016: _ErrCode_name[4997:5019], + 30017: _ErrCode_name[5019:5046], + 30018: _ErrCode_name[5046:5066], + 30019: _ErrCode_name[5066:5086], + 30020: _ErrCode_name[5086:5111], + 30021: _ErrCode_name[5111:5142], + 30022: _ErrCode_name[5142:5167], + 30023: _ErrCode_name[5167:5189], + 30024: _ErrCode_name[5189:5219], + 30025: _ErrCode_name[5219:5241], + 30026: _ErrCode_name[5241:5272], + 30027: _ErrCode_name[5272:5302], + 30028: _ErrCode_name[5302:5334], + 30029: _ErrCode_name[5334:5360], + 30030: _ErrCode_name[5360:5375], + 30031: _ErrCode_name[5375:5406], + 30032: _ErrCode_name[5406:5439], + 30033: _ErrCode_name[5439:5449], + 30034: _ErrCode_name[5449:5474], + 30035: _ErrCode_name[5474:5500], + 30036: _ErrCode_name[5500:5527], + 30037: _ErrCode_name[5527:5548], + 30038: _ErrCode_name[5548:5569], + 30039: _ErrCode_name[5569:5594], + 30040: _ErrCode_name[5594:5615], + 30041: _ErrCode_name[5615:5634], + 30042: _ErrCode_name[5634:5656], + 30043: _ErrCode_name[5656:5677], + 30044: _ErrCode_name[5677:5709], + 32001: _ErrCode_name[5709:5724], + 32002: _ErrCode_name[5724:5746], + 32003: _ErrCode_name[5746:5763], + 32004: _ErrCode_name[5763:5781], + 34001: _ErrCode_name[5781:5805], + 34002: _ErrCode_name[5805:5830], + 34003: _ErrCode_name[5830:5854], + 34004: _ErrCode_name[5854:5877], + 34005: _ErrCode_name[5877:5899], + 34006: _ErrCode_name[5899:5921], + 34007: _ErrCode_name[5921:5943], + 34008: _ErrCode_name[5943:5970], + 34009: _ErrCode_name[5970:5994], + 34010: _ErrCode_name[5994:6016], + 34011: _ErrCode_name[6016:6040], + 34012: _ErrCode_name[6040:6056], + 34013: _ErrCode_name[6056:6075], + 34014: _ErrCode_name[6075:6098], + 34015: _ErrCode_name[6098:6124], + 34016: _ErrCode_name[6124:6141], + 34017: _ErrCode_name[6141:6163], + 34018: _ErrCode_name[6163:6185], + 34019: _ErrCode_name[6185:6205], + 36001: _ErrCode_name[6205:6220], + 36002: _ErrCode_name[6220:6244], + 36003: _ErrCode_name[6244:6266], + 36004: _ErrCode_name[6266:6289], + 36005: _ErrCode_name[6289:6315], + 36006: _ErrCode_name[6315:6348], + 36007: _ErrCode_name[6348:6372], + 36008: _ErrCode_name[6372:6396], + 36009: _ErrCode_name[6396:6424], + 36010: _ErrCode_name[6424:6445], + 36011: _ErrCode_name[6445:6474], + 36012: _ErrCode_name[6474:6498], + 36013: _ErrCode_name[6498:6523], + 36014: _ErrCode_name[6523:6548], + 36015: _ErrCode_name[6548:6575], + 36016: _ErrCode_name[6575:6604], + 36017: _ErrCode_name[6604:6623], + 36018: _ErrCode_name[6623:6646], + 36019: _ErrCode_name[6646:6678], + 36020: _ErrCode_name[6678:6699], + 36021: _ErrCode_name[6699:6724], + 36022: _ErrCode_name[6724:6752], + 36023: _ErrCode_name[6752:6775], + 36024: _ErrCode_name[6775:6807], + 36025: _ErrCode_name[6807:6836], + 36026: _ErrCode_name[6836:6860], + 36027: _ErrCode_name[6860:6887], + 36028: _ErrCode_name[6887:6919], + 36029: _ErrCode_name[6919:6951], + 36030: _ErrCode_name[6951:6981], + 36031: _ErrCode_name[6981:7005], + 36032: _ErrCode_name[7005:7031], + 36033: _ErrCode_name[7031:7056], + 36034: _ErrCode_name[7056:7082], + 36035: _ErrCode_name[7082:7112], + 36036: _ErrCode_name[7112:7143], + 36037: _ErrCode_name[7143:7176], + 36038: _ErrCode_name[7176:7209], + 36039: _ErrCode_name[7209:7239], + 36040: _ErrCode_name[7239:7274], + 36041: _ErrCode_name[7274:7308], + 36042: _ErrCode_name[7308:7338], + 36043: _ErrCode_name[7338:7372], + 36044: _ErrCode_name[7372:7405], + 36045: _ErrCode_name[7405:7441], + 36046: _ErrCode_name[7441:7475], + 36047: _ErrCode_name[7475:7502], + 36048: _ErrCode_name[7502:7533], + 36049: _ErrCode_name[7533:7560], + 36050: _ErrCode_name[7560:7590], + 36051: _ErrCode_name[7590:7618], + 36052: _ErrCode_name[7618:7649], + 36053: _ErrCode_name[7649:7681], + 36054: _ErrCode_name[7681:7705], + 36055: _ErrCode_name[7705:7734], + 36056: _ErrCode_name[7734:7764], + 36057: _ErrCode_name[7764:7796], + 36058: _ErrCode_name[7796:7828], + 36059: _ErrCode_name[7828:7859], + 36060: _ErrCode_name[7859:7878], + 36061: _ErrCode_name[7878:7903], + 36062: _ErrCode_name[7903:7925], + 36063: _ErrCode_name[7925:7940], + 36064: _ErrCode_name[7940:7951], + 36065: _ErrCode_name[7951:7973], + 36066: _ErrCode_name[7973:7992], + 36067: _ErrCode_name[7992:8006], + 36068: _ErrCode_name[8006:8027], + 36069: _ErrCode_name[8027:8041], + 36070: _ErrCode_name[8041:8070], + 36071: _ErrCode_name[8070:8101], + 38001: _ErrCode_name[8101:8122], + 38002: _ErrCode_name[8122:8143], + 38003: _ErrCode_name[8143:8169], + 38004: _ErrCode_name[8169:8189], + 38005: _ErrCode_name[8189:8214], + 38006: _ErrCode_name[8214:8235], + 38007: _ErrCode_name[8235:8259], + 38008: _ErrCode_name[8259:8281], + 38009: _ErrCode_name[8281:8305], + 38010: _ErrCode_name[8305:8329], + 38011: _ErrCode_name[8329:8352], + 38012: _ErrCode_name[8352:8375], + 38013: _ErrCode_name[8375:8400], + 38014: _ErrCode_name[8400:8424], + 38015: _ErrCode_name[8424:8449], + 38016: _ErrCode_name[8449:8470], + 38017: _ErrCode_name[8470:8488], + 38018: _ErrCode_name[8488:8505], + 38019: _ErrCode_name[8505:8523], + 38020: _ErrCode_name[8523:8544], + 38021: _ErrCode_name[8544:8567], + 38022: _ErrCode_name[8567:8590], + 38023: _ErrCode_name[8590:8612], + 38024: _ErrCode_name[8612:8630], + 38025: _ErrCode_name[8630:8657], + 38026: _ErrCode_name[8657:8681], + 38027: _ErrCode_name[8681:8708], + 38028: _ErrCode_name[8708:8733], + 38029: _ErrCode_name[8733:8758], + 38030: _ErrCode_name[8758:8781], + 38031: _ErrCode_name[8781:8799], + 38032: _ErrCode_name[8799:8823], + 38033: _ErrCode_name[8823:8847], + 38034: _ErrCode_name[8847:8867], + 38035: _ErrCode_name[8867:8889], + 38036: _ErrCode_name[8889:8910], + 38037: _ErrCode_name[8910:8938], + 38038: _ErrCode_name[8938:8962], + 38039: _ErrCode_name[8962:8980], + 38040: _ErrCode_name[8980:9003], + 38041: _ErrCode_name[9003:9025], + 38042: _ErrCode_name[9025:9052], + 38043: _ErrCode_name[9052:9085], + 38044: _ErrCode_name[9085:9108], + 38045: _ErrCode_name[9108:9135], + 38046: _ErrCode_name[9135:9160], + 38047: _ErrCode_name[9160:9184], + 38048: _ErrCode_name[9184:9208], + 38049: _ErrCode_name[9208:9232], + 38050: _ErrCode_name[9232:9263], + 38051: _ErrCode_name[9263:9286], + 38052: _ErrCode_name[9286:9305], + 38053: _ErrCode_name[9305:9331], + 38054: _ErrCode_name[9331:9368], + 38055: _ErrCode_name[9368:9407], + 38056: _ErrCode_name[9407:9445], + 38057: _ErrCode_name[9445:9467], + 38058: _ErrCode_name[9467:9482], + 40001: _ErrCode_name[9482:9500], + 40002: _ErrCode_name[9500:9517], + 40003: _ErrCode_name[9517:9543], + 40004: _ErrCode_name[9543:9570], + 40005: _ErrCode_name[9570:9588], + 40006: _ErrCode_name[9588:9609], + 40007: _ErrCode_name[9609:9630], + 40008: _ErrCode_name[9630:9651], + 40009: _ErrCode_name[9651:9674], + 40010: _ErrCode_name[9674:9697], + 40011: _ErrCode_name[9697:9718], + 40012: _ErrCode_name[9718:9743], + 40013: _ErrCode_name[9743:9764], + 40014: _ErrCode_name[9764:9788], + 40015: _ErrCode_name[9788:9813], + 40016: _ErrCode_name[9813:9834], + 40017: _ErrCode_name[9834:9853], + 40018: _ErrCode_name[9853:9877], + 40019: _ErrCode_name[9877:9900], + 40020: _ErrCode_name[9900:9920], + 40021: _ErrCode_name[9920:9937], + 40022: _ErrCode_name[9937:9954], + 40023: _ErrCode_name[9954:9975], + 40024: _ErrCode_name[9975:10001], + 40025: _ErrCode_name[10001:10027], + 40026: _ErrCode_name[10027:10050], + 40027: _ErrCode_name[10050:10071], + 40028: _ErrCode_name[10071:10091], + 40029: _ErrCode_name[10091:10114], + 40030: _ErrCode_name[10114:10137], + 40031: _ErrCode_name[10137:10158], + 40032: _ErrCode_name[10158:10179], + 40033: _ErrCode_name[10179:10199], + 40034: _ErrCode_name[10199:10221], + 40035: _ErrCode_name[10221:10246], + 40036: _ErrCode_name[10246:10271], + 40037: _ErrCode_name[10271:10288], + 40038: _ErrCode_name[10288:10307], + 40039: _ErrCode_name[10307:10331], + 40040: _ErrCode_name[10331:10356], + 40041: _ErrCode_name[10356:10374], + 40042: _ErrCode_name[10374:10397], + 40043: _ErrCode_name[10397:10419], + 40044: _ErrCode_name[10419:10443], + 40045: _ErrCode_name[10443:10465], + 40046: _ErrCode_name[10465:10486], + 40047: _ErrCode_name[10486:10508], + 40048: _ErrCode_name[10508:10526], + 40049: _ErrCode_name[10526:10545], + 40050: _ErrCode_name[10545:10566], + 40051: _ErrCode_name[10566:10586], + 40052: _ErrCode_name[10586:10607], + 40053: _ErrCode_name[10607:10629], + 40054: _ErrCode_name[10629:10650], + 40055: _ErrCode_name[10650:10669], + 40056: _ErrCode_name[10669:10691], + 40057: _ErrCode_name[10691:10711], + 40058: _ErrCode_name[10711:10732], + 40059: _ErrCode_name[10732:10758], + 40060: _ErrCode_name[10758:10776], + 40061: _ErrCode_name[10776:10801], + 40062: _ErrCode_name[10801:10824], + 40063: _ErrCode_name[10824:10848], + 40064: _ErrCode_name[10848:10873], + 40065: _ErrCode_name[10873:10896], + 40066: _ErrCode_name[10896:10916], + 40067: _ErrCode_name[10916:10945], + 40068: _ErrCode_name[10945:10965], + 40069: _ErrCode_name[10965:10987], + 40070: _ErrCode_name[10987:11000], + 40071: _ErrCode_name[11000:11020], + 40072: _ErrCode_name[11020:11040], + 40073: _ErrCode_name[11040:11076], + 40074: _ErrCode_name[11076:11111], + 40075: _ErrCode_name[11111:11134], + 40076: _ErrCode_name[11134:11157], + 40077: _ErrCode_name[11157:11180], + 40078: _ErrCode_name[11180:11206], + 40079: _ErrCode_name[11206:11231], + 40080: _ErrCode_name[11231:11255], + 40081: _ErrCode_name[11255:11280], + 40082: _ErrCode_name[11280:11304], + 40083: _ErrCode_name[11304:11322], + 42001: _ErrCode_name[11322:11340], + 42002: _ErrCode_name[11340:11365], + 42003: _ErrCode_name[11365:11388], + 42004: _ErrCode_name[11388:11412], + 42005: _ErrCode_name[11412:11436], + 42006: _ErrCode_name[11436:11455], + 42007: _ErrCode_name[11455:11475], + 42008: _ErrCode_name[11475:11499], + 42009: _ErrCode_name[11499:11522], + 42010: _ErrCode_name[11522:11540], + 42501: _ErrCode_name[11540:11558], + 42502: _ErrCode_name[11558:11571], + 42503: _ErrCode_name[11571:11586], + 42504: _ErrCode_name[11586:11606], + 42505: _ErrCode_name[11606:11621], + 43001: _ErrCode_name[11621:11647], + 43002: _ErrCode_name[11647:11667], + 43003: _ErrCode_name[11667:11684], + 43004: _ErrCode_name[11684:11708], + 43005: _ErrCode_name[11708:11731], + 43006: _ErrCode_name[11731:11748], + 43007: _ErrCode_name[11748:11762], + 43008: _ErrCode_name[11762:11785], + 44001: _ErrCode_name[11785:11809], + 44002: _ErrCode_name[11809:11840], + 44003: _ErrCode_name[11840:11870], + 44004: _ErrCode_name[11870:11898], + 44005: _ErrCode_name[11898:11925], + 44006: _ErrCode_name[11925:11951], + 44007: _ErrCode_name[11951:11990], + 44008: _ErrCode_name[11990:12029], + 44009: _ErrCode_name[12029:12064], + 44010: _ErrCode_name[12064:12092], + 44011: _ErrCode_name[12092:12120], + 44012: _ErrCode_name[12120:12137], + 44013: _ErrCode_name[12137:12161], + 44014: _ErrCode_name[12161:12187], + 44015: _ErrCode_name[12187:12216], + 44016: _ErrCode_name[12216:12255], + 44017: _ErrCode_name[12255:12294], + 44018: _ErrCode_name[12294:12332], + 44019: _ErrCode_name[12332:12381], + 44020: _ErrCode_name[12381:12402], + 46001: _ErrCode_name[12402:12421], + 46002: _ErrCode_name[12421:12437], + 46003: _ErrCode_name[12437:12457], + 46004: _ErrCode_name[12457:12480], + 46005: _ErrCode_name[12480:12501], + 46006: _ErrCode_name[12501:12528], + 46007: _ErrCode_name[12528:12551], + 46008: _ErrCode_name[12551:12577], + 46009: _ErrCode_name[12577:12600], + 46010: _ErrCode_name[12600:12626], + 46011: _ErrCode_name[12626:12658], + 46012: _ErrCode_name[12658:12691], + 46013: _ErrCode_name[12691:12709], + 46014: _ErrCode_name[12709:12730], + 46015: _ErrCode_name[12730:12764], + 46016: _ErrCode_name[12764:12794], + 46017: _ErrCode_name[12794:12826], + 46018: _ErrCode_name[12826:12847], + 46019: _ErrCode_name[12847:12884], + 46020: _ErrCode_name[12884:12909], + 46021: _ErrCode_name[12909:12935], + 46022: _ErrCode_name[12935:12966], + 46023: _ErrCode_name[12966:12993], + 46024: _ErrCode_name[12993:13012], + 46025: _ErrCode_name[13012:13036], + 46026: _ErrCode_name[13036:13061], + 46027: _ErrCode_name[13061:13095], + 46028: _ErrCode_name[13095:13125], + 46029: _ErrCode_name[13125:13154], + 46030: _ErrCode_name[13154:13180], + 46031: _ErrCode_name[13180:13205], + 46032: _ErrCode_name[13205:13240], + 46033: _ErrCode_name[13240:13262], + 46034: _ErrCode_name[13262:13286], + 46035: _ErrCode_name[13286:13311], + 48001: _ErrCode_name[13311:13328], + 48002: _ErrCode_name[13328:13344], + 48003: _ErrCode_name[13344:13357], + 49001: _ErrCode_name[13357:13370], + 49002: _ErrCode_name[13370:13395], + 50000: _ErrCode_name[13395:13401], } func (i ErrCode) String() string { diff --git a/dm/pkg/terror/error_list.go b/dm/pkg/terror/error_list.go index 93a4af63e76..2c50aa193fd 100644 --- a/dm/pkg/terror/error_list.go +++ b/dm/pkg/terror/error_list.go @@ -267,13 +267,7 @@ const ( codeConfigInvalidSafeModeDuration codeConfigConfictSafeModeDurationAndSafeMode codeConfigInvalidLoadPhysicalDuplicateResolution -<<<<<<< HEAD -======= - codeConfigInvalidLoadPhysicalChecksum - codeConfigColumnMappingDeprecated - codeConfigInvalidLoadAnalyze codeConfigStrictOptimisticShardMode ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) ) // Binlog operation error code list. @@ -980,13 +974,7 @@ var ( ErrConfigInvalidSafeModeDuration = New(codeConfigInvalidSafeModeDuration, ClassConfig, ScopeInternal, LevelMedium, "safe-mode-duration '%s' parsed failed: %v", "Please check the `safe-mode-duration` is correct.") ErrConfigConfictSafeModeDurationAndSafeMode = New(codeConfigConfictSafeModeDurationAndSafeMode, ClassConfig, ScopeInternal, LevelLow, "safe-mode(true) conflicts with safe-mode-duration(0s)", "Please set safe-mode to false or safe-mode-duration to non-zero.") ErrConfigInvalidPhysicalDuplicateResolution = New(codeConfigInvalidLoadPhysicalDuplicateResolution, ClassConfig, ScopeInternal, LevelMedium, "invalid load on-duplicate-physical option '%s'", "Please choose a valid value in ['none', 'manual'] or leave it empty.") -<<<<<<< HEAD -======= - ErrConfigInvalidPhysicalChecksum = New(codeConfigInvalidLoadPhysicalChecksum, ClassConfig, ScopeInternal, LevelMedium, "invalid load checksum-physical option '%s'", "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty.") - ErrConfigColumnMappingDeprecated = New(codeConfigColumnMappingDeprecated, ClassConfig, ScopeInternal, LevelHigh, "column-mapping is not supported since v6.6.0", "Please use extract-table/extract-schema/extract-source to handle data conflict when merge tables. See https://docs.pingcap.com/tidb/v6.4/task-configuration-file-full#task-configuration-file-template-advanced") - ErrConfigInvalidLoadAnalyze = New(codeConfigInvalidLoadAnalyze, ClassConfig, ScopeInternal, LevelMedium, "invalid load analyze option '%s'", "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty.") ErrConfigStrictOptimisticShardMode = New(codeConfigStrictOptimisticShardMode, ClassConfig, ScopeInternal, LevelMedium, "cannot enable `strict-optimistic-shard-mode` while `shard-mode` is not `optimistic`", "Please set `shard-mode` to `optimistic` if you want to enable `strict-optimistic-shard-mode`.") ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) // Binlog operation error. ErrBinlogExtractPosition = New(codeBinlogExtractPosition, ClassBinlogOp, ScopeInternal, LevelHigh, "", "") From 7bb698844fe134eb1b37d748165a185d3f7e163c Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Wed, 14 Jun 2023 00:51:21 +0800 Subject: [PATCH 3/5] update --- dm/_utils/terror_gen/errors_release.txt | 8 +------- dm/errors.toml | 21 --------------------- engine/jobmaster/dm/config/config.go | 21 +-------------------- 3 files changed, 2 insertions(+), 48 deletions(-) diff --git a/dm/_utils/terror_gen/errors_release.txt b/dm/_utils/terror_gen/errors_release.txt index 8ab69a5a3dc..326f066845b 100644 --- a/dm/_utils/terror_gen/errors_release.txt +++ b/dm/_utils/terror_gen/errors_release.txt @@ -195,13 +195,7 @@ ErrConfigLoaderS3NotSupport,[code=20059:class=config:scope=internal:level=high], ErrConfigInvalidSafeModeDuration,[code=20060:class=config:scope=internal:level=medium], "Message: safe-mode-duration '%s' parsed failed: %v, Workaround: Please check the `safe-mode-duration` is correct." ErrConfigConfictSafeModeDurationAndSafeMode,[code=20061:class=config:scope=internal:level=low], "Message: safe-mode(true) conflicts with safe-mode-duration(0s), Workaround: Please set safe-mode to false or safe-mode-duration to non-zero." ErrConfigInvalidPhysicalDuplicateResolution,[code=20062:class=config:scope=internal:level=medium], "Message: invalid load on-duplicate-physical option '%s', Workaround: Please choose a valid value in ['none', 'manual'] or leave it empty." -<<<<<<< HEAD -======= -ErrConfigInvalidPhysicalChecksum,[code=20063:class=config:scope=internal:level=medium], "Message: invalid load checksum-physical option '%s', Workaround: Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." -ErrConfigColumnMappingDeprecated,[code=20064:class=config:scope=internal:level=high], "Message: column-mapping is not supported since v6.6.0, Workaround: Please use extract-table/extract-schema/extract-source to handle data conflict when merge tables. See https://docs.pingcap.com/tidb/v6.4/task-configuration-file-full#task-configuration-file-template-advanced" -ErrConfigInvalidLoadAnalyze,[code=20065:class=config:scope=internal:level=medium], "Message: invalid load analyze option '%s', Workaround: Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." -ErrConfigStrictOptimisticShardMode,[code=20066:class=config:scope=internal:level=medium], "Message: cannot enable `strict-optimistic-shard-mode` while `shard-mode` is not `optimistic`, Workaround: Please set `shard-mode` to `optimistic` if you want to enable `strict-optimistic-shard-mode`." ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) +ErrConfigStrictOptimisticShardMode,[code=20063:class=config:scope=internal:level=medium], "Message: cannot enable `strict-optimistic-shard-mode` while `shard-mode` is not `optimistic`, Workaround: Please set `shard-mode` to `optimistic` if you want to enable `strict-optimistic-shard-mode`." ErrBinlogExtractPosition,[code=22001:class=binlog-op:scope=internal:level=high] ErrBinlogInvalidFilename,[code=22002:class=binlog-op:scope=internal:level=high], "Message: invalid binlog filename" ErrBinlogParsePosFromStr,[code=22003:class=binlog-op:scope=internal:level=high] diff --git a/dm/errors.toml b/dm/errors.toml index 7e7acff9491..3f119eaf7fb 100644 --- a/dm/errors.toml +++ b/dm/errors.toml @@ -1186,33 +1186,12 @@ description = "" workaround = "Please choose a valid value in ['none', 'manual'] or leave it empty." tags = ["internal", "medium"] -<<<<<<< HEAD -======= [error.DM-config-20063] -message = "invalid load checksum-physical option '%s'" -description = "" -workaround = "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." -tags = ["internal", "medium"] - -[error.DM-config-20064] -message = "column-mapping is not supported since v6.6.0" -description = "" -workaround = "Please use extract-table/extract-schema/extract-source to handle data conflict when merge tables. See https://docs.pingcap.com/tidb/v6.4/task-configuration-file-full#task-configuration-file-template-advanced" -tags = ["internal", "high"] - -[error.DM-config-20065] -message = "invalid load analyze option '%s'" -description = "" -workaround = "Please choose a valid value in ['required', 'optional', 'off'] or leave it empty." -tags = ["internal", "medium"] - -[error.DM-config-20066] message = "cannot enable `strict-optimistic-shard-mode` while `shard-mode` is not `optimistic`" description = "" workaround = "Please set `shard-mode` to `optimistic` if you want to enable `strict-optimistic-shard-mode`." tags = ["internal", "medium"] ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) [error.DM-binlog-op-22001] message = "" description = "" diff --git a/engine/jobmaster/dm/config/config.go b/engine/jobmaster/dm/config/config.go index be32cd7390e..fd1df9705e7 100644 --- a/engine/jobmaster/dm/config/config.go +++ b/engine/jobmaster/dm/config/config.go @@ -75,31 +75,13 @@ func (u *UpstreamCfg) adjust() error { // It represents a DM subtask with multiple source configs embedded as Upstreams. // DISCUSS: support command line args. e.g. --start-time. type JobCfg struct { -<<<<<<< HEAD - TaskMode string `yaml:"task-mode" toml:"task-mode" json:"task-mode"` - ShardMode string `yaml:"shard-mode" toml:"shard-mode" json:"shard-mode"` // when `shard-mode` set, we always enable sharding support. - IgnoreCheckingItems []string `yaml:"ignore-checking-items" toml:"ignore-checking-items" json:"ignore-checking-items"` - Timezone string `yaml:"timezone" toml:"timezone" json:"timezone"` - CollationCompatible string `yaml:"collation_compatible" toml:"collation_compatible" json:"collation_compatible"` - TargetDB *dmconfig.DBConfig `yaml:"target-database" toml:"target-database" json:"target-database"` - ShadowTableRules []string `yaml:"shadow-table-rules" toml:"shadow-table-rules" json:"shadow-table-rules"` - TrashTableRules []string `yaml:"trash-table-rules" toml:"trash-table-rules" json:"trash-table-rules"` - Filters map[string]*bf.BinlogEventRule `yaml:"filters" toml:"filters" json:"filters"` - ExprFilter map[string]*dmconfig.ExpressionFilter `yaml:"expression-filter" toml:"expression-filter" json:"expression-filter"` - BAList map[string]*filter.Rules `yaml:"block-allow-list" toml:"block-allow-list" json:"block-allow-list"` - Mydumpers map[string]*dmconfig.MydumperConfig `yaml:"mydumpers" toml:"mydumpers" json:"mydumpers"` - Loaders map[string]*dmconfig.LoaderConfig `yaml:"loaders" toml:"loaders" json:"loaders"` - Syncers map[string]*dmconfig.SyncerConfig `yaml:"syncers" toml:"syncers" json:"syncers"` - Routes map[string]*router.TableRule `yaml:"routes" toml:"routes" json:"routes"` - Validators map[string]*dmconfig.ValidatorConfig `yaml:"validators" toml:"validators" json:"validators"` -======= TaskMode string `yaml:"task-mode" toml:"task-mode" json:"task-mode"` ShardMode string `yaml:"shard-mode" toml:"shard-mode" json:"shard-mode"` // when `shard-mode` set, we always enable sharding support. StrictOptimisticShardMode bool `yaml:"strict-optimistic-shard-mode" toml:"strict-optimistic-shard-mode" json:"strict-optimistic-shard-mode"` IgnoreCheckingItems []string `yaml:"ignore-checking-items" toml:"ignore-checking-items" json:"ignore-checking-items"` Timezone string `yaml:"timezone" toml:"timezone" json:"timezone"` CollationCompatible string `yaml:"collation_compatible" toml:"collation_compatible" json:"collation_compatible"` - TargetDB *dbconfig.DBConfig `yaml:"target-database" toml:"target-database" json:"target-database"` + TargetDB *dmconfig.DBConfig `yaml:"target-database" toml:"target-database" json:"target-database"` ShadowTableRules []string `yaml:"shadow-table-rules" toml:"shadow-table-rules" json:"shadow-table-rules"` TrashTableRules []string `yaml:"trash-table-rules" toml:"trash-table-rules" json:"trash-table-rules"` Filters map[string]*bf.BinlogEventRule `yaml:"filters" toml:"filters" json:"filters"` @@ -110,7 +92,6 @@ type JobCfg struct { Syncers map[string]*dmconfig.SyncerConfig `yaml:"syncers" toml:"syncers" json:"syncers"` Routes map[string]*router.TableRule `yaml:"routes" toml:"routes" json:"routes"` Validators map[string]*dmconfig.ValidatorConfig `yaml:"validators" toml:"validators" json:"validators"` ->>>>>>> b7ce4c2605 (dm: add strict optimist mode (#9113)) // remove source config, use db config instead. Upstreams []*UpstreamCfg `yaml:"upstreams" toml:"upstreams" json:"upstreams"` From 31ddb504ef5c7df32e07c81421dfe093e6506263 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Wed, 14 Jun 2023 00:55:54 +0800 Subject: [PATCH 4/5] update --- dm/openapi/gen.server.go | 194 +++++++++++++++++++-------------------- dm/openapi/gen.types.go | 2 +- 2 files changed, 98 insertions(+), 98 deletions(-) diff --git a/dm/openapi/gen.server.go b/dm/openapi/gen.server.go index 4060295efc7..2a5f48ebb0e 100644 --- a/dm/openapi/gen.server.go +++ b/dm/openapi/gen.server.go @@ -1255,103 +1255,103 @@ var swaggerSpec = []string{ "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", - "2/8LAAD//xNoTUdjtwAA", + "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", + "n2//LwAA//8Y0xSHY7cAAA==", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/dm/openapi/gen.types.go b/dm/openapi/gen.types.go index 7867255bb6d..8019182cec0 100644 --- a/dm/openapi/gen.types.go +++ b/dm/openapi/gen.types.go @@ -75,7 +75,7 @@ type ClusterWorker struct { // address of the current master node Addr string `json:"addr"` - // source name bound to this worker node + // bound source name of this worker node BoundSourceName string `json:"bound_source_name"` // bound stage of this worker node From ef9a7355bac23e5a304d8234d6670b496e5de719 Mon Sep 17 00:00:00 2001 From: GMHDBJD <35025882+GMHDBJD@users.noreply.github.com> Date: Tue, 20 Jun 2023 11:31:11 +0800 Subject: [PATCH 5/5] shardddl: return error if conflict happened when receive conflict detect operation (#9263) ref pingcap/tiflow#9112 --- dm/syncer/ddl.go | 3 +++ dm/tests/shardddl4_1/run.sh | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dm/syncer/ddl.go b/dm/syncer/ddl.go index 992d776d8fe..f82bd830a30 100644 --- a/dm/syncer/ddl.go +++ b/dm/syncer/ddl.go @@ -850,6 +850,9 @@ func (ddl *Optimist) handleDDL(qec *queryEventContext) error { if op.ConflictStage != optimism.ConflictDetected { break } + if ddl.strict { + return terror.ErrSyncerShardDDLConflict.Generate(qec.needHandleDDLs, op.ConflictMsg) + } rev = op.Revision ddl.logger.Info("operation conflict detected, waiting for resolve", zap.Stringer("info", info)) } diff --git a/dm/tests/shardddl4_1/run.sh b/dm/tests/shardddl4_1/run.sh index b7914bf6fae..8cac95b6ad2 100644 --- a/dm/tests/shardddl4_1/run.sh +++ b/dm/tests/shardddl4_1/run.sh @@ -1217,13 +1217,14 @@ function DM_STRICT_OPTIMISTIC_SINGLE_SOURCE_CASE() { run_sql_source1 "insert into ${shardddl1}.${tb1} values(1,1);" run_sql_source1 "insert into ${shardddl1}.${tb2} values(2,2);" - run_sql_source1 "alter table ${shardddl1}.${tb1} add c int;" + run_sql_source1 "alter table ${shardddl1}.${tb1} add c int not null default 10;" run_sql_source1 "insert into ${shardddl1}.${tb1} values(3,3,3);" run_sql_source1 "insert into ${shardddl1}.${tb2} values(4,4);" - run_sql_source1 "alter table ${shardddl1}.${tb2} change b c int;" + run_sql_source1 "alter table ${shardddl1}.${tb2} add c varchar(30) not null default '10';" run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ "query-status test" \ + '"stage": "Paused"' 1 \ "because schema conflict detected" 1 }