Skip to content

fix(storage): make TTL deletion error propagation opt-in - #6111

Draft
cocolord wants to merge 1 commit into
volcengine:mainfrom
cocolord:feat/ttl-delete-error-compat
Draft

cocolord wants to merge 1 commit into
volcengine:mainfrom
cocolord:feat/ttl-delete-error-compat

Conversation

@cocolord

Copy link
Copy Markdown
Collaborator

Description

Follow-up to merged PR #5268, which made Volcengine AK/SK scalar-query and delete errors propagate for all callers. Restore the original default behavior and add internal VikingFS.rm(..., raise_on_error=True) for TTL callers that need to observe those request failures. The option defaults to false and is passed explicitly through the existing URI deletion, adapter and collection calls; no public HTTP, SDK, CLI or MCP option is added.

The opt-in covers both ID enumeration and delete requests, reusing the existing HTTP/JSON error handling. Other backends retain their contracts. An accepted deletion request is sufficient: no synchronous index count, residue checks, extra locks or stored fields are added. TTL failure registration and retry scheduling remain outside this change.

Validation

  • One parameterized regression in the existing native filesystem test file exercises the full VikingFS.rm → vector backend → adapter → Volcengine request path. Its 16 combinations cover default/opt-in behavior, scalar-query/delete failures (HTTP 429, HTTP 500, invalid JSON), accepted requests, repeated deletion of absent files, and retaining files on opt-in failure. Ordinary scalar queries and delete-all retain their defaults after opt-in calls.
  • The earlier adapter-only regression is replaced by this end-to-end regression; no new test file is added.
  • On current main (ec56b9443), uv run --no-sync pytest -q -o addopts= tests/storage/test_volcengine_clients.py tests/misc/test_vikingfs_uri_guard.py tests/storage/test_transfer_merge_binding.py -k 'volcengine or http or uri or transfer_uses_queries_without_count_or_sort or rm_cloud_errors_are_opt_in': 106 passed, including all 16 new combinations and 90 existing related cases.
  • Changed Python files pass Ruff lint/format and git diff --check. Targeted mypy with --follow-imports=silent reports the same 234 existing diagnostics as the merge-base snapshot, with no added or removed diagnostics; it is not green. The added regression has no type errors. Validation used the existing uv environment.
  • No live remote-backend deletion was performed.

Human Involvement

  • A human participated in the implementation or review loop
  • This PR was generated entirely by AI agents without human participation in the loop

@cocolord
cocolord marked this pull request as draft October 15, 2026 08:40
@ZaynJarvis ZaynJarvis added the kernel Core server, runtime, storage, retrieval, SDK, and CLI. label Oct 16, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kernel Core server, runtime, storage, retrieval, SDK, and CLI.

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants