From 1e063322fb00c31d1877f55cd954cd17006d341d Mon Sep 17 00:00:00 2001 From: Aaron Son Date: Tue, 13 Sep 2022 15:19:11 -0700 Subject: [PATCH] go/cmd/dolt/commands/sqlserver/server.go: Make it a startError if you supply a remotesapi-port and there is an error binding/listening to it. --- go/cmd/dolt/commands/sqlserver/server.go | 11 ++++++----- integration-tests/bats/sql-server-remotesrv.bats | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/go/cmd/dolt/commands/sqlserver/server.go b/go/cmd/dolt/commands/sqlserver/server.go index c066d240ce..2e0cfffc10 100644 --- a/go/cmd/dolt/commands/sqlserver/server.go +++ b/go/cmd/dolt/commands/sqlserver/server.go @@ -209,17 +209,18 @@ func Serve( remoteSrv = sqle.NewRemoteSrvServer(logrus.NewEntry(lgr), remoteSrvSqlCtx, *serverConfig.RemotesapiPort()) listeners, err := remoteSrv.Listeners() if err != nil { - lgr.Warnf("error starting remotesapi server listeners on port %d; remotesapi will not be available: %v\n", *serverConfig.RemotesapiPort(), err) - - // nil out remoteSrv so shutdown hook does not try to stop it. - remoteSrv = nil + lgr.Errorf("error starting remotesapi server listeners on port %d: %v", *serverConfig.RemotesapiPort(), err) + startError = err + return } else { go func() { remoteSrv.Serve(listeners) }() } } else { - lgr.Warnf("error creating SQL engine context for remotesapi server; remotesapi will not be available: %v\n", err) + lgr.Errorf("error creating SQL engine context for remotesapi server: %v", err) + startError = err + return } } diff --git a/integration-tests/bats/sql-server-remotesrv.bats b/integration-tests/bats/sql-server-remotesrv.bats index 1c3a743542..bbc6837c64 100644 --- a/integration-tests/bats/sql-server-remotesrv.bats +++ b/integration-tests/bats/sql-server-remotesrv.bats @@ -97,3 +97,19 @@ SQL run dolt push origin main:main [[ "$status" != 0 ]] || false } + +@test "sql-server-remotesrv: remotesapi listen error stops process" { + mkdir remote_one + mkdir remote_two + cd remote_one + dolt init + dolt sql-server --remotesapi-port 50051 & + srv_pid=$! + + dolt clone http://localhost:50051/test-org/remote_one remote_one_cloned + + cd ../remote_two + dolt init + run dolt sql-server --port 3307 --remotesapi-port 50051 + [[ "$status" != 0 ]] || false +}