- [X] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [X] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.0
* Operating System version: Mac OS
* Java version: 1.8

### Steps to reproduce this issue

Sometimes, I failed to run ConfigTest#testDubboProtocolPortOverride

### Expected Result

All testcases run successfully

### Actual Result
An exception orrcurred as follows

```
[ERROR] Errors: 
[ERROR]   ConfigTest.testDubboProtocolPortOverride:1022 » Rpc Fail to start server(url: ...
[INFO] 
[ERROR] Tests run: 116, Failures: 0, Errors: 1, Skipped: 28
```

```java
[07/05/21 14:37:25:260 CST] main  INFO logger.LoggerFactory: using logger: org.apache.dubbo.common.logger.log4j.Log4jLoggerAdapter
[07/05/21 14:37:25:866 CST] main  INFO bootstrap.DubboBootstrap:  [DUBBO] No value is configured in the registry, the DynamicConfigurationFactory extension[name : null] does not support as the config center, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:25:869 CST] main  INFO bootstrap.DubboBootstrap:  [DUBBO] The registry[<dubbo:registry address="N/A" port="0" />] will be not used as the config center, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:25:998 CST] main  INFO utils.ConfigValidationUtils:  [DUBBO] There's no valid monitor config found, if you want to open monitor statistics for Dubbo, please make sure your monitor is configured properly., dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:017 CST] main  INFO bootstrap.DubboBootstrap:  [DUBBO] No value is configured in the registry, the MetadataReportFactory extension[name : null] does not support as the metadata center, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:019 CST] main  INFO bootstrap.DubboBootstrap:  [DUBBO] The registry[<dubbo:registry address="N/A" port="0" />] will be not used as the metadata center, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:031 CST] main  INFO bootstrap.DubboBootstrap:  [DUBBO] DubboBootstrap has been initialized!, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:031 CST] main  INFO bootstrap.DubboBootstrap:  [DUBBO] DubboBootstrap is starting..., dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:204 CST] main  INFO config.ServiceConfig:  [DUBBO] Export dubbo service org.apache.dubbo.config.spring.api.DemoService to local registry url : injvm://127.0.0.1/org.apache.dubbo.config.spring.api.DemoService?anyhost=true&application=dubbo-protocol-port-override&bind.ip=10.38.233.86&bind.port=55555&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=org.apache.dubbo.config.spring.api.DemoService&methods=sayName,getBox&pid=23005&release=&side=provider&timestamp=1620369446048, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:205 CST] main  INFO config.ServiceConfig:  [DUBBO] Export dubbo service org.apache.dubbo.config.spring.api.DemoService to url dubbo://10.38.233.86:55555/org.apache.dubbo.config.spring.api.DemoService?anyhost=true&application=dubbo-protocol-port-override&bind.ip=10.38.233.86&bind.port=55555&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=org.apache.dubbo.config.spring.api.DemoService&methods=sayName,getBox&pid=23005&release=&side=provider&timestamp=1620369446048, dubbo version: , current host: 10.38.233.86
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
14:37:26.340 [main] DEBUG io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
14:37:26.352 [main] DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 16
14:37:26.367 [main] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
14:37:26.367 [main] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
14:37:26.374 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
14:37:26.374 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
14:37:26.397 [main] DEBUG io.netty.util.internal.PlatformDependent - Platform: MacOS
14:37:26.398 [main] DEBUG io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
14:37:26.398 [main] DEBUG io.netty.util.internal.PlatformDependent0 - Java version: 8
14:37:26.399 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
14:37:26.400 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
14:37:26.401 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
14:37:26.401 [main] DEBUG io.netty.util.internal.PlatformDependent0 - direct buffer constructor: available
14:37:26.402 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
14:37:26.402 [main] DEBUG io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable prior to Java9
14:37:26.402 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, int): available
14:37:26.402 [main] DEBUG io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
14:37:26.402 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/qb/c5lkt6s932s1v2gvx702sqx40000gp/T (java.io.tmpdir)
14:37:26.402 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
14:37:26.404 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: 3817865216 bytes
14:37:26.404 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
14:37:26.405 [main] DEBUG io.netty.util.internal.CleanerJava6 - java.nio.ByteBuffer.cleaner(): available
14:37:26.405 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
14:37:26.415 [main] DEBUG io.netty.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
14:37:26.454 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
14:37:26.454 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
14:37:26.458 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 16
14:37:26.458 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 16
14:37:26.458 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
14:37:26.458 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
14:37:26.458 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
14:37:26.458 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
14:37:26.458 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
14:37:26.459 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
14:37:26.459 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
14:37:26.459 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
14:37:26.459 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: true
14:37:26.459 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
14:37:26.488 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 23005 (auto-detected)
14:37:26.489 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv4Stack: false
14:37:26.489 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv6Addresses: false
14:37:26.491 [main] DEBUG io.netty.util.NetUtilInitializations - Loopback interface: lo0 (lo0, 0:0:0:0:0:0:0:1%lo0)
14:37:26.492 [main] DEBUG io.netty.util.NetUtil - Failed to get SOMAXCONN from sysctl and file /proc/sys/net/core/somaxconn. Default: 128
14:37:26.495 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: a0:78:17:ff:fe:62:c4:0d (auto-detected)
14:37:26.517 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: pooled
14:37:26.517 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 0
14:37:26.518 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
[07/05/21 14:37:26:561 CST] main  INFO support.AbstractRegistryFactory:  [DUBBO] Close all registries [], dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:561 CST] main  INFO dubbo.DubboProtocol:  [DUBBO] Unexport service: dubbo://10.38.233.86:55555/org.apache.dubbo.config.spring.api.DemoService?anyhost=true&application=dubbo-protocol-port-override&bind.ip=10.38.233.86&bind.port=55555&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=org.apache.dubbo.config.spring.api.DemoService&methods=sayName,getBox&pid=23005&release=&side=provider&timestamp=1620369446048, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:561 CST] main  INFO injvm.InjvmProtocol:  [DUBBO] Unexport service: injvm://127.0.0.1/org.apache.dubbo.config.spring.api.DemoService?anyhost=true&application=dubbo-protocol-port-override&bind.ip=10.38.233.86&bind.port=55555&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=org.apache.dubbo.config.spring.api.DemoService&methods=sayName,getBox&pid=23005&release=&side=provider&timestamp=1620369446048, dubbo version: , current host: 10.38.233.86
[07/05/21 14:37:26:568 CST] main  INFO bootstrap.DubboBootstrap:  [DUBBO] DubboBootstrap is about to shutdown..., dubbo version: , current host: 10.38.233.86

org.apache.dubbo.rpc.RpcException: Fail to start server(url: dubbo://10.38.233.86:55555/org.apache.dubbo.config.spring.api.DemoService?anyhost=true&application=dubbo-protocol-port-override&bind.ip=10.38.233.86&bind.port=55555&channel.readonly.sent=true&codec=dubbo&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&heartbeat=60000&interface=org.apache.dubbo.config.spring.api.DemoService&methods=sayName,getBox&pid=23005&release=&side=provider&timestamp=1620369446048) Failed to bind NettyServer on /10.38.233.86:55555, cause: Address already in use

	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol.createServer(DubboProtocol.java:348)
	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol.openServer(DubboProtocol.java:320)
	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol.export(DubboProtocol.java:303)
	at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:66)
	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:62)
	at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
	at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:518)
	at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:338)
	at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:312)
	at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:214)
	at org.apache.dubbo.config.bootstrap.DubboBootstrap.lambda$exportServices$12(DubboBootstrap.java:1106)
	at java.util.HashMap$Values.forEach(HashMap.java:981)
	at org.apache.dubbo.config.bootstrap.DubboBootstrap.exportServices(DubboBootstrap.java:1093)
	at org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:908)
	at org.apache.dubbo.config.spring.ConfigTest.testDubboProtocolPortOverride(ConfigTest.java:1022)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:205)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:201)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
	at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
	at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)
	at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
Caused by: org.apache.dubbo.remoting.RemotingException: Failed to bind NettyServer on /10.38.233.86:55555, cause: Address already in use
	at org.apache.dubbo.remoting.transport.AbstractServer.<init>(AbstractServer.java:77)
	at org.apache.dubbo.remoting.transport.netty4.NettyServer.<init>(NettyServer.java:77)
	at org.apache.dubbo.remoting.transport.netty4.NettyTransporter.bind(NettyTransporter.java:35)
	at org.apache.dubbo.remoting.Transporter$Adaptive.bind(Transporter$Adaptive.java)
	at org.apache.dubbo.remoting.Transporters.bind(Transporters.java:56)
	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchanger.bind(HeaderExchanger.java:44)
	at org.apache.dubbo.remoting.exchange.Exchangers.bind(Exchangers.java:70)
	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol.createServer(DubboProtocol.java:346)
	... 77 more
Caused by: java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(Native Method)
	at sun.nio.ch.Net.bind(Net.java:444)
	at sun.nio.ch.Net.bind(Net.java:436)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:225)
	at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:550)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
	at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
	at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
	at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
	at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:248)
	at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.lang.Thread.run(Thread.java:748)
```
application.setName("test-protocol-random-port");
        RegistryConfig registry = new RegistryConfig();
        registry.setAddress("N/A");
        ProtocolConfig protocol = new ProtocolConfig();
        protocol.setName("dubbo");
        protocol.setPort(-1);
        demoService = new ServiceConfig<DemoService>();
        demoService.setInterface(DemoService.class);
        demoService.setRef(new DemoServiceImpl());
        demoService.setApplication(application);
        demoService.setRegistry(registry);
        demoService.setProtocol(protocol);
        helloService = new ServiceConfig<HelloService>();
        helloService.setInterface(HelloService.class);
        helloService.setRef(new HelloServiceImpl());
        helloService.setApplication(application);
        helloService.setRegistry(registry);
        helloService.setProtocol(protocol);
        DubboBootstrap bootstrap = DubboBootstrap.getInstance()
                .application(application)
                .registry(registry)
                .protocol(protocol)
                .service(demoService)
                .service(helloService);
        try {
            bootstrap.start();
            assertEquals(demoService.getExportedUrls().get(0).getPort(),
                    helloService.getExportedUrls().get(0).getPort());
        } finally {
            bootstrap.stop();