[
https://issues.apache.org/jira/browse/SOLR-5580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13859727#comment-13859727
]
Mark Miller commented on SOLR-5580:
-----------------------------------
The NPE was just a surface bug that a user hit.
The actual bug here is:
* You cannot count on coreNodeName like SOLR-5311 - totally illegal.
* You cannot use this autoCreated property. Totally illegal in the current
system.
* Cores can stick around, and simply don't get updates into the cluster state?
A lot of ugliness around this...and...
* In general, this is a hack, half hearted attempt at making ZooKeeper the
truth.
All these issues lead to many bugs.
There are non buggy, full solutions to making ZooKeeper the truth, and if that
is what you are after, we have to do it in a way that is consistent with the
current system.
> SOLR-5311 was done without full understanding of the system and must be
> reverted.
> ---------------------------------------------------------------------------------
>
> Key: SOLR-5580
> URL: https://issues.apache.org/jira/browse/SOLR-5580
> Project: Solr
> Issue Type: Bug
> Affects Versions: 4.6
> Environment: OS:Red Hat Enterprise Linux Server release 6.4 (Santiago)
> Software:solr 4.6,
> jdk:OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)
> OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
> Reporter: YouPeng Yang
> Assignee: Mark Miller
> Labels: core
> Fix For: 5.0, 4.7, 4.6.1
>
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> In class org.apache.solr.cloud.Overseer the Line 360:
> ---------------------------------------------------------------------
> if (sliceName !=null && collectionExists &&
> !"true".equals(state.getCollection(collection).getStr("autoCreated"))) {
> Slice slice = state.getSlice(collection, sliceName);
> if (slice.getReplica(coreNodeName) == null) {
> log.info("core_deleted . Just return");
> return state;
> }
> }
> ---------------------------------------------------------------------
> the slice needs to be checked null .because when create a new core with both
> explicite shard and coreNodeName, the state.getSlice(collection, sliceName)
> may return a null.So it needs to be checked ,or there will be an
> NullpointException
> ---------------------------------------------------------------------
> if (sliceName !=null && collectionExists &&
> !"true".equals(state.getCollection(collection).getStr("autoCreated"))) {
> Slice slice = state.getSlice(collection, sliceName);
> if (slice != null && slice.getReplica(coreNodeName) == null) {
> log.info("core_deleted . Just return");
> return state;
> }
> }
> ---------------------------------------------------------------------
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]