dubbo icon indicating copy to clipboard operation
dubbo copied to clipboard

ConcurrentModificationException occurred after upgrade to 3.1.5

Open yindz opened this issue 2 years ago • 1 comments

  • [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

  1. Edit pom.xml, upgrade dubbo version from 3.1.4 to 3.1.5
  2. 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)

yindz avatar Jan 30 '23 07:01 yindz

Will be fixed in https://github.com/apache/dubbo/pull/11395

AlbumenJ avatar Jan 30 '23 07:01 AlbumenJ