diff --git a/store.go b/store.go index 8a2ce6d..d856f23 100644 --- a/store.go +++ b/store.go @@ -156,7 +156,6 @@ func newStoreFromConfig(operation string, config StoreConfig) (*Store, error) { } storeInstance.startBackgroundPurge() - storeInstance.cleanUpOrphanedWorkspaces(defaultWorkspaceStateDirectory) return storeInstance, nil } diff --git a/workspace.go b/workspace.go index f1f0e8f..bcaac4a 100644 --- a/workspace.go +++ b/workspace.go @@ -159,17 +159,6 @@ func discoverOrphanWorkspacePaths(stateDirectory string) []string { return orphanPaths } -func (storeInstance *Store) cleanUpOrphanedWorkspaces(stateDirectory string) { - if storeInstance == nil { - return - } - - for _, orphanWorkspace := range storeInstance.RecoverOrphans(stateDirectory) { - _ = orphanWorkspace.Aggregate() - orphanWorkspace.Discard() - } -} - func workspaceNameFromPath(stateDirectory, databasePath string) string { relativePath := core.TrimPrefix(databasePath, joinPath(stateDirectory, "")) return core.TrimSuffix(relativePath, ".duckdb") diff --git a/workspace_test.go b/workspace_test.go index 2ae88f1..3ea498f 100644 --- a/workspace_test.go +++ b/workspace_test.go @@ -184,7 +184,7 @@ func TestWorkspace_RecoverOrphans_Good(t *testing.T) { assert.False(t, testFilesystem().Exists(workspaceFilePath(stateDirectory, "orphan-session"))) } -func TestWorkspace_New_Good_CleansUpOrphanedWorkspaces(t *testing.T) { +func TestWorkspace_New_Good_LeavesOrphanedWorkspacesForRecovery(t *testing.T) { stateDirectory := useWorkspaceStateDirectory(t) requireCoreOK(t, testFilesystem().EnsureDir(stateDirectory)) @@ -198,6 +198,12 @@ func TestWorkspace_New_Good_CleansUpOrphanedWorkspaces(t *testing.T) { require.NoError(t, err) defer storeInstance.Close() + assert.True(t, testFilesystem().Exists(orphanDatabasePath)) + + orphans := storeInstance.RecoverOrphans(stateDirectory) + require.Len(t, orphans, 1) + assert.Equal(t, "orphan-session", orphans[0].Name()) + orphans[0].Discard() assert.False(t, testFilesystem().Exists(orphanDatabasePath)) assert.False(t, testFilesystem().Exists(orphanDatabasePath+"-wal")) assert.False(t, testFilesystem().Exists(orphanDatabasePath+"-shm"))