Skip to content

Managed Client does not refresh the namespace table on model change events #4100

Description

@marcschier

Problem

A Client with model change tracking enabled does not notice namespace table changes on a running
Server.

ModelChangeTracker subscribes to GeneralModelChangeEventType and raises ModelChanged, but
nothing refetches the namespace table. FetchNamespaceTablesAsync exists on ISession and
ManagedSession, and is only called once while the Session is being opened.

This matters now that a Server supports live NodeManager registration (#3993, PR #4094): a live add
appends a namespace URI and bumps UrisVersion, so a tracking Client resolves NodeIds from the new
namespace against a stale NamespaceUris table.

Expected

With change tracking enabled, a Client should refresh its namespace table when a model change
indicates that the Server namespace array has changed, so NodeIds from newly added namespaces
resolve correctly.

Notes

ModelChangeTracker currently has no Session reference, so wiring the refetch in means widening its
construction. This is Client-side work and was deliberately kept out of the Server-side PR #4094.

Raised from review feedback on PR #4094.

Metadata

Metadata

Assignees

Labels

enhancementAPI or feature enhancement

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions