@@ -288,6 +288,7 @@ func (e *Extractor) Run() {
288
288
err = e .storeManager .SaveGtidForJob (e .subject , e .mysqlContext .Gtid )
289
289
if err != nil {
290
290
e .onError (common .TaskStateDead , err )
291
+ return
291
292
}
292
293
}
293
294
@@ -650,6 +651,7 @@ func (e *Extractor) initNatsPubClient(natsAddr string) (err error) {
650
651
err := e .natsConn .Publish (m .Reply , nil )
651
652
if err != nil {
652
653
e .onError (common .TaskStateDead , errors .Wrap (err , "bigtx_ack. reply" ))
654
+ return
653
655
}
654
656
655
657
ack := & common.BigTxAck {}
@@ -1144,7 +1146,7 @@ func (e *Extractor) sendSysVarAndSqlMode() error {
1144
1146
}
1145
1147
1146
1148
//Perform the snapshot using the same logic as the "mysqldump" utility.
1147
- func (e * Extractor ) mysqlDump () error {
1149
+ func (e * Extractor ) mysqlDump () ( retErr error ) {
1148
1150
defer e .singletonDB .Close ()
1149
1151
var tx sql.QueryAble
1150
1152
var err error
@@ -1263,9 +1265,7 @@ func (e *Extractor) mysqlDump() error {
1263
1265
}
1264
1266
step++*/
1265
1267
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 ()
1269
1269
}()
1270
1270
} else {
1271
1271
e .logger .Warn ("Failed to get a consistenct TX with GTID. Will retry." , "gtidMatchRound" , gtidMatchRound )
@@ -1315,7 +1315,7 @@ func (e *Extractor) mysqlDump() error {
1315
1315
if db .TableSchemaRename != "" {
1316
1316
dbSQL , err = base .RenameCreateSchemaAddINE (db .CreateSchemaString , db .TableSchemaRename )
1317
1317
if err != nil {
1318
- e . onError ( common . TaskStateDead , err )
1318
+ return errors . Wrap ( err , "RenameCreateSchemaAddINE" )
1319
1319
}
1320
1320
} else {
1321
1321
dbSQL = db .CreateSchemaString
@@ -1328,7 +1328,7 @@ func (e *Extractor) mysqlDump() error {
1328
1328
atomic .AddInt64 (& e .mysqlContext .RowsEstimate , 1 )
1329
1329
atomic .AddInt64 (& e .TotalRowsCopied , 1 )
1330
1330
if err := e .encodeAndSendDumpEntry (entry ); err != nil {
1331
- e . onError ( common . TaskStateDead , err )
1331
+ return errors . Wrap ( err , "encodeAndSendDumpEntry. create schema entry" )
1332
1332
}
1333
1333
1334
1334
for _ , tbCtx := range db .TableMap {
@@ -1338,7 +1338,7 @@ func (e *Extractor) mysqlDump() error {
1338
1338
}
1339
1339
total , err := e .CountTableRows (tb )
1340
1340
if err != nil {
1341
- return err
1341
+ return errors . Wrapf ( err , "CountTableRows %v.%v" , tb . TableSchema , tb . TableName )
1342
1342
}
1343
1343
tb .Counter = total
1344
1344
var tbSQL []string
@@ -1374,7 +1374,7 @@ func (e *Extractor) mysqlDump() error {
1374
1374
atomic .AddInt64 (& e .mysqlContext .RowsEstimate , 1 )
1375
1375
atomic .AddInt64 (& e .TotalRowsCopied , 1 )
1376
1376
if err := e .encodeAndSendDumpEntry (entry ); err != nil {
1377
- e . onError ( common . TaskStateDead , err )
1377
+ return errors . Wrap ( err , "encodeAndSendDumpEntry. create table" )
1378
1378
}
1379
1379
}
1380
1380
e .tableCount += len (db .TableMap )
@@ -1401,7 +1401,7 @@ func (e *Extractor) mysqlDump() error {
1401
1401
d := NewDumper (e .ctx , tx , t , e .mysqlContext .ChunkSize , e .logger .ResetNamed ("dumper" ), e .memory1 ,
1402
1402
e .mysqlContext .DumpEntryLimit )
1403
1403
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 )
1405
1405
}
1406
1406
e .dumpers = append (e .dumpers , d )
1407
1407
// Scan the rows in the table ...
@@ -1410,22 +1410,20 @@ func (e *Extractor) mysqlDump() error {
1410
1410
if ! d .sentTableDef {
1411
1411
tableBs , err := common .EncodeTable (d .Table )
1412
1412
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" )
1416
1414
} else {
1417
1415
entry .Table = tableBs
1418
1416
d .sentTableDef = true
1419
1417
}
1420
1418
}
1421
1419
if err = e .encodeAndSendDumpEntry (entry ); err != nil {
1422
- e . onError ( common . TaskStateDead , err )
1420
+ return errors . Wrap ( err , "encodeAndSendDumpEntry. dump" )
1423
1421
}
1424
1422
atomic .AddInt64 (& e .TotalRowsCopied , int64 (len (entry .ValuesX )))
1425
1423
atomic .AddInt64 (d .Memory , - memSize )
1426
1424
}
1427
1425
if d .Err != nil {
1428
- e . onError ( common . TaskStateDead , d .Err )
1426
+ return errors . Wrap ( err , " d.Err" )
1429
1427
}
1430
1428
}
1431
1429
}
0 commit comments