Java GCP PubSub订阅服务器stopAsync()。等待终止()挂起

Java GCP PubSub订阅服务器stopAsync()。等待终止()挂起,java,asynchronous,google-cloud-platform,google-cloud-pubsub,Java,Asynchronous,Google Cloud Platform,Google Cloud Pubsub,我正在调用subscriber.stopAsync().awaitTerminated(),它永远不会返回。当我暂停调试时,我看到一堆线程“grpc default worker something”似乎卡在私有本机int-kevent0上(int-var1,long-var2,int-var4,long-var5)呼叫。主线程正在UNSAFE.park(false,0L)调用上等待java.util.concurrent.locks.LockSupport.park() 在我尝试停止订阅服务器

我正在调用subscriber.stopAsync().awaitTerminated(),它永远不会返回。当我暂停调试时,我看到一堆线程“grpc default worker something”似乎卡在
私有本机int-kevent0上(int-var1,long-var2,int-var4,long-var5)呼叫。主线程正在
UNSAFE.park(false,0L)
调用上等待
java.util.concurrent.locks.LockSupport.park()

在我尝试停止订阅服务器之前,它的行为符合预期(初始化,
startAsync().waitrunning()
call,
MessageReceived
callbacks)


有没有人有过类似的问题,或者有什么想法来解决这个问题?

听起来你的邮件还没有被确认或删除。
客户端保留未完成消息的计数,并挂起等待它到达
0
,如果您的代码路径都没有,客户端将永远不会这样做。

事实确实如此。我确信在所有邮件的截止日期过后,这不会成为问题。您知道是否有办法从PubSub API获取未完成的消息列表吗?默认情况下,截止日期最多可延长一小时。所以要考虑到这一点。另外,随着更多的更新,一些关于改进这些超时的修复最近已经停止了,所以对于超时后是否工作,它的版本非常具体。没有可用的列表API