Closed tianyuxingxuan closed 6 months ago
应用升级到jdk19,但是dubbo代码应该是使用了synchronized,导致虚拟线程无法卸载。这个dubbo有支持吗? [38;5;250m2023-03-01 16:47:46 [38;5;35mThread[#190,ForkJoinPool-1-worker-3,5,CarrierThreads] [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.VirtualThread$VThreadContinuation.onPinned(VirtualThread.java:180) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.vm.Continuation.onPinned0(Continuation.java:398) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.vm.Continuation.yield0(Continuation.java:390) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.vm.Continuation.yield(Continuation.java:357) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.VirtualThread.yieldContinuation(VirtualThread.java:370) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.VirtualThread.park(VirtualThread.java:499) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.System$2.parkVirtualThread(System.java:2606) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.misc.VirtualThreads.park(VirtualThreads.java:54) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:219) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:938) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.LinkedBlockingQueue.offer(LinkedBlockingQueue.java:411) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.AbstractQueue.add(AbstractQueue.java:95) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.cancel(HashedWheelTimer.java:607) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:168) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:158) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleResponse(HeaderExchangeHandler.java:60) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:181) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:196) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:99) <== monitors:1 [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:179) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.framework.spring.boot.dubbo.filter.Dubbo27ExceptionFilter.invoke(Dubbo27ExceptionFilter.java:23) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.framework.spring.boot.dubbo.filter.ConsumerAuthorityFilter.invoke(ConsumerAuthorityFilter.java:53) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.csp.sentinel.adapter.dubbo.SentinelDubboConsumerFilter.invoke(SentinelDubboConsumerFilter.java:60) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.platform.util.dubbo.filter.ResponseConsumerFilter.invoke(ResponseConsumerFilter.java:22) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:91) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.csp.sentinel.adapter.dubbo.DubboAppContextFilter.invoke(DubboAppContextFilter.java:41) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m net.dubboclub.catmonitor.AppNameAppendFilter.invoke(AppNameAppendFilter.java:18) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m net.dubboclub.catmonitor.CatTransaction.invoke(CatTransaction.java:152) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.platform.util.dubbo.filter.ConsumerExceptionFilter.invoke(ConsumerExceptionFilter.java:25) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.dubbo.rpc.Invoker$CompatibleInvoker.invoke(Invoker.java:55) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.chatroom.degrade.filter.ChatroomResponseConsumerFilter.invoke(ChatroomResponseConsumerFilter.java:21) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.dubbo.rpc.Filter.invoke(Filter.java:29) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:79) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:265) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:96) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.bytecode.proxy20.getUserBirthdayAndAuth(proxy20.java) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.yuer.chatroom.base.facade.UserFacade.getUserAuthDataAndBirthday(UserFacade.java:707)
目前 Dubbo 的协程支持仍是试验型阶段的,synchronized 这个关键字在 Dubbo 使用的还挺多的,需要一个一个修改
synchronized
应用升级到jdk19,但是dubbo代码应该是使用了synchronized,导致虚拟线程无法卸载。这个dubbo有支持吗? [38;5;250m2023-03-01 16:47:46 [38;5;35mThread[#190,ForkJoinPool-1-worker-3,5,CarrierThreads] [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.VirtualThread$VThreadContinuation.onPinned(VirtualThread.java:180) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.vm.Continuation.onPinned0(Continuation.java:398) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.vm.Continuation.yield0(Continuation.java:390) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.vm.Continuation.yield(Continuation.java:357) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.VirtualThread.yieldContinuation(VirtualThread.java:370) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.VirtualThread.park(VirtualThread.java:499) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.lang.System$2.parkVirtualThread(System.java:2606) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/jdk.internal.misc.VirtualThreads.park(VirtualThreads.java:54) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:219) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:938) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.concurrent.LinkedBlockingQueue.offer(LinkedBlockingQueue.java:411) [38;5;250m2023-03-01 16:47:46 [38;5;35m java.base/java.util.AbstractQueue.add(AbstractQueue.java:95) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.cancel(HashedWheelTimer.java:607) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:168) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:158) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleResponse(HeaderExchangeHandler.java:60) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:181) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:196) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:99) <== monitors:1 [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:179) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.framework.spring.boot.dubbo.filter.Dubbo27ExceptionFilter.invoke(Dubbo27ExceptionFilter.java:23) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.framework.spring.boot.dubbo.filter.ConsumerAuthorityFilter.invoke(ConsumerAuthorityFilter.java:53) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.csp.sentinel.adapter.dubbo.SentinelDubboConsumerFilter.invoke(SentinelDubboConsumerFilter.java:60) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.platform.util.dubbo.filter.ResponseConsumerFilter.invoke(ResponseConsumerFilter.java:22) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:91) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.csp.sentinel.adapter.dubbo.DubboAppContextFilter.invoke(DubboAppContextFilter.java:41) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m net.dubboclub.catmonitor.AppNameAppendFilter.invoke(AppNameAppendFilter.java:18) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m net.dubboclub.catmonitor.CatTransaction.invoke(CatTransaction.java:152) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.platform.util.dubbo.filter.ConsumerExceptionFilter.invoke(ConsumerExceptionFilter.java:25) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.dubbo.rpc.Invoker$CompatibleInvoker.invoke(Invoker.java:55) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.chatroom.degrade.filter.ChatroomResponseConsumerFilter.invoke(ChatroomResponseConsumerFilter.java:21) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.alibaba.dubbo.rpc.Filter.invoke(Filter.java:29) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:79) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:265) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:96) [38;5;250m2023-03-01 16:47:46 [38;5;35m org.apache.dubbo.common.bytecode.proxy20.getUserBirthdayAndAuth(proxy20.java) [38;5;250m2023-03-01 16:47:46 [38;5;35m com.yupaopao.yuer.chatroom.base.facade.UserFacade.getUserAuthDataAndBirthday(UserFacade.java:707)