~bigbes/tarantool-etcd · parade

main · last commit 1 month ago · 2npkec0r

← Back to the parade

tarantool-etcd-9z2 Phase 5f — Watch option coverage Lined Up

status: open P2 task milestone:m1-conformance
bd update tarantool-etcd-9z2 --claim bd close tarantool-etcd-9z2
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-05-19T13:34:06Z
Updated2026-07-17T14:27:37Z
Description
Per-option density on Watch RPCs. Big stream-shaped surface, highest remaining value but also highest effort. Run after Phase 5e.

Likely tests:
- TestWatchWithFilterPut / TestWatchWithFilterDelete (server-side event filtering)
- TestWatchProgressNotifyExplicit (RequestProgress on demand vs the implicit 10-minute heartbeat already covered)
- TestWatchWithFragment (large-response fragmentation — may surface a tarantool-side gap)
- TestWatchWithPrevKV (per-watcher prev-kv flag, distinct from WithPrevKV on Put/Delete)
- TestWatchFromCompactedRevision (ErrCompacted returned on the stream, not as a typed gRPC status)
Acceptance criteria
Each listed test ported, runs on all four cells, passes (or documented as a known gap with cross-reference).
Notes
Source: docs/TODO.md "Open / Conformance matrix — Phase 5 option coverage".

Priority note (TestWatchWithPrevKV): Tarantool EE uses etcd as a centralized-config backend (config.storage / etcd config source in TT 3.x). On boot it reads config from etcd and opens a Watch with prev_kv set to diff old-vs-new config on live reload. So Watch prev_kv is exercised by a first-class ecosystem consumer, not just the conformance suite — it should be treated as the highest-value test in this group for drop-in TT EE compatibility.

Implementation already exists (feature built, conformance assertion missing):
- app/etcd/watch.lua:83 lookup_prev_kv() walks kv_history backwards (LT on mod_revision) for the prior non-tombstone value
- app/etcd/watch.lua:268 stores per-watcher flag; propagated via grpc.lua:358, json.lua:205, server.lua:185
- auth.lua:317 requires READ perm when prev_kv requested
Remaining work for prev_kv is the TestWatchWithPrevKV conformance case against real etcd 3.6, not the Lua implementation.

Depends on

Depended on by

  • tarantool-etcd-b08 — Phase 5g — Auth/Cluster/Maintenance/Lock/Election option coverage blocks

No comments.

  • Eugene Blikh created the issue · 2026-05-19T16:34:06Z
  • Eugene Blikh added dependency on tarantool-etcd-lac · 2026-05-19T16:35:02Z
  • Eugene Blikh tarantool-etcd-b08 now depends on this · 2026-05-19T16:35:03Z
  • Eugene Blikh updated notes to Source: docs/TODO.md "Open / Conformance matrix — Phase 5 option coverage". Priority note (TestWatchWithPrevKV): Tarantool EE uses etcd as a centralized-config backend (config.storage / etcd config source in TT 3.x). On boot it reads config from etcd and opens a Watch with prev_kv set to diff old-vs-new config on live reload. So Watch prev_kv is exercised by a first-class ecosystem consumer, not just the conformance suite — it should be treated as the highest-value test in this group for drop-in TT EE compatibility. Implementation already exists (feature built, conformance assertion missing): - app/etcd/watch.lua:83 lookup_prev_kv() walks kv_history backwards (LT on mod_revision) for the prior non-tombstone value - app/etcd/watch.lua:268 stores per-watcher flag; propagated via grpc.lua:358, json.lua:205, server.lua:185 - auth.lua:317 requires READ perm when prev_kv requested Remaining work for prev_kv is the TestWatchWithPrevKV conformance case against real etcd 3.6, not the Lua implementation. · 2026-05-20T09:34:10Z
  • Eugene Blikh added label milestone:m1-conformance · 2026-05-21T14:37:00Z
Stored rows — what this pane was built from, as read
issues 1 row
id tarantool-etcd-9z2
content_hash f38d22b50cefe3aad567bf495f853ea9e6c187bef2586c7ed1fc8f540cd6bb29
title Phase 5f — Watch option coverage
description Per-option density on Watch RPCs. Big stream-shaped surface, highest remaining value but also highest effort. Run after Phase 5e. Likely tests: - TestWatchWithFilterPut / TestWatchWithFilterDelete (server-side event filtering) - TestWatchProgressNotifyExplicit (RequestProgress on demand vs the implicit 10-minute heartbeat already covered) - TestWatchWithFragment (large-response fragmentation — may surface a tarantool-side gap) - TestWatchWithPrevKV (per-watcher prev-kv flag, distinct from WithPrevKV on Put/Delete) - TestWatchFromCompactedRevision (ErrCompacted returned on the stream, not as a typed gRPC status)
design
acceptance_criteria Each listed test ported, runs on all four cells, passes (or documented as a known gap with cross-reference).
notes Source: docs/TODO.md "Open / Conformance matrix — Phase 5 option coverage". Priority note (TestWatchWithPrevKV): Tarantool EE uses etcd as a centralized-config backend (config.storage / etcd config source in TT 3.x). On boot it reads config from etcd and opens a Watch with prev_kv set to diff old-vs-new config on live reload. So Watch prev_kv is exercised by a first-class ecosystem consumer, not just the conformance suite — it should be treated as the highest-value test in this group for drop-in TT EE compatibility. Implementation already exists (feature built, conformance assertion missing): - app/etcd/watch.lua:83 lookup_prev_kv() walks kv_history backwards (LT on mod_revision) for the prior non-tombstone value - app/etcd/watch.lua:268 stores per-watcher flag; propagated via grpc.lua:358, json.lua:205, server.lua:185 - auth.lua:317 requires READ perm when prev_kv requested Remaining work for prev_kv is the TestWatchWithPrevKV conformance case against real etcd 3.6, not the Lua implementation.
status open
priority 2
issue_type task
assignee NULL
estimated_minutes NULL
created_at 2026-05-19T13:34:06Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-07-17T14:27:37Z
closed_at NULL
closed_by_session
external_ref NULL
spec_id
compaction_level 0
compacted_at NULL
compacted_at_commit NULL
original_size NULL
sender
ephemeral 0
wisp_type
pinned 0
is_template 0
mol_type
work_type
source_system
metadata <binary>
source_repo
close_reason
event_kind
actor
target
payload
await_type
await_id
timeout_ns 0
waiters
hook_bead
role_bead
agent_state
last_activity NULL
role_type
rig
due_at NULL
defer_until NULL
no_history 0
started_at NULL
is_blocked 1
labels 1 row
issue_id tarantool-etcd-9z2
label milestone:m1-conformance
dependencies 2 rows
id 00d2968f-ff0b-5495-b30a-4bbd24525aac
issue_id tarantool-etcd-b08
type blocks
created_at 2026-05-19T16:35:03Z
created_by Eugene Blikh
metadata <binary>
thread_id
depends_on_issue_id tarantool-etcd-9z2
depends_on_wisp_id NULL
depends_on_external NULL
id 92b2521b-dd69-54f4-abb4-dea5f52ee279
issue_id tarantool-etcd-9z2
type blocks
created_at 2026-05-19T16:35:02Z
created_by Eugene Blikh
metadata <binary>
thread_id
depends_on_issue_id tarantool-etcd-lac
depends_on_wisp_id NULL
depends_on_external NULL
events 3 rows
id 224c2a43-8db1-5966-b1e2-17e6c11f33f9
issue_id tarantool-etcd-9z2
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-05-19T16:34:06Z
id 3114e9cd-ad31-5a26-95ec-70009b03eeb7
issue_id tarantool-etcd-9z2
event_type label_added
actor Eugene Blikh
old_value NULL
new_value NULL
comment Added label: milestone:m1-conformance
created_at 2026-05-21T14:37:00Z
id 7a374a7c-bd1d-5fef-ae10-86bdd494acfe
issue_id tarantool-etcd-9z2
event_type updated
actor Eugene Blikh
old_value {"id":"tarantool-etcd-9z2","title":"Phase 5f — Watch option coverage","description":"Per-option density on Watch RPCs. Big stream-shaped surface, highest remaining value but also highest effort. Run after Phase 5e.\n\nLikely tests:\n- TestWatchWithFilterPut / TestWatchWithFilterDelete (server-side event filtering)\n- TestWatchProgressNotifyExplicit (RequestProgress on demand vs the implicit 10-minute heartbeat already covered)\n- TestWatchWithFragment (large-response fragmentation — may surface a tarantool-side gap)\n- TestWatchWithPrevKV (per-watcher prev-kv flag, distinct from WithPrevKV on Put/Delete)\n- TestWatchFromCompactedRevision (ErrCompacted returned on the stream, not as a typed gRPC status)","acceptance_criteria":"Each listed test ported, runs on all four cells, passes (or documented as a known gap with cross-reference).","notes":"Source: docs/TODO.md \"Open / Conformance matrix — Phase 5 option coverage\".","status":"open","priority":2,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-05-19T13:34:06Z","created_by":"Eugene Blikh","updated_at":"2026-05-19T13:34:06Z"}
new_value {"notes":"Source: docs/TODO.md \"Open / Conformance matrix — Phase 5 option coverage\".\n\nPriority note (TestWatchWithPrevKV): Tarantool EE uses etcd as a centralized-config backend (config.storage / etcd config source in TT 3.x). On boot it reads config from etcd and opens a Watch with prev_kv set to diff old-vs-new config on live reload. So Watch prev_kv is exercised by a first-class ecosystem consumer, not just the conformance suite — it should be treated as the highest-value test in this group for drop-in TT EE compatibility.\n\nImplementation already exists (feature built, conformance assertion missing):\n- app/etcd/watch.lua:83 lookup_prev_kv() walks kv_history backwards (LT on mod_revision) for the prior non-tombstone value\n- app/etcd/watch.lua:268 stores per-watcher flag; propagated via grpc.lua:358, json.lua:205, server.lua:185\n- auth.lua:317 requires READ perm when prev_kv requested\nRemaining work for prev_kv is the TestWatchWithPrevKV conformance case against real etcd 3.6, not the Lua implementation."}
comment NULL
created_at 2026-05-20T09:34:10Z