@@ -288,6 +288,7 @@ func (e *Extractor) Run() {
288288 err = e .storeManager .SaveGtidForJob (e .subject , e .mysqlContext .Gtid )
289289 if err != nil {
290290 e .onError (common .TaskStateDead , err )
291+ return
291292 }
292293 }
293294
@@ -650,6 +651,7 @@ func (e *Extractor) initNatsPubClient(natsAddr string) (err error) {
650651 err := e .natsConn .Publish (m .Reply , nil )
651652 if err != nil {
652653 e .onError (common .TaskStateDead , errors .Wrap (err , "bigtx_ack. reply" ))
654+ return
653655 }
654656
655657 ack := & common.BigTxAck {}
@@ -1144,7 +1146,7 @@ func (e *Extractor) sendSysVarAndSqlMode() error {
11441146}
11451147
11461148//Perform the snapshot using the same logic as the "mysqldump" utility.
1147- func (e * Extractor ) mysqlDump () error {
1149+ func (e * Extractor ) mysqlDump () ( retErr error ) {
11481150 defer e .singletonDB .Close ()
11491151 var tx sql.QueryAble
11501152 var err error
@@ -1263,9 +1265,7 @@ func (e *Extractor) mysqlDump() error {
12631265 }
12641266 step++*/
12651267 e .logger .Info ("Step: committing transaction" , "n" , step )
1266- if err := realTx .Commit (); err != nil {
1267- e .onError (common .TaskStateDead , err )
1268- }
1268+ retErr = realTx .Commit ()
12691269 }()
12701270 } else {
12711271 e .logger .Warn ("Failed to get a consistenct TX with GTID. Will retry." , "gtidMatchRound" , gtidMatchRound )
@@ -1315,7 +1315,7 @@ func (e *Extractor) mysqlDump() error {
13151315 if db .TableSchemaRename != "" {
13161316 dbSQL , err = base .RenameCreateSchemaAddINE (db .CreateSchemaString , db .TableSchemaRename )
13171317 if err != nil {
1318- e . onError ( common . TaskStateDead , err )
1318+ return errors . Wrap ( err , "RenameCreateSchemaAddINE" )
13191319 }
13201320 } else {
13211321 dbSQL = db .CreateSchemaString
@@ -1328,7 +1328,7 @@ func (e *Extractor) mysqlDump() error {
13281328 atomic .AddInt64 (& e .mysqlContext .RowsEstimate , 1 )
13291329 atomic .AddInt64 (& e .TotalRowsCopied , 1 )
13301330 if err := e .encodeAndSendDumpEntry (entry ); err != nil {
1331- e . onError ( common . TaskStateDead , err )
1331+ return errors . Wrap ( err , "encodeAndSendDumpEntry. create schema entry" )
13321332 }
13331333
13341334 for _ , tbCtx := range db .TableMap {
@@ -1338,7 +1338,7 @@ func (e *Extractor) mysqlDump() error {
13381338 }
13391339 total , err := e .CountTableRows (tb )
13401340 if err != nil {
1341- return err
1341+ return errors . Wrapf ( err , "CountTableRows %v.%v" , tb . TableSchema , tb . TableName )
13421342 }
13431343 tb .Counter = total
13441344 var tbSQL []string
@@ -1374,7 +1374,7 @@ func (e *Extractor) mysqlDump() error {
13741374 atomic .AddInt64 (& e .mysqlContext .RowsEstimate , 1 )
13751375 atomic .AddInt64 (& e .TotalRowsCopied , 1 )
13761376 if err := e .encodeAndSendDumpEntry (entry ); err != nil {
1377- e . onError ( common . TaskStateDead , err )
1377+ return errors . Wrap ( err , "encodeAndSendDumpEntry. create table" )
13781378 }
13791379 }
13801380 e .tableCount += len (db .TableMap )
@@ -1401,7 +1401,7 @@ func (e *Extractor) mysqlDump() error {
14011401 d := NewDumper (e .ctx , tx , t , e .mysqlContext .ChunkSize , e .logger .ResetNamed ("dumper" ), e .memory1 ,
14021402 e .mysqlContext .DumpEntryLimit )
14031403 if err := d .Dump (); err != nil {
1404- e . onError ( common . TaskStateDead , err )
1404+ return errors . Wrapf ( err , "d.Dump %v.%v" , t . TableSchema , t . TableName )
14051405 }
14061406 e .dumpers = append (e .dumpers , d )
14071407 // Scan the rows in the table ...
@@ -1410,22 +1410,20 @@ func (e *Extractor) mysqlDump() error {
14101410 if ! d .sentTableDef {
14111411 tableBs , err := common .EncodeTable (d .Table )
14121412 if err != nil {
1413- err = errors .Wrap (err , "full copy: EncodeTable" )
1414- e .onError (common .TaskStateDead , err )
1415- return err
1413+ return errors .Wrap (err , "full copy: EncodeTable" )
14161414 } else {
14171415 entry .Table = tableBs
14181416 d .sentTableDef = true
14191417 }
14201418 }
14211419 if err = e .encodeAndSendDumpEntry (entry ); err != nil {
1422- e . onError ( common . TaskStateDead , err )
1420+ return errors . Wrap ( err , "encodeAndSendDumpEntry. dump" )
14231421 }
14241422 atomic .AddInt64 (& e .TotalRowsCopied , int64 (len (entry .ValuesX )))
14251423 atomic .AddInt64 (d .Memory , - memSize )
14261424 }
14271425 if d .Err != nil {
1428- e . onError ( common . TaskStateDead , d .Err )
1426+ return errors . Wrap ( err , " d.Err" )
14291427 }
14301428 }
14311429 }
0 commit comments