Partial date-property TTL updates reset an omitted offset to zero
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 75/100
調査の方向性
問題は Reconfigure.ObjectTTL.delete_by_date_property() メソッドにあります。weaviate/classes/config.py ファイルを確認し、このメソッドを見つけて、設定をどのようにマージするかを調べてください。提供された再現スクリプトが問題を示しています。修正は、省略された ttl_offset パラメータが既存の値をゼロにリセットしないようにすることです。設定テストモジュールの既存のテストを確認して期待される動作を理解し、保持ケースの新しいテストを追加してください。
索引モデルが issue の本文から書いたものです。
説明
Description
Reconfigure.ObjectTTL.delete_by_date_property() changes an omitted ttl_offset to 0. A call that only supplies filter_expired_objects consequently includes an explicit defaultTtl: 0 in the generated TTL update block. Other TTL update helpers leave an omitted offset as None.
Reproduction
This inspects the TTL update block locally; it does not test the complete collection update request or server behavior:
from weaviate.classes.config import Reconfigure
update = Reconfigure.ObjectTTL.delete_by_date_property(filter_expired_objects=True)
print(update.defaultTtl)
print(update.merge_with_existing({}))
# Actual: 0 and {'enabled': True, 'filterExpiredObjects': True, 'defaultTtl': 0}
# Expected: None and {'enabled': True, 'filterExpiredObjects': True}
existing = {
'enabled': True,
'filterExpiredObjects': False,
'deleteOn': 'expiresAt',
'defaultTtl': 3600,
}
print(update.merge_with_existing(existing))
The direct TTL-block merge overwrites defaultTtl with zero even though no offset was supplied. An explicit ttl_offset=0 should still reset it. Negative existing offsets have the same issue.
Scope clarification from review
Review on #2171 identified a separate casing mismatch: the collection update path uses objectTTLConfig, while creation and reading use objectTtlConfig. A local collection merge with the latter spelling produces two blocks. The original reproduction above operates on an individual TTL block and cannot establish server-side preservation. The delete_by_* factories also set enabled=True, even for a filter-only call. Those existing behaviors need a maintainer decision before the offset fix lands.
Environment and validation
Originally reproduced on main commit 142d798, Python 3.13.13, macOS arm64. The offset coercion and related collection-key/activation paths remain present in upstream eb5546a8 inspected on 2026-09-29.
PR #2171 leaves None unchanged in the update factory; creation still defaults to zero. Revised regression tests verify offset omission directly, positive/negative TTL-block merges, explicit integer/timedelta offsets including zero, and the creation default. Restoring the coercion gives two failures; with the fix both configuration test modules pass (233 tests). No live-server integration test was run.
AI assistance was used to investigate, implement, and test this patch and review follow-up.
- 主要言語
- Python
- スター
- 228
- フォーク
- 158
- 平均マージ
- 2日 9時間
- マージ済み PR(30日)
- 12
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
weaviate/weaviate-python-client のほかの issue
-
Batch: re-added rate-limited objects stay in results.objs.all_responses as errors対応中かも @inchang-ing が 14 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
weaviate/weaviate-python-client#2179 ·
メンテナーはふだん 1 日以内に返信
-
insert_many silently discards vectors if they're NumPy arrays対応中かも @tibor-reiss が 820 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
weaviate/weaviate-python-client#1002 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
Client-side batching: wholesale chunk failures are reported under chunk-local indices, so errors collide and describe the wrong objects対応中かも @feiiiiii5 が 28 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 15/100
weaviate/weaviate-python-client#2165 ·
メンテナーはふだん 1 日以内に返信
-
[HTTPXodus] Consider migrating from httpx to httpx2 (the actively maintained fork)対応中かも @ProgrammerPlus1998 が 42 日前に担当しました。 オープン
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
weaviate/weaviate-python-client#2154 ·
メンテナーはふだん 1 日以内に返信
-
fetch_objects(limit=0) returns a default page of objects instead of none対応中かも @databyjp が 1 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
weaviate/weaviate-python-client#2150 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
weaviate/weaviate-python-client の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
cellrishi-code/claude-skills-atlas#165 ·
メンテナーはふだん 1 日以内に返信
-
bug confirmed issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
open-webui/open-webui#32635 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Filters: ?field:ne=null matches NULL rows instead of non-NULL ones対応中かも @rshdhere が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
Netflix/metaflow-service#504 ·
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
gke-labs/kube-agents#3394 ·
メンテナーはふだん 1 日以内に返信
-
A2A audit timestamps end in +00:00Z (invalid ISO 8601)対応中かも @O1sumitkumar が今日担当しました。 オープンbug good first issue help wanted python
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信