Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Got exception when running triple protocol with injvm mode, dubbo 3.2.9, jdk 17. #13497

Closed
chickenlj opened this issue Dec 14, 2023 · 1 comment · Fixed by #13597
Closed

Got exception when running triple protocol with injvm mode, dubbo 3.2.9, jdk 17. #13497

chickenlj opened this issue Dec 14, 2023 · 1 comment · Fixed by #13597
Labels
type/bug Bugs to being fixed
Milestone

Comments

@chickenlj
Copy link
Contributor

Dubbo Version: 3.2.9
Proltocol: triple protocol with injvm mode, which means consumer and provider run in the sma process
JDK: 17

Exception:

2023-12-14 10:29:02.221 ERROR 35414 --- [           main] o.a.d.r.p.i.DefaultParamDeepCopyUtil     :  [DUBBO] Unable to deep copy parameter to target class., dubbo version: 3.2.9, current host: 30.221.148.148, error code: 4-6. This may be caused by , go to https://dubbo.apache.org/faq/4/6 to find instructions. 

java.io.IOException: org.apache.dubbo.common.serialize.SerializationException: java.lang.reflect.InaccessibleObjectException: Unable to make field volatile java.lang.Object java.util.concurrent.CompletableFuture.result accessible: module java.base does not "opens java.util.concurrent" to unnamed module @45c7e403
	at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper.handleToIOException(DefaultSerializationExceptionWrapper.java:353) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper.access$000(DefaultSerializationExceptionWrapper.java:27) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectInput.readObject(DefaultSerializationExceptionWrapper.java:172) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.injvm.DefaultParamDeepCopyUtil.copy(DefaultParamDeepCopyUtil.java:55) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.injvm.InjvmInvoker.rebuildValue(InjvmInvoker.java:332) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.injvm.InjvmInvoker.lambda$doInvoke$1(InjvmInvoker.java:193) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.AsyncRpcResult.lambda$whenCompleteWithContext$0(AsyncRpcResult.java:253) ~[dubbo-3.2.9.jar:3.2.9]
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) ~[?:?]
	at java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:887) ~[?:?]
	at java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2325) ~[?:?]
	at org.apache.dubbo.rpc.AsyncRpcResult.whenCompleteWithContext(AsyncRpcResult.java:249) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.injvm.InjvmInvoker.doInvoke(InjvmInvoker.java:186) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.AbstractInvoker.doInvokeAndReturn(AbstractInvoker.java:248) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:191) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:40) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:106) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:412) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:366) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:108) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:57) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:40) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:86) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:38) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:123) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:101) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:164) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:294) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:64) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.stub.StubInvocationUtil.call(StubInvocationUtil.java:64) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.rpc.stub.StubInvocationUtil.unaryCall(StubInvocationUtil.java:29) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.springboot.demo.idl.DubboGreeterTriple$GreeterStub.greet(DubboGreeterTriple.java:93) ~[classes/:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.apache.dubbo.config.spring.util.LazyTargetInvocationHandler.invoke(LazyTargetInvocationHandler.java:54) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.springboot.demo.idl.GreeterDubboProxy0.greet(GreeterDubboProxy0.java) ~[classes/:?]
	at org.apache.dubbo.springboot.demo.provider.dubbo.consumer.Consumer.run(Consumer.java:20) ~[classes/:?]
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:768) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.apache.dubbo.springboot.demo.provider.ProviderApplication.main(ProviderApplication.java:29) ~[classes/:?]
Caused by: org.apache.dubbo.common.serialize.SerializationException: java.lang.reflect.InaccessibleObjectException: Unable to make field volatile java.lang.Object java.util.concurrent.CompletableFuture.result accessible: module java.base does not "opens java.util.concurrent" to unnamed module @45c7e403
	... 60 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field volatile java.lang.Object java.util.concurrent.CompletableFuture.result accessible: module java.base does not "opens java.util.concurrent" to unnamed module @45c7e403
	at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[?:?]
	at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[?:?]
	at java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) ~[?:?]
	at java.lang.reflect.Field.setAccessible(Field.java:172) ~[?:?]
	at com.alibaba.fastjson2.reader.ObjectReaderCreator.createFieldReader(ObjectReaderCreator.java:2466) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.reader.ObjectReaderCreatorASM.createFieldReader(ObjectReaderCreatorASM.java:158) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.reader.ObjectReaderCreator.createFieldReader(ObjectReaderCreator.java:1265) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.reader.ObjectReaderCreator.lambda$createFieldReaders$2(ObjectReaderCreator.java:1545) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.util.BeanUtils.declaredFields(BeanUtils.java:307) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.reader.ObjectReaderCreator.createFieldReaders(ObjectReaderCreator.java:1539) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.reader.ObjectReaderCreatorASM.createObjectReader(ObjectReaderCreatorASM.java:259) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.reader.ObjectReaderProvider.getObjectReaderInternal(ObjectReaderProvider.java:854) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.reader.ObjectReaderProvider.getObjectReader(ObjectReaderProvider.java:746) ~[fastjson2-2.0.42.jar:?]
	at com.alibaba.fastjson2.JSONB.parseObject(JSONB.java:539) ~[fastjson2-2.0.42.jar:?]
	at org.apache.dubbo.common.serialize.fastjson2.FastJson2ObjectInput.readObject(FastJson2ObjectInput.java:161) ~[dubbo-3.2.9.jar:3.2.9]
	at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectInput.readObject(DefaultSerializationExceptionWrapper.java:170) ~[dubbo-3.2.9.jar:3.2.9]
	... 57 more
@chickenlj chickenlj added the type/bug Bugs to being fixed label Dec 14, 2023
@chickenlj
Copy link
Contributor Author

chickenlj commented Dec 14, 2023

@chickenlj chickenlj changed the title Got exception when running triple protocol with injvm mode and jdk 17. Got exception when running triple protocol with injvm mode, dubbo 3.2.9, jdk 17. Dec 14, 2023
@CrazyHZM CrazyHZM added this to the 3.2.11 milestone Dec 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/bug Bugs to being fixed
Projects
None yet
2 participants