Revert "Use defer to rollback."
This reverts commit e07845799ec68fa0acaac3e868d23941f2007260.
diff --git a/data.go b/data.go
index 2ba19c4..8eefe11 100644
--- a/data.go
+++ b/data.go
@@ -54,7 +54,6 @@
log.Errorf("initDB(): Unable to get DB tx err: {%v}", err)
return err
}
- defer rollbackTxn(tx)
_, err = tx.Exec(`
CREATE TABLE IF NOT EXISTS APID (
instance_id text,
@@ -64,11 +63,13 @@
);
`)
if err != nil {
+ rollbackTxn(tx)
log.Errorf("initDB(): Unable to tx exec err: {%v}", err)
return err
}
err = tx.Commit()
if err != nil {
+ rollbackTxn(tx)
log.Errorf("initDB(): tx commit err: {%v}", err)
return err
}
@@ -442,15 +443,17 @@
log.Errorf("getApidInstanceInfo: Unable to get DB tx Err: {%v}", err)
return err
}
- defer rollbackTxn(tx)
+
_, err = tx.Exec("UPDATE EDGEX_APID_CLUSTER SET last_sequence=?;", lastSequence)
if err != nil {
log.Errorf("UPDATE EDGEX_APID_CLUSTER Failed: %v", err)
+ rollbackTxn(tx)
return err
}
err = tx.Commit()
if err != nil {
log.Errorf("UPDATE EDGEX_APID_CLUSTER Tx Commit err : %v", err)
+ rollbackTxn(tx)
return err
}
log.Debugf("UPDATE EDGEX_APID_CLUSTER Success: %s", lastSequence)
@@ -474,12 +477,13 @@
log.Errorf("getApidInstanceInfo: Unable to get DB tx Err: {%v}", err)
return
}
- defer rollbackTxn(tx)
+
err = tx.QueryRow("SELECT instance_id, apid_cluster_id, last_snapshot_info FROM APID LIMIT 1").
Scan(&info.InstanceID, &savedClusterId, &info.LastSnapshot)
if err != nil {
if err != sql.ErrNoRows {
log.Errorf("Unable to retrieve apidInstanceInfo: %v", err)
+ tx.Rollback()
return
} else {
// first start - no row, generate a UUID and store it
@@ -501,8 +505,13 @@
info.InstanceID, info.ClusterID, "")
info.LastSnapshot = ""
}
- if err == nil {
- tx.Commit()
+ if err != nil {
+ err = tx.Commit()
+ if err != nil {
+ rollbackTxn(tx)
+ }
+ } else {
+ rollbackTxn(tx)
}
return
}
@@ -519,7 +528,6 @@
log.Errorf("updateApidInstanceInfo: Unable to get DB tx Err: {%v}", err)
return err
}
- defer rollbackTxn(tx)
rows, err := tx.Exec(`
REPLACE
INTO APID (instance_id, apid_cluster_id, last_snapshot_info)
@@ -527,13 +535,20 @@
apidInfo.InstanceID, apidInfo.ClusterID, apidInfo.LastSnapshot)
if err != nil {
log.Errorf("updateApidInstanceInfo: Tx Exec Err: {%v}", err)
+ rollbackTxn(tx)
return err
}
n, err := rows.RowsAffected()
if err == nil && n == 0 {
err = errors.New("no rows affected")
+ rollbackTxn(tx)
} else if err == nil {
- tx.Commit()
+ err = tx.Commit()
+ if err != nil {
+ rollbackTxn(tx)
+ }
+ } else {
+ rollbackTxn(tx)
}
return err