luoluoyuyu commented on PR #18496:
URL: https://github.com/apache/iotdb/pull/18496#issuecomment-5350157791
Thanks for addressing the DataNode startup failure when a Pipe plugin JAR is
unavailable. Allowing the node to start in a degraded state is reasonable, but
I see two issues that should be addressed before merging.
1. A single missing JAR can disable the entire batch
getPipePluginJar fails the whole request when any requested JAR is
unavailable. In that case, this implementation marks every plugin in
pipePluginMetaList as unavailable:
markPipePluginLoadFailures(pipePluginMetaList, exception);
unavailablePipePluginNameSet.addAll(pluginNameList);
Since one RPC can contain up to 10 JARs, one missing JAR may incorrectly
prevent up to nine healthy plugins from being registered.
Could we retry the failed batch individually, or recursively split it, so
that only the plugins whose JARs are actually unavailable are marked as failed?
2. The new user-facing messages need to use the i18n message classes
The new String.format and logger templates are user/operator-visible English
literals, for example:
"%s Plugins: %s, jars: %s, status: %s"
"{} Failed to save jar {} for pipe plugin {}."
According to the repository’s i18n convention, these should be complete
constants in both the English and Chinese DataNodePipeMessages classes, with
matching placeholders.
It would also be useful to add focused tests covering:
one unavailable JAR alongside healthy JARs in the same batch;
an unsuccessful or malformed ConfigNode response;
a JAR-count mismatch;
failure to save one JAR without affecting subsequent JARs;
the plugin-level failure information exposed through SHOW PIPEPLUGINS.
One additional operational consideration: after startup, an unavailable
plugin does not appear to be retried automatically when its JAR becomes
available again. If recovery requires restarting the DataNode, that behavior
should at least be documented.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]