Records the correction rather than quietly re-scoping: the delete recommendation for #525 rested on "1 of 12 flushes actually frees memory", derived by grepping for two specific cache-clear calls and treating absence elsewhere as proof. Real figure is 3 of 12, and MTConnect's is a designed, tested path. The sweep (12 drivers + IDriver + ~15 test files) was reverted rather than finished on a justification that had collapsed. Claude-Session: https://claude.ai/code/session_015p7wGqy3YpZNCpDzTpGMKo
This commit is contained in:
+26
-3
@@ -228,9 +228,12 @@ highest-risk doc error found.
|
||||
> The table is dropped (`DropDriverHostStatusTable`). Live-gated on docker-dev, **including the cross-mesh
|
||||
> gRPC path** — site-a first showed `—`, which is also what a broken mapper produces, so it was rebuilt to
|
||||
> prove the `has_host_statuses` presence flag round-trips rather than assuming version skew.
|
||||
> ⏳ **A third table, same defect, found en route:** `DriverInstanceResilienceStatus` also has no writer and
|
||||
> no reader — only its DbSet declaration — while the live data rides the `driver-resilience-status` channel.
|
||||
> Documented in place, filed as Gitea **#524** rather than widening the schema change beyond the ask.
|
||||
> ✅ **A third table, same defect, found en route — now also RESOLVED** (`d979ac69`, Gitea **#524**):
|
||||
> `DriverInstanceResilienceStatus` had no writer and no reader either — only its DbSet declaration — while
|
||||
> the live data rides the `driver-resilience-status` telemetry channel into `IDriverResilienceStatusStore`
|
||||
> (verified consumed: `DriverStatusPanel.razor` injects it, fed by both the DPS bridge and the gRPC dialer).
|
||||
> Dropped by migration `DropDriverInstanceResilienceStatusTable`. Filed separately rather than folded into
|
||||
> #521 so a second schema change was an explicit decision, not a side effect.
|
||||
|
||||
Gitea #518/#507. Nine drivers raise; nothing consumes. `DriverHostStatus` table exists
|
||||
(`OtOpcUaConfigDbContext.cs:48`, migration `20260715230637_V3Initial.cs:108`) with a doc-comment
|
||||
@@ -520,6 +523,26 @@ also `--no-ff`) carrying the items §8 did not cover.
|
||||
| **#521** `IHostConnectivityProbe` | ✅ **Done — resolved differently from how it was filed.** Neither "build the publisher" nor "delete": the publisher as designed was **unbuildable** after Phase 4, so the capability was kept and the transport changed to the Phase 5 telemetry stream. Table dropped. | `30d0697c` |
|
||||
| **#522** driver stability tiers | ✅ **Done — deleted.** The inertness was broader than either the issue or this register said: nothing constructed `MemoryTracking` either, so "pass real tiers" was never a flag flip. | `cbb88229` |
|
||||
| Live gate on docker-dev | ✅ **Passed**, one fix (`1 hosts` → `1 host`) | `ce589569` |
|
||||
| **#524** `DriverInstanceResilienceStatus` | ✅ **Done — deleted.** Sibling of #521, dead for the same Phase-4 reason. | `d979ac69` |
|
||||
| **#525** `IDriver` memory members | ⏳ **OPEN — recommendation withdrawn mid-execution.** See below. | — |
|
||||
|
||||
⚠️ **#525 is a worked example of the register's own recurring failure mode, committed by me.** I recommended
|
||||
deleting `IDriver.GetMemoryFootprint`/`FlushOptionalCachesAsync` on the stated evidence that *"1 of 12
|
||||
actually frees memory"*. That number came from grepping for **two specific cache-clear calls** and treating
|
||||
their absence elsewhere as proof of absence. The real inventory: **8 of 12 flushes are no-ops, 3 free real
|
||||
memory** (AbCip's UDT template cache, Calculation's compiled scripts, **MTConnect's cached probe model** —
|
||||
which is a *designed* path with compare-and-swap discipline and tests asserting the footprint drops), and 1
|
||||
is cosmetic. The sweep had already edited 12 drivers, `IDriver` and ~15 test files; it was **reverted**
|
||||
rather than completed on a justification that no longer held.
|
||||
|
||||
What survives of the argument is narrower: `GetMemoryFootprint` returns `0` in 7 of 12, its computed
|
||||
constants were invented and never validated against real memory because nothing ever consumed them, and
|
||||
**the two halves are coherent in exactly one driver** (MTConnect) — AbCip and Calculation free real memory
|
||||
while reporting footprint `0`; TwinCAT, Galaxy and Mqtt report footprints behind no-op flushes.
|
||||
|
||||
**The lesson, which is the same one §6 already records about this file:** a grep for the shapes you expect
|
||||
is not an inventory. Enumerate the whole set and read each member before drawing a count — especially when
|
||||
the count is the thing your recommendation rests on.
|
||||
|
||||
**Both closures produced a residual that was filed rather than folded in** — a second dead table
|
||||
(#524 `DriverInstanceResilienceStatus`) and two now-consumerless `IDriver` members (#525). Neither was
|
||||
|
||||
Reference in New Issue
Block a user