From 9d73c3432b75506f43885a30def4c9115a78bbda Mon Sep 17 00:00:00 2001 From: Rafael Chacon Date: Sat, 1 Dec 2018 17:20:30 -0800 Subject: [PATCH 1/4] Make sure tabletserver is shutdown before cleaning up DB Signed-off-by: Rafael Chacon --- go/vt/vtexplain/vtexplain.go | 1 + 1 file changed, 1 insertion(+) diff --git a/go/vt/vtexplain/vtexplain.go b/go/vt/vtexplain/vtexplain.go index 8176890a3a2..b24b500d424 100644 --- a/go/vt/vtexplain/vtexplain.go +++ b/go/vt/vtexplain/vtexplain.go @@ -174,6 +174,7 @@ func Stop() { // Cleanup all created fake dbs. if explainTopo != nil { for _, conn := range explainTopo.TabletConns { + conn.tsv.StopService() conn.db.Close() } } From 18e1aa1f48850c904ae363af9a1450e96e62746f Mon Sep 17 00:00:00 2001 From: Rafael Chacon Date: Sat, 1 Dec 2018 18:39:07 -0800 Subject: [PATCH 2/4] Stop server and also close te/messager/watcher Signed-off-by: Rafael Chacon --- go/vt/vtexplain/vtexplain.go | 2 ++ go/vt/vttablet/tabletserver/tabletserver.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/go/vt/vtexplain/vtexplain.go b/go/vt/vtexplain/vtexplain.go index b24b500d424..9cc92cb24fa 100644 --- a/go/vt/vtexplain/vtexplain.go +++ b/go/vt/vtexplain/vtexplain.go @@ -175,6 +175,8 @@ func Stop() { if explainTopo != nil { for _, conn := range explainTopo.TabletConns { conn.tsv.StopService() + } + for _, conn := range explainTopo.TabletConns { conn.db.Close() } } diff --git a/go/vt/vttablet/tabletserver/tabletserver.go b/go/vt/vttablet/tabletserver/tabletserver.go index 07231489dce..d049cd56f76 100644 --- a/go/vt/vttablet/tabletserver/tabletserver.go +++ b/go/vt/vttablet/tabletserver/tabletserver.go @@ -577,6 +577,9 @@ func (tsv *TabletServer) StopService() { tsv.se.Close() tsv.hw.Close() tsv.hr.Close() + tsv.te.Close(true) + tsv.messager.Close() + tsv.watcher.Close() log.Infof("Shutdown complete.") tsv.transition(StateNotConnected) } From 40ef7fe60b4c21ae1c3e6d2645d5b99f6cb892f0 Mon Sep 17 00:00:00 2001 From: Rafael Chacon Date: Sat, 1 Dec 2018 19:00:46 -0800 Subject: [PATCH 3/4] This actually stops everything we need Signed-off-by: Rafael Chacon --- go/vt/vttablet/tabletserver/tabletserver.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/go/vt/vttablet/tabletserver/tabletserver.go b/go/vt/vttablet/tabletserver/tabletserver.go index d049cd56f76..07231489dce 100644 --- a/go/vt/vttablet/tabletserver/tabletserver.go +++ b/go/vt/vttablet/tabletserver/tabletserver.go @@ -577,9 +577,6 @@ func (tsv *TabletServer) StopService() { tsv.se.Close() tsv.hw.Close() tsv.hr.Close() - tsv.te.Close(true) - tsv.messager.Close() - tsv.watcher.Close() log.Infof("Shutdown complete.") tsv.transition(StateNotConnected) } From b654418c20e90c5a66dab144a2e193caa8e81a74 Mon Sep 17 00:00:00 2001 From: Rafael Chacon Date: Sat, 1 Dec 2018 19:13:45 -0800 Subject: [PATCH 4/4] Refactor place where clanup is done so it's clearer Signed-off-by: Rafael Chacon --- go/cmd/vtexplain/vtexplain.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/go/cmd/vtexplain/vtexplain.go b/go/cmd/vtexplain/vtexplain.go index 41be6d2cc98..b1831c54559 100644 --- a/go/cmd/vtexplain/vtexplain.go +++ b/go/cmd/vtexplain/vtexplain.go @@ -122,6 +122,7 @@ func getFileParam(flag, flagFile, name string) (string, error) { } func main() { + defer vtexplain.Stop() defer exit.RecoverAll() defer logutil.Flush() @@ -178,7 +179,5 @@ func parseAndRun() error { fmt.Print(vtexplain.ExplainsAsJSON(plans)) } - vtexplain.Stop() - return nil }