diff --git a/go/cmd/dolt/commands/engine/sqlengine.go b/go/cmd/dolt/commands/engine/sqlengine.go index 7f20167917..b6983f84fe 100644 --- a/go/cmd/dolt/commands/engine/sqlengine.go +++ b/go/cmd/dolt/commands/engine/sqlengine.go @@ -83,10 +83,6 @@ func NewSqlEngine( mrEnv *env.MultiRepoEnv, config *SqlEngineConfig, ) (*SqlEngine, error) { - if ok, _ := mrEnv.IsLocked(); ok { - config.IsServerLocked = true - } - dbs, locations, err := CollectDBs(ctx, mrEnv, config.Bulk) if err != nil { return nil, err diff --git a/go/cmd/dolt/commands/sqlserver/server.go b/go/cmd/dolt/commands/sqlserver/server.go index 3d71668822..a505a058f4 100644 --- a/go/cmd/dolt/commands/sqlserver/server.go +++ b/go/cmd/dolt/commands/sqlserver/server.go @@ -137,6 +137,23 @@ func Serve( } controller.Register(InitDataDir) + var mrEnv *env.MultiRepoEnv + InitMultiEnv := &svcs.AnonService{ + InitF: func(ctx context.Context) (err error) { + mrEnv, err = env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), fs, dEnv.Version, dEnv.IgnoreLockFile, dEnv) + return err + }, + } + controller.Register(InitMultiEnv) + + AssertNoDatabasesInAccessModeReadOnly := &svcs.AnonService{ + InitF: func(ctx context.Context) (err error) { + // TODO: Iterate mrEnv, assert env.DoltDB.AccessMode() != chunks.ExclusiveAccessMode_ReadOnly + return nil + }, + } + controller.Register(AssertNoDatabasesInAccessModeReadOnly) + var serverLock *env.DBLock InitGlobalServerLock := &svcs.AnonService{ InitF: func(context.Context) (err error) { @@ -150,15 +167,6 @@ func Serve( } controller.Register(InitGlobalServerLock) - var mrEnv *env.MultiRepoEnv - InitMultiEnv := &svcs.AnonService{ - InitF: func(ctx context.Context) (err error) { - mrEnv, err = env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), fs, dEnv.Version, dEnv.IgnoreLockFile, dEnv) - return err - }, - } - controller.Register(InitMultiEnv) - var clusterController *cluster.Controller InitClusterController := &svcs.AnonService{ InitF: func(context.Context) (err error) { @@ -271,25 +279,6 @@ func Serve( } controller.Register(InitMetricsListener) - LockMultiRepoEnv := &svcs.AnonService{ - InitF: func(context.Context) error { - if ok, f := mrEnv.IsLocked(); ok { - return env.ErrActiveServerLock.New(f) - } - if err := mrEnv.Lock(serverLock); err != nil { - return err - } - return nil - }, - StopF: func() error { - if err := mrEnv.Unlock(); err != nil { - cli.PrintErr(err) - } - return nil - }, - } - controller.Register(LockMultiRepoEnv) - InitLockSuperUser := &svcs.AnonService{ InitF: func(context.Context) error { mysqlDb := sqlEngine.GetUnderlyingEngine().Analyzer.Catalog.MySQLDb diff --git a/go/libraries/doltcore/env/multi_repo_env.go b/go/libraries/doltcore/env/multi_repo_env.go index 73fe29b2d0..e61f9a7a2d 100644 --- a/go/libraries/doltcore/env/multi_repo_env.go +++ b/go/libraries/doltcore/env/multi_repo_env.go @@ -211,57 +211,6 @@ func (mrEnv *MultiRepoEnv) GetFirstDatabase() string { return currentDb } -// IsLocked returns true if any env is locked -func (mrEnv *MultiRepoEnv) IsLocked() (bool, string) { - if mrEnv.ignoreLockFile { - return false, "" - } - - for _, e := range mrEnv.envs { - if e.env.IsLocked() { - return true, e.env.LockFile() - } - } - return false, "" -} - -// Lock locks all child envs. The DBLock contains the details to write to the lock files. If an error is returned, all -// child envs will be returned with their initial lock state. -func (mrEnv *MultiRepoEnv) Lock(lck *DBLock) (err error) { - if mrEnv.ignoreLockFile { - return nil - } - - if ok, f := mrEnv.IsLocked(); ok { - return ErrActiveServerLock.New(f) - } - - for _, e := range mrEnv.envs { - err = e.env.Lock(lck) - if err != nil { - mrEnv.Unlock() - return err - } - } - return nil -} - -// Unlock unlocks all child envs. -func (mrEnv *MultiRepoEnv) Unlock() error { - if mrEnv.ignoreLockFile { - return nil - } - - var err, retErr error - for _, e := range mrEnv.envs { - err = e.env.Unlock() - if err != nil && retErr == nil { - retErr = err - } - } - return retErr -} - func getRepoRootDir(path, pathSeparator string) string { if pathSeparator != "/" { path = strings.ReplaceAll(path, pathSeparator, "/")