dubbo
dubbo copied to clipboard
ConcurrentModificationException occurred after upgrade to 3.1.5
- [x] I have searched the issues of this repository and believe that this is not a duplicate.
Environment
- Dubbo version: 3.1.5
- Operating System version: Windows 10
- Java version: 1.8
Steps to reproduce this issue
- Edit pom.xml, upgrade dubbo version from 3.1.4 to 3.1.5
- Recompile and start the application without any other changes
Expected Behavior
Actual Behavior
Everything works fine when using dubbo 3.1.4, but ConcurrentModificationException occurred after the upgrade.
[Dubbo-my-demo-service-service-export-thread-2] [] org.apache.dubbo.config.ServiceConfig[?] - [DUBBO] Failed to (async)export service config: com.xxx.application.service.IUserService, dubbo version: 3.1.5, current host: 192.168.10.101, error code: 5-9. This may be caused by configuration server disconnected, go to https://dubbo.apache.org/faq/5/9 to find instructions.
java.util.ConcurrentModificationException: null
at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:719)
at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:742)
at org.apache.dubbo.common.serialize.hessian2.Hessian2AllowClassManager.notify(Hessian2AllowClassManager.java:55)
at org.apache.dubbo.common.utils.SerializeSecurityManager.notifyListeners(SerializeSecurityManager.java:221)
at org.apache.dubbo.common.utils.SerializeSecurityManager.addToAllow(SerializeSecurityManager.java:196)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:159)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:168)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:179)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:179)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:179)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:179)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:179)
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:179)
at org.apache.dubbo.common.utils.SerializeSecurityManager.registerInterface(SerializeSecurityManager.java:107)
at org.apache.dubbo.rpc.protocol.ProtocolSecurityWrapper.lambda$export$0(ProtocolSecurityWrapper.java:61)
at java.util.Optional.ifPresent(Optional.java:159)
at org.apache.dubbo.rpc.protocol.ProtocolSecurityWrapper.export(ProtocolSecurityWrapper.java:58)
at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:61)
at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.export(ProtocolSerializationWrapper.java:47)
at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
at org.apache.dubbo.config.ServiceConfig.doExportUrl(ServiceConfig.java:717)
at org.apache.dubbo.config.ServiceConfig.exportLocal(ServiceConfig.java:733)
at org.apache.dubbo.config.ServiceConfig.exportUrl(ServiceConfig.java:619)
at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:445)
at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:429)
at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:391)
at org.apache.dubbo.config.ServiceConfig.lambda$doDelayExport$0(ServiceConfig.java:253)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Will be fixed in https://github.com/apache/dubbo/pull/11395