<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.1</li>
<li>Operating System version: windows 7</li>
<li>Java version: 1.8</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<ol dir="auto">
<li>start 2 provders, and 1 consumer consumes providers.</li>
<li>stop one of the providers.</li>
<li>consumer errors, consumer will reconnect the offline provider.</li>
</ol>
<p dir="auto">Pls. provide [GitHub address] to reproduce this issue.</p>
<h3 dir="auto">Expected Result</h3>
<p dir="auto">What do you expected from the above steps？</p>
<h3 dir="auto">Actual Result</h3>
<p dir="auto">What actually happens?<br>
when the Peovider stopped, the ReconnectTimerTask should be destroyed.</p>
<p dir="auto">If there is an exception, please attach the exception trace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="dubbo-client-idleCheck-thread-1 ERROR header.ReconnectTimerTask:  [DUBBO] Fail to connect to HeaderExchangeClient [channel=org.apache.dubbo.remoting.transport.netty4.NettyClient [172.23.66.113:0 -&gt; /172.23.66.113:20880]], dubbo version: 2.7.1, current host: 172.23.66.113
org.apache.dubbo.remoting.RemotingException: client(url: dubbo://172.23.66.113:20880/com.oppo.provider.DemoService?anyhost=true&amp;application=sample-consumer&amp;bean.name=com.oppo.provider.DemoService&amp;category=providers&amp;check=false&amp;codec=dubbo&amp;default.deprecated=false&amp;default.dynamic=false&amp;default.lazy=false&amp;default.register=true&amp;default.sticky=false&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=false&amp;generic=false&amp;heartbeat=60000&amp;interface=com.oppo.provider.DemoService&amp;lazy=false&amp;methods=sayHello&amp;pid=15396&amp;protocol=dubbo&amp;register=true&amp;register.ip=172.23.66.113&amp;release=2.7.1&amp;remote.application=sample-provider&amp;remote.timestamp=1561346085864&amp;side=consumer&amp;sticky=false&amp;timeout=3000&amp;timestamp=1561431358005) failed to connect to server /172.23.66.113:20880, error message is:Connection refused: no further information: /172.23.66.113:20880
	at org.apache.dubbo.remoting.transport.netty4.NettyClient.doConnect(NettyClient.java:131)
	at org.apache.dubbo.remoting.transport.AbstractClient.connect(AbstractClient.java:186)
	at org.apache.dubbo.remoting.transport.AbstractClient.reconnect(AbstractClient.java:242)
	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.reconnect(HeaderExchangeClient.java:152)
	at org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask.doTask(ReconnectTimerTask.java:49)
	at org.apache.dubbo.remoting.exchange.support.header.AbstractTimerTask.run(AbstractTimerTask.java:87)
	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:648)
	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:727)
	at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:44
9)
	at java.lang.Thread.run(Thread.java:748)
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /172.23.66.113:20880
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:325)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:635)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:582)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:461)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	... 1 more
Caused by: java.net.ConnectException: Connection refused: no further information
	... 11 more"><pre class="notranslate"><code class="notranslate">dubbo-client-idleCheck-thread-1 ERROR header.ReconnectTimerTask:  [DUBBO] Fail to connect to HeaderExchangeClient [channel=org.apache.dubbo.remoting.transport.netty4.NettyClient [172.23.66.113:0 -&gt; /172.23.66.113:20880]], dubbo version: 2.7.1, current host: 172.23.66.113
org.apache.dubbo.remoting.RemotingException: client(url: dubbo://172.23.66.113:20880/com.oppo.provider.DemoService?anyhost=true&amp;application=sample-consumer&amp;bean.name=com.oppo.provider.DemoService&amp;category=providers&amp;check=false&amp;codec=dubbo&amp;default.deprecated=false&amp;default.dynamic=false&amp;default.lazy=false&amp;default.register=true&amp;default.sticky=false&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=false&amp;generic=false&amp;heartbeat=60000&amp;interface=com.oppo.provider.DemoService&amp;lazy=false&amp;methods=sayHello&amp;pid=15396&amp;protocol=dubbo&amp;register=true&amp;register.ip=172.23.66.113&amp;release=2.7.1&amp;remote.application=sample-provider&amp;remote.timestamp=1561346085864&amp;side=consumer&amp;sticky=false&amp;timeout=3000&amp;timestamp=1561431358005) failed to connect to server /172.23.66.113:20880, error message is:Connection refused: no further information: /172.23.66.113:20880
	at org.apache.dubbo.remoting.transport.netty4.NettyClient.doConnect(NettyClient.java:131)
	at org.apache.dubbo.remoting.transport.AbstractClient.connect(AbstractClient.java:186)
	at org.apache.dubbo.remoting.transport.AbstractClient.reconnect(AbstractClient.java:242)
	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.reconnect(HeaderExchangeClient.java:152)
	at org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask.doTask(ReconnectTimerTask.java:49)
	at org.apache.dubbo.remoting.exchange.support.header.AbstractTimerTask.run(AbstractTimerTask.java:87)
	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:648)
	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:727)
	at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:44
9)
	at java.lang.Thread.run(Thread.java:748)
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /172.23.66.113:20880
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:325)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:635)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:582)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:461)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	... 1 more
Caused by: java.net.ConnectException: Connection refused: no further information
	... 11 more
</code></pre></div>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.4.1</li>
<li>Java version: 1.8</li>
</ul>
<h3 dir="auto">Actual Result</h3>
<p dir="auto"></p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/apache/dubbo/blob/f89a1a8dadb419a06494433ed53b9a35f69c36dc/dubbo-common/src/main/java/org/apache/dubbo/common/utils/NetUtils.java#L497">dubbo/dubbo-common/src/main/java/org/apache/dubbo/common/utils/NetUtils.java</a>
    </p>
    <p class="mb-0 color-fg-muted">
         Line 497
      in
      <a data-pjax="true" class="commit-tease-sha" href="/apache/dubbo/commit/f89a1a8dadb419a06494433ed53b9a35f69c36dc">f89a1a8</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L497" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="497"></td>
          <td id="LC497" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">IllegalArgumentException</span>(<span class="pl-s">"If you config ip expression that contains '*' or '-', please fill qulified ip pattern like 234e:0:4567:0:0:0:3d:*. "</span>); </td>
        </tr>
    </tbody></table>
  </div>
</div>
<p></p>
<p dir="auto"></p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/apache/dubbo/blob/f89a1a8dadb419a06494433ed53b9a35f69c36dc/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java#L1207">dubbo/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java</a>
    </p>
    <p class="mb-0 color-fg-muted">
         Line 1207
      in
      <a data-pjax="true" class="commit-tease-sha" href="/apache/dubbo/commit/f89a1a8dadb419a06494433ed53b9a35f69c36dc">f89a1a8</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L1207" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="1207"></td>
          <td id="LC1207" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-c">     * Find the hierarchical types form the source {@link Class class} by specified {@link Class type}.</span> </td>
        </tr>
    </tbody></table>
  </div>
</div>
<p></p>
<h3 dir="auto">Expected Result</h3>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="qulified  ==&gt; qualified

form ==&gt; from"><pre class="notranslate"><code class="notranslate">qulified  ==&gt; qualified

form ==&gt; from
</code></pre></div>