Return-Path: X-Original-To: apmail-lucene-dev-archive@www.apache.org Delivered-To: apmail-lucene-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 61C921020D for ; Mon, 30 Dec 2013 16:18:49 +0000 (UTC) Received: (qmail 65409 invoked by uid 500); 30 Dec 2013 16:18:05 -0000 Delivered-To: apmail-lucene-dev-archive@lucene.apache.org Received: (qmail 65292 invoked by uid 500); 30 Dec 2013 16:17:57 -0000 Mailing-List: contact dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list dev@lucene.apache.org Received: (qmail 65267 invoked by uid 99); 30 Dec 2013 16:17:52 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Dec 2013 16:17:52 +0000 Date: Mon, 30 Dec 2013 16:17:52 +0000 (UTC) From: "Noble Paul (JIRA)" To: dev@lucene.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (SOLR-5580) NPE when create a core with both explicite shard and coreNodeName MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/SOLR-5580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13858900#comment-13858900 ] Noble Paul commented on SOLR-5580: ---------------------------------- bq.It's just a matter of opinion .... Yes, you are right. the point is , I think people don't really have to think that replicas have a name , they just need to have enough replicas for a given slice. bq.I don't believe that - it should be fine to still have a command that removes a replica from the clusterstate. The problem is that, If I removed a replica from clusterstate and then the core came up, What is the desired behavior? register the core or unload the core? bq.Then perhaps they should not be implemented and this energy is better spent working towards a fully functional Collections API. SOLR-5310 is a step towards a fully functional collections API. The use case is, A node went down and I don't need to replace it with another node because I have enough replicas. Now I need to clean up the clusterstate .Currently there is no way to achieve it bq.uh...yes it is used... I',m sorry, I meant it is not used anywhere BY THE USER My intent was not to break backcompat . But it happened because I didn't know this particular usecase.Let us see what is the best solution for this? Let us answer a few questions to ourselves * If we are designing the system today which way would you choose? a deletereplica API or a create core API to 'replace' a core * implement deletereplica API , but make the clusterstate slightly ugly for backward compatibility > NPE when create a core with both explicite shard and coreNodeName > ------------------------------------------------------------------ > > 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: dev-unsubscribe@lucene.apache.org For additional commands, e-mail: dev-help@lucene.apache.org