step1-live-test-results.md
0 → 100644
+251
−0
Loading
All exit criteria met. Captures the eight verification queries against
the production Instruments archiver and the resulting findings.
Key results:
* Connect: oracledb 3.4.2 thin mode connects to
snsoroda-scan.sns.gov:1521/scprod_controls as sns_reports in 0.09 s.
Server is Oracle Database 19.27.0.0.0.
* Schema: chan_arch.channel has 428,106 rows. All four DANGLE-related
PVs (DANGLE, DANGLE.RBV, DANGLE.DMOV, AirPadStatus) resolve cleanly
to channel IDs 80399-80402.
* Sample query: 120 rows for BL4A:Mot:DANGLE.RBV in the 13:35-13:37
EDT incident window. First row matches the operator-exported CSV
exactly: (13:35:48.698608, 4.4057) <-> CSV row "1775669748698 4.4057".
* Timezone: Oracle DB is configured in UTC; session inherits client
OS timezone. Round-trip works on dragonfly because the OS is Eastern.
Tool MUST issue ALTER SESSION SET TIME_ZONE = 'America/New_York'
immediately after connect for portability to non-Eastern hosts.
* Severity/status integer maps captured live so the tool can hard-code
them instead of joining on every row. Gap-marker status IDs are
{2: Archive_Off, 3: Write_Error, 4: Disconnected}. Normal-state is
severity_id=1 (NONE), NOT severity_id=0 (which is Unused).
* AirPadStatus has NO enum_metadata rows -- contradicts the original
plan and the source-analysis doc, which both assumed it would have
(0, "Off") (1, "On"). The tool must not assume binary PVs are enums.
* Real Disconnected gap markers found in the historical record. They
have severity=2 INVALID, status=4 Disconnected, all numeric value
columns NULL, and str_val='Disconnected'. CSS coalescing returns the
string naturally, but the tool should additionally surface
is_marker=true via integer comparison.
* num_metadata for DANGLE.RBV: display range [-1000, 1000] deg, prec 4.
A historical recovery sample shows float_val=3390.0 -- wildly out of
range, the kind of bad value an investigator wants flagged. Tool should
set out_of_range=true when num_metadata is present.
* Stored procedure archive_reader_pkg.get_actual_start_time(cid,ts,te)
works for the carry-forward initial-sample lookup. The inline-SQL
fallback hangs >60 s on the production schema -- Oracle doesn't push
LIMIT-1 down through the reverse scan. Tool must use the stored proc.
Co-Authored-By:
Claude Opus 4.6 (1M context) <noreply@anthropic.com>