~bigbes/tarantool-etcd · parade

main · last commit 1 month ago · 2npkec0r

← Back to the parade

tarantool-etcd-35y Hash/HashKV not wire-compatible with real etcd (cross-member corruption detection broken) Lined Up

status: open P3 task milestone:m1-conformance
bd update tarantool-etcd-35y --claim bd close tarantool-etcd-35y
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-05-20T06:31:01Z
Updated2026-05-20T06:31:01Z
Description
Maintenance.Hash and Maintenance.HashKV compute a CRC32 over Tarantool's reconstructed logical key/value/revision/lease view (app/etcd/maintenance.lua fold/fold_keyspace_now/fold_keyspace_at), NOT over bbolt page bytes the way real etcd does. The hashed inputs are semantically equivalent, but the byte layout being checksummed is entirely Tarantool's, so the resulting hash will never equal a real etcd member's hash for identical data.

Impact: works for same-instance 'did my data change between rev A and B' checks, but is useless for etcd's actual purpose — cross-member corruption detection, where the corruption checker compares hashes across peers and expects identical members to agree. A Tarantool node and a real etcd node always disagree; the conformance matrix only passes because both Tarantool cells share the same folding scheme.

This is a deliberate divergence. Documented in the maintenance.lua module header (lines 8-10). Tracking here so it is not mistaken for a bug. Achieving true compatibility would require emulating bbolt's physical page encoding, which is likely out of scope.
Notes
Divergence, not a defect. The HashKV revision-error contract (compacted->revision_compacted, future->future_revision) IS correct. Cross-reference docs/TODO.md deliberate-divergences section.

Depends on

No outgoing dependencies.

Depended on by

Nothing depends on this issue.

No comments.

  • Eugene Blikh created the issue · 2026-05-20T09:31:01Z
  • Eugene Blikh added label milestone:m1-conformance · 2026-05-21T14:37:01Z
Stored rows — what this pane was built from, as read
issues 1 row
id tarantool-etcd-35y
content_hash 7207410b4edf93dd7a43975af03141bbb6704d601638ce99ebd06a4f81273c21
title Hash/HashKV not wire-compatible with real etcd (cross-member corruption detection broken)
description Maintenance.Hash and Maintenance.HashKV compute a CRC32 over Tarantool's reconstructed logical key/value/revision/lease view (app/etcd/maintenance.lua fold/fold_keyspace_now/fold_keyspace_at), NOT over bbolt page bytes the way real etcd does. The hashed inputs are semantically equivalent, but the byte layout being checksummed is entirely Tarantool's, so the resulting hash will never equal a real etcd member's hash for identical data. Impact: works for same-instance 'did my data change between rev A and B' checks, but is useless for etcd's actual purpose — cross-member corruption detection, where the corruption checker compares hashes across peers and expects identical members to agree. A Tarantool node and a real etcd node always disagree; the conformance matrix only passes because both Tarantool cells share the same folding scheme. This is a deliberate divergence. Documented in the maintenance.lua module header (lines 8-10). Tracking here so it is not mistaken for a bug. Achieving true compatibility would require emulating bbolt's physical page encoding, which is likely out of scope.
design
acceptance_criteria
notes Divergence, not a defect. The HashKV revision-error contract (compacted->revision_compacted, future->future_revision) IS correct. Cross-reference docs/TODO.md deliberate-divergences section.
status open
priority 3
issue_type task
assignee NULL
estimated_minutes NULL
created_at 2026-05-20T06:31:01Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-05-20T06:31:01Z
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 0
labels 1 row
issue_id tarantool-etcd-35y
label milestone:m1-conformance
events 2 rows
id bb43477e-f05e-5f24-91b4-804a62100a69
issue_id tarantool-etcd-35y
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:01Z
id c5ae6782-aad5-5691-adc3-31d2a96a7f58
issue_id tarantool-etcd-35y
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-05-20T09:31:01Z