Commit 26c2ef7
spec(2.4) Sprint A Step 5: SRF/view 23 col + catversion 220 + 2 SQLSTATE + regress
D7 + D11 + D12 + D20. Atomic catalog change commit (per L46:
catversion bump must cover SRF/view extension + new GUCs +
new SQLSTATE).
Catversion (L46 lower-bound semantics):
catversion.h 202605210 -> 202605220
+ spec body amend explaining the bump motivation
+ downstream TAP / regress regex are all lower-bound, so 075
L6/L7, 068 L12, 069 L12 continue to pass without edits.
pg_proc.dat:
cluster_get_ic_peers SRF (oid 8914):
proallargtypes: 19 -> 23 (+ int8 + int4 + int8 + int8)
proargmodes: 19 -> 23 (all 'o' output)
proargnames: 19 -> 23 (+ stale_epoch_drop_count +
chunk_reassembly_active +
chunk_reassembly_timeout_count +
lamport_observe_advance_count)
descr appends "+ spec-2.4"
system_views.sql:
pg_cluster_ic_peers view: 19 -> 23 column SELECT. Trailing 4
columns appended after last_error.
cluster_ic_tier1.c::cluster_get_ic_peers SRF body:
values[19] -> values[23];nulls[19] -> nulls[23]
Assert(col == 23)
4 NEW columns filled from per-peer atomic counters:
stale_epoch_drop_count (int8;atomic_read_u64)
chunk_reassembly_active (int4;atomic_read_u32)
chunk_reassembly_timeout_count (int8;atomic_read_u64)
lamport_observe_advance_count (int8;atomic_read_u64)
errcodes.txt -- 2 NEW SQLSTATE:
53R20 ERRCODE_CLUSTER_IC_STALE_EPOCH_DROP
53R21 ERRCODE_CLUSTER_IC_CHUNK_REASSEMBLY_TIMEOUT
Both appear in 53R block contiguous with existing cluster
errcodes (53R01 .. 53R12);PG codegen rebuilds errcodes.h /
errcodes-table.h on next build.
cluster_ic_envelope.c step 7 epoch reject:
errcode upgraded ERRCODE_INTERNAL_ERROR -> ERRCODE_CLUSTER_IC_STALE_EPOCH_DROP
cluster_ic_chunk.c reassembly timeout:
errcode upgraded ERRCODE_INTERNAL_ERROR -> ERRCODE_CLUSTER_IC_CHUNK_REASSEMBLY_TIMEOUT
+ cluster_ic_tier1_close_peer call after timeout (force reconnect)
cluster_regress ic_envelope_smoke.sql + expected:
spec-2.3 4 SQL blocks unchanged
+ block 5: spec-2.4 D9 5 NEW PGC_POSTMASTER GUCs visible
+ block 6: pg_cluster_ic_peers view = 23 columns
src/test/regress/expected/rules.out:
pg_cluster_ic_peers view dump updated to 23 columns
(PG view rule capture).
cluster_tap 075 (L6/L7) + 068 (L12) + 069 (L12):
All catversion regex are lower-bound (>= 202605200/210/181)
so 220 satisfies all three -- NO test edits needed.
cluster_tap 082_envelope_epoch_enforce.pl + 083_envelope_chunked_round_trip.pl
spec-2.4 D17/D18 NEW negative tests deferred:
- 082 epoch fault inject requires raw socket negative test
pattern not yet implemented;cluster_unit U10 fully covers
the verify reject branch.
- 083 chunked round-trip requires tier1 recv variable-length
payload extension (Step 4 wired send-side + reassembly state
machine but not the recv-side variable-length frame read).
Will land in spec-2.4 hardening or spec-2.13 GES caller use.
Production protection still applies via cluster_unit (envelope
step 7 epoch enforce + chunk_reset_peer cleanup).
Verification surfaces (local):
- cluster_unit: 34/34 binaries
- cluster_regress: 5/5 (ic_envelope_smoke output extended)
- PG regression: 219/219 (rules.out updated)
- clang-format-18: 0 violations
- cppcheck: 0 new findings
Spec authority: pgrac:specs/spec-2.4-* §1.2 D7 catversion + D11
SRF/view + D12 SQLSTATE + D20 regress (frozen v0.2 2026-05-08).
Spec: spec-2.4-framing-epoch-enforce-lamport-piggyback.md1 parent 6022cba commit 26c2ef7
11 files changed
Lines changed: 107 additions & 17 deletions
File tree
- src
- backend
- catalog
- cluster
- utils
- include/catalog
- test
- cluster_regress
- expected
- sql
- regress/expected
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1488 | 1488 | | |
1489 | 1489 | | |
1490 | 1490 | | |
1491 | | - | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
1492 | 1496 | | |
1493 | 1497 | | |
1494 | 1498 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
334 | 334 | | |
335 | 335 | | |
336 | 336 | | |
337 | | - | |
| 337 | + | |
338 | 338 | | |
339 | 339 | | |
340 | 340 | | |
341 | 341 | | |
342 | | - | |
343 | | - | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
344 | 348 | | |
345 | 349 | | |
346 | 350 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
231 | | - | |
| 231 | + | |
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1574 | 1574 | | |
1575 | 1575 | | |
1576 | 1576 | | |
1577 | | - | |
1578 | | - | |
| 1577 | + | |
| 1578 | + | |
1579 | 1579 | | |
1580 | 1580 | | |
1581 | 1581 | | |
| |||
1611 | 1611 | | |
1612 | 1612 | | |
1613 | 1613 | | |
1614 | | - | |
1615 | | - | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
1616 | 1622 | | |
1617 | 1623 | | |
1618 | 1624 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
460 | 460 | | |
461 | 461 | | |
462 | 462 | | |
| 463 | + | |
| 464 | + | |
463 | 465 | | |
464 | 466 | | |
465 | 467 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
197 | | - | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
198 | 210 | | |
199 | 211 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12248 | 12248 | | |
12249 | 12249 | | |
12250 | 12250 | | |
12251 | | - | |
| 12251 | + | |
12252 | 12252 | | |
12253 | 12253 | | |
12254 | 12254 | | |
12255 | | - | |
12256 | | - | |
12257 | | - | |
| 12255 | + | |
| 12256 | + | |
| 12257 | + | |
12258 | 12258 | | |
12259 | 12259 | | |
12260 | 12260 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
| 56 | + | |
57 | 57 | | |
58 | 58 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
0 commit comments