Hi
    I deployed a solr cluster,the code version is
"NightlyBuilds apache-solr-4.0-2012-03-19_09-25-37".
    Cluster  has 4 nodes named  "A",  "B", "C", "D",  "num_shards=2", A and
C in shard1 ,  B and D in shard2, A and B is the leader of their shard.  It
has ran 2 days, added 20m docs, all of then are OK, but after this ,C
occured a Exception "org.apache.lucene.store.AlreadyClosedException: this
IndexWriter is closed", and jetty on C was not down, node C  exist in
zookeeper in "/live_nodes".   In this time, The A try to ask C to recover,
 but C can't an response,  so A get a Exception, the log is:

<D0><C5>Ϣ: try and ask http://node23:8983/solr to recover
<CB><C4><D4><C2> 04, 2012 8:02:36 <CF><C2><CE><E7>
org.apache.solr.update.processor.DistributedUpdateProcessor doFinish
<D0><C5>Ϣ: try and ask http://node23:8983/solr to recover
<CB><C4><D4><C2> 04, 2012 8:02:36 <CF><C2><CE><E7>
org.apache.solr.update.processor.DistributedUpdateProcessor doFinish
<D0><C5>Ϣ: Could not tell a replica to recover
org.apache.solr.client.solrj.SolrServerException: http://node23:8983/solr
        at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:496)
        at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:251)
        at
org.apache.solr.update.processor.DistributedUpdateProcessor.doFinish(DistributedUpdateProcessor.java:347)
        at
org.apache.solr.update.processor.DistributedUpdateProcessor.finish(DistributedUpdateProcessor.java:816)
        at
org.apache.solr.update.processor.LogUpdateProcessor.finish(LogUpdateProcessorFactory.java:176)
        at
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
        at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1549)
        at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:441)
        at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:262)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337)
        at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
        at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:499)
        at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
        at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
        at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
        at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
        at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
        at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
        at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
        at org.eclipse.jetty.server.Server.handle(Server.java:351)
        at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
        at
org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47)
        at
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:900)
        at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:954)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:952)
        at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at
org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66)
        at
org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:254)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.ConnectException: <BE>ܾ<F8><C1><AC><BD><D3>
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
        at java.net.Socket.connect(Socket.java:579)
        at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140)
        at
org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:125)
        at
org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
        at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
        at
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
        at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
        at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:426)
        ... 34 more

    There are 2400 lines log as above at 8:02:36 in 1 second, and it is not
over until I shut down the C's  jetty  server. The important is the client
can 't add any document  to cluster in this time, it will recover after C
server shutdown also.
    /clusterstate.json data in zookeeper is:
{"mblog":{
    "shard1":{
      "A:8983_solr_mblog":{
        "shard":"shard1",
        "leader":"true",
        "state":"active",
        "core":"mblog",
        "collection":"mblog",
        "node_name":"A:8983_solr",
        "base_url":"http://A:8983/solr"},
      "C:8983_solr_mblog":{
        "shard":"shard1",
        "state":"recovering",
        "core":"mblog",
        "collection":"mblog",
        "node_name":"C:8983_solr",
        "base_url":"http://C:8983/solr"}},
    "shard2":{
      "B:8983_solr_mblog":{
        "shard":"shard2",
        "state":"active",
        "leader":"true",
        "core":"mblog",
        "collection":"mblog",
        "node_name":"B:8983_solr",
        "base_url":"http://B:8983/solr"},
      "D:8983_solr_mblog":{
        "shard":"shard2",
        "state":"active",
        "core":"mblog",
        "collection":"mblog",
        "node_name":"D:8983_solr",
        "base_url":"http://D:8983/solr"}}}}


    The last question is how to config the solr_cluster.properties file and
excute the Cluster Admin Commands described in
http://wiki.apache.org/solr/NewSolrCloudDesign ?

Reply via email to