Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Cannot Reproduce
-
4.6, 4.6.1
-
None
-
None
-
One collection, one shard, two replica
Description
The server log:
Error while calling watcher
java.lang.StackOverflowError
at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3366)
at java.util.regex.Pattern$Curly.match(Pattern.java:3737)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
at java.util.regex.Pattern$Slice.match(Pattern.java:3482)
at java.util.regex.Pattern$Curly.match1(Pattern.java:3797)
at java.util.regex.Pattern$Curly.match(Pattern.java:3746)
at java.util.regex.Pattern$Ques.match(Pattern.java:3691)
at java.util.regex.Pattern$Curly.match1(Pattern.java:3797)
at java.util.regex.Pattern$Curly.match(Pattern.java:3746)
at java.util.regex.Matcher.match(Matcher.java:1127)
at java.util.regex.Matcher.matches(Matcher.java:502)
at org.apache.solr.cloud.LeaderElector.getSeq(LeaderElector.java:167)
at org.apache.solr.cloud.LeaderElector.joinElection(LeaderElector.java:265)
at org.apache.solr.cloud.ShardLeaderElectionContext.rejoinLeaderElection(ElectionContext.java:383)
at org.apache.solr.cloud.ShardLeaderElectionContext.runLeaderProcess(ElectionContext.java:173)
at org.apache.solr.cloud.LeaderElector.runIamLeaderProcess(LeaderElector.java:156)
at org.apache.solr.cloud.LeaderElector.checkIfIamLeader(LeaderElector.java:100)
at org.apache.solr.cloud.LeaderElector.joinElection(LeaderElector.java:266)
at org.apache.solr.cloud.ShardLeaderElectionContext.rejoinLeaderElection(ElectionContext.java:383)
at org.apache.solr.cloud.ShardLeaderElectionContext.runLeaderProcess(ElectionContext.java:173)
at org.apache.solr.cloud.LeaderElector.runIamLeaderProcess(LeaderElector.java:156)
at org.apache.solr.cloud.LeaderElector.checkIfIamLeader(LeaderElector.java:100)
at org.apache.solr.cloud.LeaderElector.joinElection(LeaderElector.java:266)
at org.apache.solr.cloud.ShardLeaderElectionContext.rejoinLeaderElection(ElectionContext.java:383)
If one of replica miss connection with zookeeper, the other happen in the recovery status.(I don't know how to happen this.)
Replica rejoin the leader elect, and it is leader (only him).. check self shouldIBeLeader it is recovery status, cancel the election(do recovery), and rejoin the leader election again. It is InfiniteLoop, at last StackOverFlow, also create the many threads to do recovery..