mirror of
https://github.com/dolthub/dolt.git
synced 2026-03-11 01:55:08 -05:00
go/cmd/dolt/commands/sqlserver: server.go: Lock the multienv repo before we init the sql server.
This commit is contained in:
@@ -258,49 +258,20 @@ func Serve(
|
||||
}
|
||||
controller.Register(InitSuperUser)
|
||||
|
||||
var listener *metricsListener
|
||||
var metListener *metricsListener
|
||||
InitMetricsListener := &svcs.Service{
|
||||
Init: func(context.Context) (err error) {
|
||||
labels := serverConfig.MetricsLabels()
|
||||
listener, err = newMetricsListener(labels, version, clusterController)
|
||||
metListener, err = newMetricsListener(labels, version, clusterController)
|
||||
return err
|
||||
},
|
||||
Stop: func() error {
|
||||
listener.Close()
|
||||
metListener.Close()
|
||||
return nil
|
||||
},
|
||||
}
|
||||
controller.Register(InitMetricsListener)
|
||||
|
||||
var mySQLServer *server.Server
|
||||
InitSQLServer := &svcs.Service{
|
||||
Init: func(context.Context) (err error) {
|
||||
v, ok := serverConfig.(validatingServerConfig)
|
||||
if ok && v.goldenMysqlConnectionString() != "" {
|
||||
mySQLServer, err = server.NewValidatingServer(
|
||||
serverConf,
|
||||
sqlEngine.GetUnderlyingEngine(),
|
||||
newSessionBuilder(sqlEngine, serverConfig),
|
||||
listener,
|
||||
v.goldenMysqlConnectionString(),
|
||||
)
|
||||
} else {
|
||||
mySQLServer, err = server.NewServer(
|
||||
serverConf,
|
||||
sqlEngine.GetUnderlyingEngine(),
|
||||
newSessionBuilder(sqlEngine, serverConfig),
|
||||
listener,
|
||||
)
|
||||
}
|
||||
if errors.Is(err, server.UnixSocketInUseError) {
|
||||
lgr.Warn("unix socket set up failed: file already in use: ", serverConf.Socket)
|
||||
err = nil
|
||||
}
|
||||
return err
|
||||
},
|
||||
}
|
||||
controller.Register(InitSQLServer)
|
||||
|
||||
LockMultiRepoEnv := &svcs.Service{
|
||||
Init: func(context.Context) error {
|
||||
if ok, f := mrEnv.IsLocked(); ok {
|
||||
@@ -320,6 +291,35 @@ func Serve(
|
||||
}
|
||||
controller.Register(LockMultiRepoEnv)
|
||||
|
||||
var mySQLServer *server.Server
|
||||
InitSQLServer := &svcs.Service{
|
||||
Init: func(context.Context) (err error) {
|
||||
v, ok := serverConfig.(validatingServerConfig)
|
||||
if ok && v.goldenMysqlConnectionString() != "" {
|
||||
mySQLServer, err = server.NewValidatingServer(
|
||||
serverConf,
|
||||
sqlEngine.GetUnderlyingEngine(),
|
||||
newSessionBuilder(sqlEngine, serverConfig),
|
||||
metListener,
|
||||
v.goldenMysqlConnectionString(),
|
||||
)
|
||||
} else {
|
||||
mySQLServer, err = server.NewServer(
|
||||
serverConf,
|
||||
sqlEngine.GetUnderlyingEngine(),
|
||||
newSessionBuilder(sqlEngine, serverConfig),
|
||||
metListener,
|
||||
)
|
||||
}
|
||||
if errors.Is(err, server.UnixSocketInUseError) {
|
||||
lgr.Warn("unix socket set up failed: file already in use: ", serverConf.Socket)
|
||||
err = nil
|
||||
}
|
||||
return err
|
||||
},
|
||||
}
|
||||
controller.Register(InitSQLServer)
|
||||
|
||||
InitLockSuperUser := &svcs.Service{
|
||||
Init: func(context.Context) error {
|
||||
mysqlDb := sqlEngine.GetUnderlyingEngine().Analyzer.Catalog.MySQLDb
|
||||
|
||||
Reference in New Issue
Block a user