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.

This commit is contained in:
Aaron Son
2022-09-13 15:19:11 -07:00
parent bdd7c9cd95
commit 1e063322fb
2 changed files with 22 additions and 5 deletions

View File

@@ -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
}
}

View File

@@ -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
}