apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.5k stars 26.43k forks source link

偶发的返回对象的字段全部被置空,Sometimes all field of object is null,0 or “” #5792

Closed alan1878w closed 4 years ago

alan1878w commented 4 years ago

Environment

Steps to reproduce this issue

  1. when I use redis as register center ,it occurs,when multicast no
  2. no exception,return result like this,Result{returnCode=0, msg='null', data={}}
  3. the timestamp of provider&consumer server is approximate, I set them by myself 4.In most cases,it does not happen

provider service: @Service(interfaceClass = IAccessService.class, version = "1.0.0", group = "authorize") @Component public class AccessServiceImp implements IAccessService { @Override public Result checkAccess(Byte clusterId, String userName, String ip) { Result result = new Result(); return result; } config: dubbo.application.name=dubbo-provider-authorize dubbo.registry.address=redis://root:bwda@123@192.168.2.34:6379/0

本地调试地址,有效的多播地址范围是:224.0.0.0-239.255.255.255

dubbo.registry.address=multicast://224.5.6.8:9090

dubbo.protocol.name=dubbo dubbo.protocol.port=20880

consumer method: private IAccessService accessService; @Reference(version="1.0.0",group ="authorize",timeout = 10000,check=false) Result result = new Result(); result = accessService.checkAccess(cluster.getClusterid(), userName, ip); if(Constants.PolicyAccess.ACCESS_CODE == result.getReturnCode()){

config: dubbo.application.name=dubbo-consumer-httpProxy dubbo.registry.address=redis://root:bwda@123@192.168.2.34:6379/0

本地调试地址,有效的多播地址范围是:224.0.0.0-239.255.255.255

dubbo.registry.address=multicast://224.5.6.8:9090?unicast=false

alan1878w commented 4 years ago

maybe caused by high concurrency,I tried zk & multicast ,it doesn't happen,only during redis