Skip to content

fix: close local Qdrant persistence before collection deletion - #72

Merged
9thLevelSoftware merged 1 commit into
working_branchfrom
fix/windows-storage-release
Oct 6, 2026
Merged

9thLevelSoftware merged 1 commit into
working_branchfrom
fix/windows-storage-release

Conversation

@9thLevelSoftware

Copy link
Copy Markdown
Owner

Summary

  • Share the existing local Qdrant close-before-delete protection across dense staging, retired-generation GC, portable import cleanup/promotion and legacy dimension replacement.
  • Release SQLite persistence before collection ownership is dropped; preserve remote behavior, lazy optional imports and GC fencing/leases.
  • Add real native Windows regressions for immediate storage release with automatic cyclic GC disabled. No rename retries, sleeps or suppression.

Verification

  • Real Qdrant 1.19.1 failing-before/passing-after smoke: GC previously reported success while SQLite remained sharing-locked (WinError 32) and storage rename failed (WinError 5) after normal client.close. After correction the retired file is deleted and storage renames immediately.
  • Affected suites, including real export/import path: 154 passed, 16 subtests passed.
  • Ruff lint and format: passed (488 files).
  • Mypy v7, --platform linux: passed (48 source files).
  • Release inventory: 77 tools, 10 resources, 586 atomic requirements.

This reproduces and fixes a concrete resource-lifecycle defect; attribution to the original sporadic PR71 full-suite rename failure remains unproven. No schema or public tool-surface change.

Copilot AI balanced review requested due to automatic review settings October 6, 2026 00:18

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@kilo-code-bot

kilo-code-bot Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Verdict

Approve — focused close-before-delete centralization with native Windows regression coverage; net code is smaller (Protocol/cast/delete helper removed, one helper added).

Correctness / Safety Findings

No correctness or safety findings.

Ponytail Review

Ponytail: Lean already. Ship.

Ponytail net: 0 lines.

The PR is a net shrink at the source level: _DenseCollectionClient Protocol, the cast(...) site, and the local _delete_collection static method are deleted, and a single helper replaces them. The three native Windows tests do repeat the gc_was_enabled = gc.isenabled(); gc.disable() / if gc_was_enabled: gc.enable() pattern, and that is justified by the three independent ownership call sites (portable, GC, dimension replacement) they exercise. No further dedup is warranted without a real second use.

Suggested Minimal Patch

No patch needed.

Final Merge Guidance

Can merge as-is.


Reviewed by minimax-m3 · Input: 57.2K · Output: 6.4K · Cached: 393.7K

Review guidance: REVIEW.md from base branch working_branch

@9thLevelSoftware
9thLevelSoftware merged commit 03423da into working_branch Oct 6, 2026
14 checks passed
@9thLevelSoftware
9thLevelSoftware deleted the fix/windows-storage-release branch October 6, 2026 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants