The UI warning was quite easy to resolve. I'm currently testing Solr with HDFS but for some reason the core ended up on the local storage of the node. After a delete and restart the problem was gone.

On 05.01.2017 12:42, Hendrik Haddorp wrote:
Right, I had to do that multiple times already when I restarted nodes during collection creation. In such cases I was left with data in the clusterstate.json, which at least on 6.2.1, blocked further collection creations. Once manually deleted or set to {} collection creation worked again.

Setting legacyCloud=false looks good. I don't get anything in clusterstate.json anymore and no old collections show up after a node restarts. I could also confirm what Shalin said, that state format 2 is used by default. Only if I explicitly set state format to 1 I see data in clusterstate.json during the collection creation. Just the Solr admin UI is now showing "SolrCore Initialization Failures" pointing to none existing replicas. I assume that happens when Solr starts up and finds data for a core that does not exist in ZK anymore. How would one clean up this issue? Beside that the some replicas can still end up broken if the node restarts in the wrong time. I currently have one replica marked as down and one as gone. So far I was however always able to manually replace these replicas to resolve this state. So in general this looks quite good now. Guess I will still need to find a way to make sure that I don't restart a node during collection creation :-(

On 05.01.2017 02:33, Erick Erickson wrote:
Let us know how it goes. You'll probably want to remove the _contents_
of clusterstate.json and just leave it as a pair of brackets , i.e. {}
if for no other reason than it's confusing.

Times past the node needed to be there even if empty. Although I just
tried removing it completely on 6x and I was able to start Solr, part
of the startup process recreates it as an empty node, just a pair of
braces.

Best,
Erick

On Wed, Jan 4, 2017 at 1:22 PM, Hendrik Haddorp <hendrik.hadd...@gmx.net> wrote:
Hi Erik,

I have actually also seen that behavior already. So will check what
happens when I set that property.
I still believe I'm getting the clusterstate.json set already before the
node comes up again. But I will try to verify that further tomorrow.

thanks,
Hendrik

On 04/01/17 22:10, Erick Erickson wrote:
Hendrik:

Historically in 4.x, there was code that would reconstruct the
clusterstate.json code. So you would see "deleted" collections come
back. One scenario was:

- Have a Solr node offline that had a replica for a collection.
- Delete that collection
- Bring the node back
- It would register itself in clusterstate.json.

So my guess is that something like this is going on and you're getting
a clusterstate.json that's reconstructed (and possibly not complete).

You can avoid this by specifying legacyCloud=false clusterprop

Kind of a shot in the dark...

Erick

On Wed, Jan 4, 2017 at 11:12 AM, Hendrik Haddorp
<hendrik.hadd...@gmx.net> wrote:
You are right, the code looks like it. But why did I then see collection
data in the clusterstate.json file? If version 1 is not used I would
assume that no data ends up in there. When explicitly setting the state format 2 the system seemed to behave differently. And if the code always uses version 2 shouldn't the default in that line be changed accordingly?

On 04/01/17 16:41, Shalin Shekhar Mangar wrote:
Actually the state format defaults to 2 since many releases (all of
6.x at least). This default is enforced in CollectionsHandler much
before the code in ClusterStateMutator is executed.

On Wed, Jan 4, 2017 at 6:16 PM, Hendrik Haddorp <hendrik.hadd...@gmx.net> wrote:
Hi,

in
solr-6.3.0/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
there is the following code starting line 107:

//TODO default to 2; but need to debug why BasicDistributedZk2Test fails
early on
String znode = message.getInt(DocCollection.STATE_FORMAT, 1) == 1 ? null
         : ZkStateReader.getCollectionPath(cName);

Any if that will be changed to default to version 2 anytime soon?

thanks,
Hendrik


Reply via email to