fix(historian): stamp a positive StorageRateMs on provisioned tags #439
Reference in New Issue
Block a user
Delete Branch "fix/gateway-provisioner-storage-rate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
GatewayTagProvisioner sent StorageRateMs=0 (proto uint32 default), which makes the gateway's EnsureTags throw ArgumentOutOfRangeException ('Storage rate must be > 0 ms') — so every historized-tag auto-provision silently failed. Stamp 1000ms (gateway convention) + regression test + fix the live-suite inline defs. Found via the R2-06 live gate; unblocks Float/Int2/Int4/Double provisioning (live suite 3/6 -> 5/6). Gateway driver unit 103/103.
GatewayTagProvisioner built HistorianTagDefinition without a StorageRateMs, so the proto uint32 defaulted to 0. The gateway's EnsureTags maps StorageRateMs straight to the AVEVA SDK's storageRateMs, which requires a positive value — 0 makes the SDK throw ArgumentOutOfRangeException ('Storage rate must be > 0 ms'), so EVERY historized-tag auto-provision (the deploy-time IHistorianProvisioning hook) silently failed at the gateway with failed=N. Stamp DefaultStorageRateMs=1000 (matches the gateway's own live provisioner convention; quantized 1000/5000/10000). Add a regression unit test asserting the definition carries a positive rate, and set StorageRateMs on the live-suite's inline definitions so the retype probe reaches a real EnsureTags. Found via the R2-06 live gate against a real 0.2.0 gateway + AVEVA historian: with this fixed, Float/Int2/UInt2/Int4/UInt4/Double all provision and the live suite goes 3/6 -> 5/6. (Int1/Boolean remains blocked by the gateway histsdk's ProtocolEvidenceMissingException for Int1 — a gateway-side type-support gap, not this bug.) Gateway driver unit 103/103.Merged to master via --no-ff at
666908d792.Pull request closed