[ https://issues.apache.org/jira/browse/SOLR-15549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17383417#comment-17383417 ]
Houston Putman commented on SOLR-15549: --------------------------------------- I should note the difference between the PR for {{branch_8x}} and {{main}}. h2. {{branch_8x}} This changes the check in {{ZkStateReader}} from just checking for {{/clusterstate.json}} to looking for either {{/clusterstate.json}} or {{/collections}}. This will allow for users to use the 8.10 SolrJ APIs for 9.x Clouds. h2. {{main}} This adds a better error message in {{ZkStateReader}}, that lets the user know why the ZK Node is not hosting a SolrCloud, i.e. which ZNode is missing (usually {{/aliases.json}}). The implementation here had already been improved to not checking for individual paths, but capturing {{KeeperException.NoNodeExceptions}} and turning them into more user-usuably {{SolrExceptions}} . I also am using this PR to forward-port the ChangeLog entry. > Old SolrJ implementations (8.x) are incompatible with 9.0 Clouds > ---------------------------------------------------------------- > > Key: SOLR-15549 > URL: https://issues.apache.org/jira/browse/SOLR-15549 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrJ > Affects Versions: 8.0 > Reporter: Houston Putman > Assignee: Houston Putman > Priority: Major > Time Spent: 20m > Remaining Estimate: 0h > > The {{ZkStateReader}} in 8.x (and previous versions) checks that a > {{/clusterstate.json}} node exists in the ZK ChRoot, to ensure that the > ChRoot hosts a Solr Cloud. However, starting in 9.0, {{/clusterstate.json}} > has been removed, and it is auto-deleted if a user tries to create one. > That means that the ZkStateReader from SolrJ 8.x will error when trying to > connect with a Solr 9 cloud, with the message: > {quote}Cannot connect to cluster at localhost:2181/: cluster not found/not > ready > {quote} > The solution, is to have the ZK State Reader check both > {{/clusterstate.json}} and {{/collections}} and only error if both are > missing. {{/clusterstate.json}} is long-deprecated in 8.x anyways, so adding > this additional check is good practice in general. > While it would be nice for every user to use the same SolrJ version as the > version they are running for Solr, it can be difficult in practice, > especially when upgrading major Solr versions. It would be preferable to > support at least version + 1 clouds in SolrJ, for the purpose of upgrades. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org