From 8b34d58bcae6e827c2924cd5d34a4a6325d63b6c Mon Sep 17 00:00:00 2001 From: Manan007224 Date: Wed, 12 May 2021 14:18:24 -0700 Subject: [PATCH 1/3] report error to error_callback if copydb initialization fails cc cc cc cc --- copydb/cmd/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/copydb/cmd/main.go b/copydb/cmd/main.go index ecb2eb3d..9ba1eded 100644 --- a/copydb/cmd/main.go +++ b/copydb/cmd/main.go @@ -106,6 +106,7 @@ func main() { err = ferry.Initialize() if err != nil { + ferry.Ferry.ErrorHandler.ReportError("ferry.initialize", err) errorAndExit(fmt.Sprintf("failed to initialize ferry: %v", err)) } From 3199b9a9482dcb04296346ce11a8ba3756821f3a Mon Sep 17 00:00:00 2001 From: Manan007224 Date: Wed, 12 May 2021 15:12:15 -0700 Subject: [PATCH 2/3] also report errors when ferry.start and ferry.createDatabaseAndTables fails in copydb cc cc --- copydb/cmd/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/copydb/cmd/main.go b/copydb/cmd/main.go index 9ba1eded..b7eabdc5 100644 --- a/copydb/cmd/main.go +++ b/copydb/cmd/main.go @@ -112,6 +112,7 @@ func main() { err = ferry.Start() if err != nil { + ferry.Ferry.ErrorHandler.ReportError("ferry.start", err) errorAndExit(fmt.Sprintf("failed to start ferry: %v", err)) } @@ -123,6 +124,7 @@ func main() { if config.StateToResumeFrom == nil { err = ferry.CreateDatabasesAndTables() if err != nil { + ferry.Ferry.ErrorHandler.ReportError("ferry.createDatabasesAndTables", err) errorAndExit(fmt.Sprintf("failed to create databases and tables: %v", err)) } } From a596933ea0c93ff1574dc7b59ba149df4fb1cce2 Mon Sep 17 00:00:00 2001 From: Manan007224 Date: Thu, 13 May 2021 11:31:20 -0700 Subject: [PATCH 3/3] add a todo comment when reporting errors from copydb to callback --- copydb/cmd/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/copydb/cmd/main.go b/copydb/cmd/main.go index b7eabdc5..317b395d 100644 --- a/copydb/cmd/main.go +++ b/copydb/cmd/main.go @@ -106,6 +106,8 @@ func main() { err = ferry.Initialize() if err != nil { + // This is not a good idea to reach deep within ferry from copydb. The entire ErrorHandler needs + // refactoring which is defined in this issue - https://github.com/Shopify/ghostferry/issues/284 ferry.Ferry.ErrorHandler.ReportError("ferry.initialize", err) errorAndExit(fmt.Sprintf("failed to initialize ferry: %v", err)) }