Native AbCip browse: per-call template connections, instance-order assumption, unpaced listing #572

Closed
opened 2026-10-07 19:02:15 -04:00 by dohertj2 · 1 comment
Owner

Context: native .NET Allen-Bradley transport work (plan docs/plans/2026-10-07-native-ab-transport.md, branch feat/native-ab-transport, not yet merged). Parked as a Minor during per-task review — none of these block the plan.

Native AbCip browse (symbol listing + template reads) follow-ups:

  • Template reads made outside an enumeration open and close a pooled connection per call; callers fetching many templates should hold a lease across the batch.
  • Paging assumes the controller lists instances in ascending order (continuation at LastInstance + 1); confirm on a real controller.
  • Listing pages inside the production enumerators are unpaced — a large controller's full listing is a back-to-back burst (one request in flight, roughly Studio 5000 online-browse load).
Context: native .NET Allen-Bradley transport work (plan `docs/plans/2026-10-07-native-ab-transport.md`, branch `feat/native-ab-transport`, not yet merged). Parked as a Minor during per-task review — none of these block the plan. Native AbCip browse (symbol listing + template reads) follow-ups: - [ ] Template reads made outside an enumeration open and close a pooled connection per call; callers fetching many templates should hold a lease across the batch. - [ ] Paging assumes the controller lists instances in ascending order (continuation at `LastInstance + 1`); confirm on a real controller. - [ ] Listing pages inside the production enumerators are unpaced — a large controller's full listing is a back-to-back burst (one request in flight, roughly Studio 5000 online-browse load).
dohertj2 added the driver/abcip label 2026-10-07 19:02:15 -04:00
Author
Owner

Fixed: paging continues from max(instance seen)+1 with a no-progress guard; a browse's template reads share one lease (CreateBatch); listing pages paced by browsePageDelayMs (default 5 ms). Residual: whether a real controller ever lists out of order is unobserved — the reader is correct either way. (merge 4ba6cbab on master, pushed 2026-10-08)

Fixed: paging continues from max(instance seen)+1 with a no-progress guard; a browse's template reads share one lease (CreateBatch); listing pages paced by browsePageDelayMs (default 5 ms). Residual: whether a real controller ever lists out of order is unobserved — the reader is correct either way. (merge `4ba6cbab` on master, pushed 2026-10-08)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#572