Skip to content

Commit 2db94bd

Browse files
committed
Record qualified SQL BETWEEN and bounded native benchmark failures
1 parent 0dc6d05 commit 2db94bd

13 files changed

Lines changed: 1469 additions & 23 deletions

‎docs/ADR/ADR-065-full-sql-client-compatibility.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,9 @@ REQ-SQLC-006 / AC-SQLC-006A / TASK-SQLC-BETWEEN is the next additive Q1
243243
expression stage under [SqlBetween](../Features/QueryExecution/SqlBetween.md).
244244
The owning feature fixes the complete truth/error/budget/test and ordered
245245
execution contract; strongest TASK-SQLC-R23 review joins before delegated code.
246-
Status remains Accepted, with all runtime gates pending.
246+
Status remains Accepted. [Original7d1196 CI](../implementation/sql-client-qualification-7d1196.json)
247+
qualifies the bounded stage's44 execution rows and complete ordinary CI;
248+
coverage, full SQL/native transport and complete performance gates remain open.
247249

248250
1. Review the current parser/normalizer/evaluator/candidate/permission/cursor
249251
sources and retained ca7 baseline. R22 corrects partial-bound truth: UNKNOWN

‎docs/Features/BenchmarkComparisons/NativeGateRepair.md‎

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ BenchmarkComparisons guarantees,1/2/3node cells and270scenario scope remain.
1313
|REQ-NGR-002 exact Kurrent event preservation|AC-NGR-002 / TASK-NGR-R2/K1: source-contract freeze then genuine SDK original/custom/system metadata equality and unchanged55,378owned-stream/foreign/cleanup proof on1/2/3. StageA source delivered; selected f403 native1/2/3 originals pass. Empty tracing characterization remains open; a hard-coded empty assumption is not a valid completeness oracle.|
1414
|REQ-NGR-003 actual native leader routing|AC-NGR-003 / TASK-NGR-R2/K1: pinned SDK/advertised-endpoint source freeze, actual leader/follower/native setup proof and observed members/copies/ACK. Selected f403 native1/2/3 preflight proof exists; D1 diagnostic source is delivered. Original routing cause and diagnostic failure-path qualification remain open; no guessed leader, independent nodes or measured write retry.|
1515
|REQ-NGR-004 genuine complete publication|AC-NGR-004 / TASK-NGR-Q1: full source/normal/scalar/recovery/RF3/native preflight270/cohort/site original source/run/attempt/upload/digest/report evidence. Failed/cancelled/skipped/unavailable data remains honest.|
16-
|REQ-NGR-005 settled resource-failure observation|AC-NGR-005 / TASK-NGR-E1: Authored OutboxFailureDiagnosticClassifierTests and OutboxFailureDiagnosticFormatterTests map exact eligibility and typed privacy/bounds; execution is pending. Existing real isolated1/2/3 failed-case runner/worker originals must prove the one authenticated SDK read outside timing, cancellation/settlement and original-result preservation. No quotas, purge or retry changes.|
16+
|REQ-NGR-005 settled resource-failure observation|AC-NGR-005 / TASK-NGR-E1: thirteen genuine classifier/formatter cases pass in each3ae unit mode; the7d1196 n1 delete original proves a numeric native failure observation. Complete1/2/3 failure-path and cancellation/settlement gates remain open. Preserve the authenticated SDK read outside timing and original result. No quotas, purge or retry changes.|
1717

1818
```mermaid
1919
flowchart LR
@@ -120,3 +120,68 @@ numeric budget cause and the complete isolated cohort remain open. Automatic
120120
Benchmarks37129421599 cancelled all27 preflight and270 scenario jobs without
121121
steps, so it supplies no native measurement or website refresh. Later source
122122
changes and working-tree SQL BETWEEN are outside this exact3ae qualification.
123+
124+
TASK-NGR-K2R / REQ-NGR-003 is read-only source diagnosis of the genuine7d9852
125+
KurrentDB3node preflight failure in Benchmarks37130907091/attempt1/job111227060126.
126+
Root independently verifies two original ZIPs and0/1 TUnit error; all five worker
127+
repetitions have null measurements and zero samples. First setup reports
128+
NoStreamSemantics/NotLeaderException; remaining repetitions record
129+
PreviousSetupFailure. Teardown retains primaryFailure=true and no failed stages.
130+
The source/run/upload/report/worker evidence is retained under seal
131+
c50787a2279f9a8525df8794aaafa786e5a2cb2f7dd37bac623e36f524dd0a54;
132+
root verification receiptf12f7c4f4e4fd068e6b78fb4c6d13aa77d0f12976f7c6fedc525a157a2d6f1cb.
133+
Bounded analysis worker reads the Kurrent client/setup/verifier/endpoint and
134+
Aspire topology paths, compares actual7d to current owned bytes, and returns
135+
precise causal evidence or an explicit uncertainty with candidate file ownership
136+
and real fault/test requirements. No implementation, retry/quorum/timeout change,
137+
package, runtime, Git mutation or provider control is authorized by this diagnostic task.
138+
Root owns the contract/review/qualification join before any repair. This failed
139+
native gate cannot qualify the complete cohort or website metrics.
140+
141+
K2R source review is complete: eight inspected consumer/topology files match the
142+
failed revision; server logs show convergence near setup, but the sanitized
143+
original omits RPC status, selected destination and redirect details. Cause
144+
remains unknown, with no proven consumer or pinned-SDK defect. No implementation
145+
is justified by that packet. Root reviewed analysis SHA-256
146+
`da2be25c51d66e5b242554ced508c58715732a94fc7ae74888b4439c8ed741de`.
147+
[The original7d985 receipt](../../implementation/sql-client-qualification-7d985.json)
148+
retains the green CI baseline and cancelled native cohort:26/27 preflight jobs
149+
have provider success, one genuine Kurrent setup failure;19/270 scenario jobs
150+
have provider success and251 are cancelled. These metadata counts do not prove
151+
complete case or measurement success. Nineteen cancelled jobs have failed result
152+
upload steps; no workload failure is inferred from upload failure. Full cohort,
153+
scale and website qualification remain open.
154+
155+
The successor [7d1196 n2 preflight original](../../implementation/native-kurrent-preflight-failure-7d1196.json)
156+
also fails NoStreamSemantics with NotLeaderException and no measurements. Root
157+
independently verifies both original ZIPs; the repeated stage/type does not
158+
establish a shared cause. [Pinned SDK source review](../../implementation/kurrent-sdk-routing-source-review.md)
159+
confirms supported multi-seed settings and future-call route updates while the
160+
original failed append is surfaced. Selected destination/status/leader snapshot
161+
remain absent; no repair or replay is approved from this source review.
162+
163+
The [7d1196 KeyLoad failure originals](../../implementation/native-keyload-failures-7d1196.json)
164+
retain three later genuine failures from the same live run. The n1 delete's first
165+
four repetitions each complete10k operations; final preparation rejects with
166+
ResourceExhausted and the stageE SDK observation records100000 retained outbox
167+
entries and192581709 bytes. This reaches the exact default100000-record cap,
168+
below the1GiB byte cap. It qualifies that native numeric failure observation;
169+
fixture accounting, reclamation and a repair remain separate unresolved work.
170+
The n2 update completes its first10k operations, then four repetitions fail
171+
OwnershipLost before timed sample collection; warmup versus preparation and the
172+
underlying cause are absent. The n2 PointRead completes all50k
173+
samples, then its separate native fault check fails quorumAssertions. The harness
174+
erases the original exception and assigns receipt fields only after all SDK/MCP
175+
probes return: null/false defaults do not prove which probe failed or that MCP ran.
176+
Container restoration is observed, while logical fault recovery remains failed.
177+
Root independently verifies all six original ZIPs, provider/upload/source bindings,
178+
reports and raw case hashes. The live snapshot is bounded by its recorded time;
179+
later failures need fresh review. No new passing cohort, quota/retry change,
180+
required-scale result or website refresh is established.
181+
182+
[Exact delete source accounting](../../implementation/keyload-outbox-benchmark-source-review.md)
183+
predicts95620 entries before fifth measured-input preparation and115620 for the
184+
unchanged complete fixture. The observed100000 count matches the guard; hidden
185+
ordinal and inner cause remain unexported. Server defaults have no current
186+
benchmark limit-injection seam. Any new setting requires a separate replicated
187+
resource/provenance/restart contract, not a change to stageE observation.

‎docs/Features/QueryExecution.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ REQ-SQLC-006 / AC-SQLC-006A / TASK-SQLC-BETWEEN adds the bounded typed
44
[SqlBetween stage](QueryExecution/SqlBetween.md) under Accepted ADR065. Existing
55
scalar/null/eager-error semantics, expanded AST budgets, field authority and
66
cursors remain canonical. First-authored real ZoneTree and genuine RF3 SDK/MCP
7-
tests must qualify the new syntax; full SQL/native protocol and measured
8-
performance remain unfinished.
7+
tests qualify the new syntax at source7d1196 with44 original execution rows;
8+
[the receipt](../implementation/sql-client-qualification-7d1196.json) retains
9+
full exact-source CI. Coverage, full SQL/native protocol and measured performance
10+
remain unfinished.
911

1012
REQ-SQLC-003 / AC-SQLC-003P adds independent full public/native value and
1113
same-instance native writer tests under the Accepted

‎docs/Features/QueryExecution/SqlBetween.md‎

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# QueryExecution bounded SQL BETWEEN
22

33
Status: Accepted contract under [ADR-065](../../ADR/ADR-065-full-sql-client-compatibility.md);
4-
source implementation and development checks complete; exact-SHA runtime proof
5-
pending. Existing Q1 semantics
4+
source implementation, development checks and original GitHub runtime proof
5+
complete at7d1196. Coverage and performance gates remain open. Existing Q1 semantics
66
remain the target. Full PostgreSQL syntax/semantics and native client sessions
77
are separate mandatory unfinished stages.
88

@@ -121,12 +121,25 @@ joined all eleven owned source files without a source blocker. Initial frozen
121121
7d9852b source build failed with five IDE0005 unnecessary using directives in
122122
new unit fixtures,0warnings,elapsed00:01:39.70. The owning worker removes only
123123
those imports; no assertion, diagnostic severity or execution contract changes.
124-
Repeat full Release, formatter and static checks before delivery. Runtime still
125-
requires the new delivered-source GitHub originals.
124+
Full Release, formatter and static checks passed before delivery. Original
125+
runtime proof is retained below separately from those development checks.
126126

127127
The [source-stage receipt](../../implementation/sql-client-source-stage-003.json)
128128
binds all eleven owned files to frozen7d985 base, full26project Release with
129129
0warnings/0errors, canonical formatter and static26project/4module governance.
130130
The final import/whitespace corrections preserve all assertions and non-whitespace
131-
bytes. The21unit and2RF3 cases still require authentic delivered-source CI proof.
132-
No runtime, coverage or measured gain is inferred from development checks.
131+
bytes. No runtime, coverage or measured gain is inferred from development checks.
132+
133+
[Original CI proof](../../implementation/sql-client-qualification-7d1196.json)
134+
now closes the runtime gate at source7d1196/run37132491153/attempt1: all21 new
135+
unit cases pass in each normal/scalar mode, and both RF3 SDK/official MCP cases
136+
pass. Root independently verifies original ZIP/report/source/job/upload hashes,
137+
all44 execution rows and the same21 unit IDs in both modes; all11 owned source
138+
files match the frozen development source. Full CI passes2667/2667 normal and
139+
scalar,194/194 recovery,69/69 RF3 and118/118 unique analyzer cases, with no
140+
nonpass, Release warnings/errors, formatter or governance failure. This source
141+
includes9 additional governance tests and is a descendant of deliveredbe2e;
142+
its cancelled predecessor supplied no executed cases.
143+
Coverage collector/thresholds, complete native comparisons, full SQL and native
144+
sessions remain open. The benchmark run has a genuine Kurrentn2 setup failure;
145+
it cannot qualify scale or website performance. ADR065 remains Accepted.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# KeyLoad delete fixture outbox accounting
2+
3+
TASK-NGR-D1R / REQ-NGR-005 / AC-NGR-005 is read-only source diagnosis.
4+
[The genuine failed job](https://github.com/managedcode/KeyLoad/actions/runs/37132491118/job/111232263528)
5+
uses source `7d1196db51f682f64ffcf4560e7b3f12b49b499b`; its
6+
[original receipt](native-keyload-failures-7d1196.json) retains provider/upload,
7+
ZIP/report/raw hashes, all case counts and the redacted numeric observation.
8+
No implementation, quota, retention or measurement change is delivered here.
9+
10+
The observed head has100000 retained entries,192581709 bytes and no active
11+
consumer. The exact source's default bounds are100000 entries and1073741824
12+
bytes. [AppendOutbox](https://github.com/managedcode/KeyLoad/blob/7d1196db51f682f64ffcf4560e7b3f12b49b499b/src/KeyLoad.Core/ProjectionOutbox.cs)
13+
rejects the next ordinary append when the retained count reaches its cap.
14+
Only projection progress uses the separate reserve. This supports record-cap
15+
exhaustion strongly; the original inner exception and rejected ordinal were not
16+
exported and remain unproven runtime details.
17+
18+
The exact4096-document,10000-operation,256-warmup,five-repetition,16-worker
19+
source yields the following independent entry accounting:
20+
21+
|Source work|Outbox entries|
22+
|---|---:|
23+
|4096 document puts and4096 vector puts|8192|
24+
|256 graph vertices with3 outgoing edges|768|
25+
|4096 event appends|4096|
26+
|Successful mutation-probe effects|4|
27+
|Each completed delete repetition:256 preparation puts,256 warmup deletes,10000 measured-input puts and10000 measured deletes|20512|
28+
|Initial seed/probe plus four completed repetitions|95108|
29+
|Fifth repetition's preparation/warmup before measured-input puts|512|
30+
|Head predicted before fifth measured-input preparation|95620|
31+
|Complete unchanged five-repetition fixture requirement|115620|
32+
33+
The source therefore predicts4380 successful preparation appends to reach100000,
34+
then rejection before timed samples are allocated. Four original repetitions
35+
have10000 successes/zero failures/10000 samples each; the fifth has
36+
ResourceExhausted/null measurement/zero samples, consistent with that prediction.
37+
This arithmetic does not prove the hidden runtime ordinal. Source review compares
38+
18 inspected owning files byte-for-byte with the failed commit and current tree.
39+
Analysis SHA-256 `2c21daf4fde8dfc5a26fe621760e5f112b8e75103b8fc6b5f1c45dc27cf0c7bc`;
40+
source/evidence inventory SHA-256
41+
`9cbce0b5d23dd1cfdb4cccb249c5abfe7eeccf467a603fd94376e6a33069c496`.
42+
43+
The actual server PartitionHost constructs DatabaseEngine with default limits;
44+
NodeOptions and isolated AppHost currently expose no database-limit seam.
45+
Direct Core constructor injection does not configure the real server fixture.
46+
The115620-record minimum is a requirement for this fixture;120000 is only a
47+
bounded candidate, with the byte cap unchanged. A separate implementation
48+
contract must freeze effective limits on every replica, provenance, restart
49+
compatibility, admission, regression boundaries and actual default/candidate
50+
native proof before introducing a server setting. ADR-068 stageE authorizes
51+
observation only. No automatic quota growth, history purge or write retry follows
52+
from this review. The mandatory100k/1m/5m corpus and100k-operation cells require
53+
their own checked capacity and retained-byte accounting; this small control
54+
fixture cannot qualify those scales, the complete cohort or website metrics.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Pinned Kurrent SDK routing source review
2+
3+
TASK-NGR-K3R / REQ-NGR-003, read-only source evidence under Accepted ADR-068.
4+
NuGet metadata binds KurrentDB.Client1.4.0 to official commit
5+
`e041cf8f459d6abe05f39918ecd62a71038b9ddc`. This source review does not prove
6+
the destination or cause of an original failed call, or an SDK defect.
7+
8+
The pinned [connection parser](https://github.com/kurrent-io/KurrentDB-Client-Dotnet/blob/e041cf8f459d6abe05f39918ecd62a71038b9ddc/src/KurrentDB.Client/Core/KurrentDBClientSettings.ConnectionString.cs)
9+
accepts the configured multi-host esdb scheme and leader preference.
10+
[GossipChannelSelector](https://github.com/kurrent-io/KurrentDB-Client-Dotnet/blob/e041cf8f459d6abe05f39918ecd62a71038b9ddc/src/KurrentDB.Client/Core/GossipChannelSelector.cs)
11+
uses the first successful gossip response; the
12+
[node selector](https://github.com/kurrent-io/KurrentDB-Client-Dotnet/blob/e041cf8f459d6abe05f39918ecd62a71038b9ddc/src/KurrentDB.Client/Core/NodeSelector.cs)
13+
ranks available members. Leader preference can fall back to a follower when
14+
that response contains no usable leader. This is a possible mechanism, not
15+
evidence that it caused either preserved KeyLoad failure.
16+
17+
[TypedExceptionInterceptor](https://github.com/kurrent-io/KurrentDB-Client-Dotnet/blob/e041cf8f459d6abe05f39918ecd62a71038b9ddc/src/KurrentDB.Client/Core/Interceptors/TypedExceptionInterceptor.cs)
18+
maps the NotLeader trailer key and leader-host/port trailers to the typed
19+
exception with its original RpcException. Its actual path does not invoke the
20+
separate Google RPC detail parser in NotLeaderException.FromRpcException.
21+
The exception exposes a public DnsEndPoint LeaderEndpoint.
22+
[ReportLeaderInterceptor](https://github.com/kurrent-io/KurrentDB-Client-Dotnet/blob/e041cf8f459d6abe05f39918ecd62a71038b9ddc/src/KurrentDB.Client/Core/Interceptors/ReportLeaderInterceptor.cs)
23+
reports that endpoint for future channel selection; raw Unavailable errors
24+
instead request rediscovery. The
25+
[batch append receiver](https://github.com/kurrent-io/KurrentDB-Client-Dotnet/blob/e041cf8f459d6abe05f39918ecd62a71038b9ddc/src/KurrentDB.Client/Streams/KurrentDBClient.Append.cs)
26+
faults the original pending append and replaces its appender for later calls.
27+
No transparent replay of that same failed append was found.
28+
29+
The [7d985 n3 original](sql-client-qualification-7d985.json) and
30+
[7d1196 n2 original](native-kurrent-preflight-failure-7d1196.json) both retain
31+
NoStreamSemantics/NotLeaderException, all five null measurements and clean
32+
teardown. Identical stage/type does not prove identical causes. Their sanitized
33+
exports omit the selected destination, reported LeaderEndpoint value, gRPC
34+
status code and SDK's own selected gossip snapshot. Cause remains unknown;
35+
no consumer workaround, SDK repair or routing change is justified by this review.
36+
37+
The next real native proof must correlate the original selected/receiving node,
38+
reported leader and status-code-only diagnostic with contemporaneous all-node
39+
roles. Any added capture needs a bounded redacted contract before implementation.
40+
Preserve the failed original; success still requires unchanged NoStream ACK,
41+
expected conflict and exact original-event readback on actual1/2/3 members.
42+
Do not export messages, raw trailers, credentials, endpoints or user payloads,
43+
or retry the failed append to make its qualification green.
44+
45+
Research report SHA-256
46+
`49b3fe94a528e942db05fbcef6c75a82ac40649f9d1b203f6c9f052a8f4a73e3`;
47+
source inventory SHA-256
48+
`890d18e3f8ae1119afc4401d7da0ae4ceec62ffa552822f179683b1e4a686d51`.
49+
The inventory records immutable Git SHA-1 blob IDs, not a claimed local SHA-256
50+
of retrieved source. There was no package installation, runtime, native SDK
51+
execution or repository mutation by the research worker. This record is manual
52+
architecture evidence and cannot qualify performance or the complete cohort.

0 commit comments

Comments
 (0)