[
https://issues.apache.org/jira/browse/SOLR-8599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15157834#comment-15157834
]
Uwe Schindler edited comment on SOLR-8599 at 2/22/16 10:32 PM:
---------------------------------------------------------------
Hi,
please don't write tests that rely on DNS failures. Every local provider does
something else, but not all return a correct "not found". Unless we have a
"mock DNS server", we cannot use any DNS in Solr tests. For similar reasons we
also do not use "localhost" as hostname, but instead use 127.0.0.1 as IP
address.
To have some broken address that always fails to connect to, use an IPv6
address that is standardized to be routed nowhere and already refused by the
Hosts's IPv6 stack. According to spec one possible address is:
{{http://[ff01::114]:anyport/}}
As example look at SolrExceptionTest.java
FYI, {{ff01::}} is the address range for local Multicast addresses, but only
{{::1}} (all local nodes) and {{::2}} (all routers) are allowed in IPv6
networks. {{ff01::114}} is plain invalid and refused by host's TCP stack for
using in TCP connections. So it is guaranteed to fail.
was (Author: thetaphi):
Hi,
please don't write tests that rely on DNS failures. Every local provider does
something else, but not all return a correct "not found". Unless we have a
"mock DNS server", we cannot use any DNS in Solr tests. For similar reasons we
also do not use "localhost" as hostname, but instead use 127.0.0.1 as IP
address.
To have some broken address that always fails to connect to, use an IPv6
address that is standardized to be routed nowhere and already refused by the
Hosts's IPv6 stack. According to spec one possible address is:
{{http://[ff01::114]:anyport/}}
As example look at SolrExceptionTest.java
FYI, {{ff01::}} is the address range for Multicast addresses, but only {{::1}}
(all local nodes) and {{::2}} (all routers) are allowed in IPv6 networks.
{{ff01::114}} is plain invalid and refused by host's TCP stack for using in TCP
connections. So it is guaranteed to fail.
> Errors in construction of SolrZooKeeper cause Solr to go into an inconsistent
> state
> -----------------------------------------------------------------------------------
>
> Key: SOLR-8599
> URL: https://issues.apache.org/jira/browse/SOLR-8599
> Project: Solr
> Issue Type: Bug
> Components: SolrCloud
> Reporter: Keith Laban
> Attachments: SOLR-8599.patch, SOLR-8599.patch
>
>
> We originally saw this happen due to a DNS exception (see stack trace below).
> Although any exception thrown in the constructor of SolrZooKeeper or the
> parent class, ZooKeeper, will cause DefaultConnectionStrategy to fail to
> update the zookeeper client. Once it gets into this state, it will not try to
> connect again until the process is restarted. The node itself will also
> respond successfully to query requests, but not to update requests.
> Two things should be address here:
> 1) Fix the error handling and issue some number of retries
> 2) If we are stuck in a state like this stop responding to all requests
> {code}
> 2016-01-23 13:49:20.222 ERROR ConnectionManager [main-EventThread] -
> :java.net.UnknownHostException: HOSTNAME: unknown error
> at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
> at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
> at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
> at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
> at java.net.InetAddress.getAllByName(InetAddress.java:1192)
> at java.net.InetAddress.getAllByName(InetAddress.java:1126)
> at
> org.apache.zookeeper.client.StaticHostProvider.<init>(StaticHostProvider.java:61)
> at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:445)
> at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:380)
> at org.apache.solr.common.cloud.SolrZooKeeper.<init>(SolrZooKeeper.java:41)
> at
> org.apache.solr.common.cloud.DefaultConnectionStrategy.reconnect(DefaultConnectionStrategy.java:53)
> at
> org.apache.solr.common.cloud.ConnectionManager.process(ConnectionManager.java:132)
> at
> org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:522)
> at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498)
> 2016-01-23 13:49:20.222 INFO ConnectionManager [main-EventThread] -
> Connected:false
> 2016-01-23 13:49:20.222 INFO ClientCnxn [main-EventThread] - EventThread shut
> down
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]