From bfb0fb00f5bbb8396649a43a135c81020731a38f Mon Sep 17 00:00:00 2001 From: Tsachi Herman Date: Wed, 26 Feb 2020 17:26:42 -0500 Subject: [PATCH 1/3] Fix few error handling edge cases --- util/db/dbutil.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/util/db/dbutil.go b/util/db/dbutil.go index b01f51d24f..157bad3112 100644 --- a/util/db/dbutil.go +++ b/util/db/dbutil.go @@ -89,11 +89,12 @@ func MakeErasableAccessor(dbfilename string) (Accessor, error) { } // runInitStatements executes initialization statements. -func (db Accessor) runInitStatements() error { +func (db *Accessor) runInitStatements() error { for _, stmt := range initStatements { _, err := db.Handle.Exec(stmt) if err != nil { db.Handle.Close() + db.Handle = nil return err } } @@ -114,7 +115,7 @@ func (db *Accessor) logger() logging.Logger { } // Close closes the connection. -func (db Accessor) Close() { +func (db *Accessor) Close() { db.Handle.Close() db.Handle = nil } From a94cf2461baf87d4bd77d818538e5cc144ca8194 Mon Sep 17 00:00:00 2001 From: Tsachi Herman Date: Wed, 26 Feb 2020 20:11:04 -0500 Subject: [PATCH 2/3] Fix bug in setupAgreementWithValidator --- agreement/service_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agreement/service_test.go b/agreement/service_test.go index 24fd173b19..ea604c0242 100644 --- a/agreement/service_test.go +++ b/agreement/service_test.go @@ -797,7 +797,7 @@ func setupAgreementWithValidator(t *testing.T, numNodes int, traceLevel traceLev cleanupFn := func() { for _, accessor := range dbAccessors { - defer accessor.Close() + accessor.Close() } if r := recover(); r != nil { From 55ee3df4c2cc93197ee2aad1f152dcd263db5ebf Mon Sep 17 00:00:00 2001 From: Tsachi Herman Date: Wed, 26 Feb 2020 21:40:03 -0500 Subject: [PATCH 3/3] Better fix. --- agreement/service_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/agreement/service_test.go b/agreement/service_test.go index ea604c0242..ba2e548923 100644 --- a/agreement/service_test.go +++ b/agreement/service_test.go @@ -796,8 +796,8 @@ func setupAgreementWithValidator(t *testing.T, numNodes int, traceLevel traceLev } cleanupFn := func() { - for _, accessor := range dbAccessors { - accessor.Close() + for idx := 0; idx < len(dbAccessors); idx++ { + dbAccessors[idx].Close() } if r := recover(); r != nil {