AlbinChang opened a new issue, #14445:
URL: https://github.com/apache/dubbo/issues/14445

   ### Pre-check
   
   - [X] I am sure that all the content I provide is in English.
   
   
   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no 
similar issues.
   
   
   ### Apache Dubbo Component
   
   Java SDK (apache/dubbo)
   
   ### Dubbo Version
   
   3.2.14
   
   ### Steps to reproduce this issue
   
   my test code
   client code
   `/*
    * Licensed to the Apache Software Foundation (ASF) under one or more
    * contributor license agreements.  See the NOTICE file distributed with
    * this work for additional information regarding copyright ownership.
    * The ASF licenses this file to You under the Apache License, Version 2.0
    * (the "License"); you may not use this file except in compliance with
    * the License.  You may obtain a copy of the License at
    *
    *     http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
   
   package org.example.client;
   
   import org.apache.dubbo.config.ApplicationConfig;
   import org.apache.dubbo.config.ConsumerConfig;
   import org.apache.dubbo.config.MethodConfig;
   import org.apache.dubbo.config.ReferenceConfig;
   import org.apache.dubbo.config.bootstrap.DubboBootstrap;
   import org.apache.dubbo.config.bootstrap.builders.ReferenceBuilder;
   import org.apache.dubbo.remoting.Constants;
   import org.apache.dubbo.rpc.FutureContext;
   import org.example.api.GreetingsService;
   
   import java.io.IOException;
   import java.util.concurrent.*;
   
   public class Application {
   
       private static final ExecutorService worker = 
Executors.newFixedThreadPool(1, (r) ->{
           Thread thread = new Thread(r);
           thread.setName("worker-" + thread.getId());
           return thread;
       } );
   
       private static final ExecutorService printer = 
Executors.newFixedThreadPool(1, (r) ->{
           Thread thread = new Thread(r);
           thread.setName("printer-"+thread.getId());
           return thread;
       });
   
       public static void main(String[] args) throws IOException, 
InterruptedException {
   
           ApplicationConfig application = new ApplicationConfig();
           application.setName("client");
   
   
           int requests = args.length > 0 ? Integer.parseInt(args[0]) : 100000;
           String ip = args.length > 1 ? args[1] : "localhost";
   
           MethodConfig methodConfig = new MethodConfig();
           methodConfig.setName("sayHi");
           methodConfig.setAsync(true);
           methodConfig.setTimeout(1000000);
   
           MethodConfig resetMethodConfig = new MethodConfig();
           resetMethodConfig.setName("reset");
           resetMethodConfig.setAsync(false);
   
           ConsumerConfig consumerConfig = new ConsumerConfig();
           consumerConfig.setCorethreads(1);
           consumerConfig.setQueues(10000000);
           consumerConfig.setTimeout(1000000);
           consumerConfig.setThreads(1);
   
           ReferenceConfig<GreetingsService> reference =
                   ReferenceBuilder.<GreetingsService>newBuilder()
                   .interfaceClass(GreetingsService.class)
                   .url("tri://"+ip+":50052")
                           .addMethod( methodConfig )
                           .addMethod( resetMethodConfig )
                           .consumer(consumerConfig)
                           .appendParameter(Constants.CONNECT_TIMEOUT_KEY, 
"1000000")
                   .build();
           DubboBootstrap.getInstance()
                   .application(application)
                   .reference(reference)
                   .start();
           GreetingsService service = reference.get();
   
           service.reset(); //同步调用,重置服务端的计数器为0
   
           CountDownLatch latch = new CountDownLatch(requests); // 
创建一个计数器,用来记录请求的次数
   
   
   
           int[] count = new int[1];
           long start = System.currentTimeMillis();
   
           for (int i = 0; i < requests; i++) {
   
               service.sayHi("dubbo"); //这里的返回值为空,请不要使用
               CompletableFuture<String> future = 
FutureContext.getContext().getCompletableFuture();
               worker.submit(() -> {
                   try {
                       String s = future.get();
                       latch.countDown();
   
                       printer.submit(() -> {
   //                        if( ++count[0] % 1000 == 0 ) {
                               System.out.println("Receive result ======> " + 
s);
   //                        }
                       });
                   } catch (InterruptedException e) {
                       throw new RuntimeException(e);
                   } catch (ExecutionException e) {
                       throw new RuntimeException(e);
                   }
               });
           }
   
   
           try {
               latch.await();
           }catch (InterruptedException e)
           {
               e.printStackTrace();
           }
   
           long end = System.currentTimeMillis();
           long delta = end - start;
   
           Thread.sleep(1000);
   
           System.out.println("总计" + requests + " 次");
           System.out.println("耗时" + delta + " 毫秒");
           System.out.println("TPS: " + requests * 1000L /delta + " 次/秒");
   
           System.exit(0);
       }
   
   }
   `
   
   server code
   `/*
    * Licensed to the Apache Software Foundation (ASF) under one or more
    * contributor license agreements.  See the NOTICE file distributed with
    * this work for additional information regarding copyright ownership.
    * The ASF licenses this file to You under the Apache License, Version 2.0
    * (the "License"); you may not use this file except in compliance with
    * the License.  You may obtain a copy of the License at
    *
    *     http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
   
   package org.example.provider;
   
   import org.apache.dubbo.config.ApplicationConfig;
   import org.apache.dubbo.config.bootstrap.DubboBootstrap;
   import org.apache.dubbo.config.bootstrap.builders.ProtocolBuilder;
   import org.apache.dubbo.config.bootstrap.builders.ServiceBuilder;
   import org.example.api.GreetingsService;
   
   
   public class Application {
       public static void main(String[] args) {
   
           ApplicationConfig application = new ApplicationConfig();
           application.setName("provider");
   
   
           DubboBootstrap.getInstance()
                   .application(application)
                   .protocol(ProtocolBuilder.newBuilder()
                           .dispatcher("all")
                           .accepts(1000000)
                           .queues(1000000)
                           .threadpool("fixed")
                           .threads(1)
                           .name("tri")
                           .port(50052)
                           .build())
                   .service(
                           ServiceBuilder.newBuilder()
                                   .interfaceClass(GreetingsService.class)
                                   .ref(new GreetingsServiceImpl())
                                   .build())
                   .start()
                   .await();
       }
   }
   `
   
   api code
   `/*
    * Licensed to the Apache Software Foundation (ASF) under one or more
    * contributor license agreements.  See the NOTICE file distributed with
    * this work for additional information regarding copyright ownership.
    * The ASF licenses this file to You under the Apache License, Version 2.0
    * (the "License"); you may not use this file except in compliance with
    * the License.  You may obtain a copy of the License at
    *
    *     http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
   
   package org.example.api;
   
   public interface GreetingsService {
       String sayHi(String name);
   
       String reset();
   }
   `
   api impl code
   `/*
    * Licensed to the Apache Software Foundation (ASF) under one or more
    * contributor license agreements.  See the NOTICE file distributed with
    * this work for additional information regarding copyright ownership.
    * The ASF licenses this file to You under the Apache License, Version 2.0
    * (the "License"); you may not use this file except in compliance with
    * the License.  You may obtain a copy of the License at
    *
    *     http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
   
   package org.example.provider;
   
   
   import org.example.api.GreetingsService;
   
   public class GreetingsServiceImpl implements GreetingsService {
   
       private int count = 0;
   //    private AtomicInteger count = new AtomicInteger(0);
   
       @Override
       public String sayHi(String name) {
           return "hi, " + ++count + "次 " + name;
       }
   
       @Override
       public String reset() {
           count = 0;
           return "reset success";
       }
   
   }
   `
   
   server 192.168.253.176 startup commad
   `java -cp Dubbo3Test-1.0-SNAPSHOT.jar:./lib/* 
org.example.provider.Application -Djava.net.preferIPv4Stack=true 
-Dio.netty.leakDetectionLevel=advanced -Xmx2048m -Xms2048m`
   
   client test startup command
   ` java -Djava.net.preferIPv4Stack=true -Ddubbo.application.qos-port=33333 
-Ddubbo.application.qos-enable=false -Dio.netty.leakDetectionLevel=advanced 
-Xmx2048m -Xms2048m -cp Dubbo3Test-1.0-SNAPSHOT.jar:lib/*  
org.example.client.Application  100000 192.168.253.176
   `
   
   The VM specifications for both the client and server are 2C4G
   
   tcp settings
   `root@ubuntu01:/home/zwb# sysctl -p
   net.ipv4.tcp_rmem = 4096 832256  13320192
   net.core.rmem_default = 2129920
   net.core.rmem_max = 13320192
   net.ipv4.tcp_mem = 44379 208128 524288
   net.core.wmem_max = 13320192
   net.ipv4.tcp_wmem = 4096 832256 13320192
   `
   
   ERROR occurs on the client. Procedure
   `09:40:35.711 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.711 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.711 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   09:40:35.712 |-ERROR [DubboClientHandler-thread-1] 
ChainBuilder$CallbackRegistrationInvoker:    -|  [DUBBO] Exception occurred 
while executing the 0 filter named RpcExceptionFilter., dubbo version: 3.2.14, 
current host: 192.168.253.210, error code: 2-19. This may be caused by the 
custom filter is abnormal, go to https://dubbo.apache.org/faq/2/19 to find 
instructions. 
   `
   
   WARN occurs on the server. Procedure
   `09:40:23.588 |-INFO  [NettyServerWorker-5-1] 
ing.transport.netty4.NettyChannelHandler:56  -|  [DUBBO] The connection of 
/192.168.253.201:44932 -> /192.168.253.176:50052 is established., dubbo 
version: 3.2.14, current host: 192.168.253.193
   09:40:32.918 |-INFO  [NettyServerWorker-5-1] 
ting.transport.netty4.NettyServerHandler:93  -|  [DUBBO] The connection of 
/192.168.253.201:44932 -> /192.168.253.176:50052 is disconnected., dubbo 
version: 3.2.14, current host: 192.168.253.193
   09:40:32.919 |-WARN  [NettyServerWorker-5-1] 
.dubbo.remoting.transport.AbstractServer:    -|  [DUBBO] All clients has 
disconnected from /192.168.253.176:50052. You can graceful shutdown now., dubbo 
version: 3.2.14, current host: 192.168.253.193, error code: 99-0. This may be 
caused by unknown error in remoting module, go to 
https://dubbo.apache.org/faq/99/0 to find instructions. 
   09:40:32.925 |-INFO  [NettyServerWorker-5-1] 
ing.transport.netty4.NettyChannelHandler:72  -|  [DUBBO] The connection of 
/192.168.253.201:44932 -> /192.168.253.176:50052 is disconnected., dubbo 
version: 3.2.14, current host: 192.168.253.193
   09:40:34.988 |-INFO  [NettyServerWorker-5-2] 
ing.transport.netty4.NettyChannelHandler:56  -|  [DUBBO] The connection of 
/192.168.253.201:36978 -> /192.168.253.176:50052 is established., dubbo 
version: 3.2.14, current host: 192.168.253.193
   `
   
   
   ### What you expected to happen
   
   The client program doesn't end as expected and keeps getting stuck
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit a pull request to fix on your own?
   
   - [X] Yes I am willing to submit a pull request on my own!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to