SOLR-18317: Admin UI no longer sends nodes=all in standalone mode - #5001
nick-boss-tech wants to merge 2 commits into
Conversation
|
What if we just fix the Solr Admin UI? Is Currently in the Solr Admin UI we have lots of places where we consult to decide "am I making this url with a core int he name or a collection in the name"... So understnadin that is there. I'd rather just reuse that logic and then not pass |
|
🤖 AI text below 🤖 (posted on behalf of Nick Shanin) Thanks, Eric. You were right that the caller was the real problem; my first version reached for a shared server-side change that was broader than the bug. I reworked it along the lines you suggested (latest commit f887bed):
Tests: the two proxy test classes, Happy to drop the server-side guard entirely if you would rather the API stay strict now that the UI no longer sends the parameter in standalone mode. |
|
Can we split out the Admin UI fix into a new PR? I can pretty easily test and validate your fix if it's just the Admin UI change... I'm not sure I'm ready to dig into all that proxy stuff ;-). Or drop the proxy stuff.... I don't use the Standalone mode, and I want it to go away in favour of single node SolrCloud w/ embedded ZK, so I'm not really motivated to dig into making it better (though other committers might want to!), but I'm happy to test and validate the small Admin UI fix. |
ae918a0 to
9473910
Compare
|
🤖 AI text below 🤖 (posted on behalf of Nick Shanin) Done: this PR is now narrowed to the Admin UI change only, and the description is updated to match. The server-side proxy changes are preserved on a separate branch for a later PR. Thank you for the suggestion, and for offering to validate the fix. |
🤖 AI text below 🤖 (posted on behalf of Nick Shanin)
https://issues.apache.org/jira/browse/SOLR-18317
What happens today
In standalone (user-managed) mode, the Admin UI logging page sent
nodes=allto/admin/info/logging. Standalone mode has noZkController, so the request hit a NullPointerException server-side instead of being handled sensibly. The parameter only makes sense in SolrCloud mode, where it broadcasts the logging change to all nodes.What this change does
Admin UI only. This PR previously also carried a server-side change; that part was split out at reviewer request (see Limits).
services.js: theLoggingresource factory no longer hardcodesnodes: 'all'.controllers/logging.js:LoggingLevelController.setLevelwaits forisCloudEnabledto settle (the same$watchpattern used inparamsets.js), sendsnodes: 'all'only in SolrCloud mode, and omits the parameter entirely in standalone mode.app.js: when the system-info request behind the UI mode check fails,isCloudEnablednow settles tofalseinstead of leaving the mode unresolved, so the logging page does not wait indefinitely on a failed probe.Proof
There is no JavaScript test harness for the legacy Admin UI in the build, so this change has no automated proof; that is stated plainly rather than worked around. Of the three JavaScript files,
logging.jsandservices.jsare unchanged from the earlier head of this PR; theapp.jssettle-on-failure change is new in this cut. The controller change follows the existing$watchpattern already used elsewhere in the same UI. Manual validation in a standalone instance is the check, and the reviewer has offered to do it.Limits
nodes=allcall to the logging or system-info endpoints in standalone mode still reaches the old code path. The server-side hardening that degraded such calls to the local node was split out at reviewer request and is preserved intact on the fork branchsolr-18317-server-submit, to be opened as its own PR.app.jssettle change is not local to the logging page:paramsets.jsandquery.jswatch the sameisCloudEnabledflag with the same wait-until-defined pattern. After a failed system-info probe on a SolrCloud node, those pages now proceed with thecoresindex type instead of waiting for the flag to be defined. On the logging page itself, a level change after a failed probe is sent withoutnodes=all, so in a cloud cluster it applies to the receiving node only, with no message at the click; the probe failure itself is surfaced by the error handler.nodes: 'all'was.Changelog:
changelog/unreleased/SOLR-18317.yml(fixed)AI assistance
AI agents assisted with research, implementation, review, and drafting. Nick Shanin directed the work and takes responsibility for this contribution.