[
https://issues.apache.org/jira/browse/CAMEL-25671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18127537#comment-18127537
]
Serdar Gökay commented on CAMEL-25671:
--------------------------------------
PR: https://github.com/apache/camel/pull/27906
The consumer now reports such a node once with Bad_NodeIdUnknown (visible with
omitNullValues=false), like a node that does not exist on the server; the other
nodes and the connection keep working. Producers (write, call, read, browse)
are not changed.
Unrelated reminder: CAMEL-25599 (merged in #27780) is still Open without a
fixVersion; 4.24.0 would be correct.
> camel-milo - a node ID with an unknown namespace URI fails the whole client
> connection
> --------------------------------------------------------------------------------------
>
> Key: CAMEL-25671
> URL: https://issues.apache.org/jira/browse/CAMEL-25671
> Project: Camel
> Issue Type: Bug
> Components: camel-milo
> Affects Versions: 4.16.0, 4.18.5, 4.22.1
> Reporter: Serdar Gökay
> Priority: Minor
>
> A {{milo-client}} consumer whose node ID uses a namespace URI ({{nsu=...}})
> that is not in the namespace table of the server takes the whole connection
> down, including the consumers of other nodes on the same connection.
> {{SubscriptionManager.lookupNamespace}} resolves the URI to an index; for an
> unknown URI the index is {{null}}, and {{NodeIds.toNodeId(null, ...)}} throws
> a {{NullPointerException}} inside the future. {{putSubscriptions}} calls
> {{get()}} on it, the exception reaches {{handleConnectionFailure}}, the
> connection is closed, and the next connect attempt fails the same way every
> reconnect period (10 s). The {{node == null}} branch that would report
> {{Bad_InvalidArgument}} for that one node is never reached.
> *Reproduction* (embedded {{milo-server}}): one consumer on
> {{nsu=urn:org:apache:camel;s=node2}} receives values. Start a second consumer
> on the same connection with {{nsu=urn:not:there;s=node1}}: the log shows
> "Connection failed java.util.concurrent.ExecutionException:
> java.lang.NullPointerException" and "Failed to set subscriptions ... Trigger
> re-connect" every 10 s, and the first consumer receives nothing any more.
> With a single-node consumer on {{main}} the behaviour is the same; with the
> {{nodes}} list of CAMEL-25566 one typo in a long list is enough to hit it.
> *Proposed change*: resolve the namespace per node and report an unresolvable
> URI once to that node's consumer as {{Bad_NodeIdInvalid}} (Milo's own status
> for "namespace not registered"), without touching the other nodes or the
> connection; retry it together with the other failed items once the
> failed-item retry is back (planned follow-up of CAMEL-25566). Found during
> the review of PR #27780 (point 3 of the review by allthingssecurity).
> _Claude Code on behalf of etzel-mes_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)