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

pubsub DEADLINE_EXCEEDED (after period of inactivity) #1797

Closed
fondberg opened this issue Mar 23, 2017 · 12 comments
Closed

pubsub DEADLINE_EXCEEDED (after period of inactivity) #1797

fondberg opened this issue Mar 23, 2017 · 12 comments
Assignees
Labels
api: pubsub Issues related to the Pub/Sub API. priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns.

Comments

@fondberg
Copy link

We see a strange behaviour in when there is low traffic on a topic where stackdriver shows a spike in undelivered messages as well as oldest unacknowledged message.

We do get some io.grpc.StatusRuntimeExceptions during these low traffic times but not when there is high traffic during the day.

Could comeone have an explaination about this? We are using
-netty-all 4.1.5.Final

  • com.google.cloud 0.5.1
io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: The service was unable to fulfill your request. Please try again. [code=8a75]
    at io.grpc.Status.asRuntimeException
    at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext
    at io.grpc.internal.ContextRunnable.run
    at io.grpc.internal.SerializingExecutor$TaskRunner.run
    at java.util.concurrent.Executors$RunnableAdapter.call
    at java.util.concurrent.FutureTask.run
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run
    at java.util.concurrent.ThreadPoolExecutor.runWorker
    at java.util.concurrent.ThreadPoolExecutor$Worker.run
    at java.lang.Thread.run
com.google.api.gax.grpc.ApiException: io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: The service was unable to fulfill your request. Please try again. [code=8a75]
    at com.google.api.gax.grpc.ExceptionTransformingCallable$ExceptionTransformingFuture.onFailure
    at com.google.common.util.concurrent.Futures$6.run
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute
    at com.google.common.util.concurrent.AbstractFuture.executeListener
    at com.google.common.util.concurrent.AbstractFuture.complete
    at com.google.common.util.concurrent.AbstractFuture.setException
    at io.grpc.stub.ClientCalls$GrpcFuture.setException
    at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext
    at io.grpc.internal.ContextRunnable.run
    at io.grpc.internal.SerializingExecutor$TaskRunner.run
    at java.util.concurrent.Executors$RunnableAdapter.call
    at java.util.concurrent.FutureTask.run
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run
    at java.util.concurrent.ThreadPoolExecutor.runWorker
    at java.util.concurrent.ThreadPoolExecutor$Worker.run
    at java.lang.Thread.run
com.google.cloud.pubsub.PubSubException: io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: The service was unable to fulfill your request. Please try again. [code=8a75]
    at com.google.cloud.pubsub.spi.DefaultPubSubRpc$1.apply
    at com.google.cloud.pubsub.spi.DefaultPubSubRpc$1.apply
    at com.google.common.util.concurrent.Futures$CatchingFuture.doFallback
    at com.google.common.util.concurrent.Futures$CatchingFuture.doFallback
    at com.google.common.util.concurrent.Futures$AbstractCatchingFuture.run
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute
    at com.google.common.util.concurrent.AbstractFuture.executeListener
    at com.google.common.util.concurrent.AbstractFuture.complete
    at com.google.common.util.concurrent.AbstractFuture.setException
    at com.google.common.util.concurrent.SettableFuture.setException
    at com.google.api.gax.grpc.BundlingFuture.setException
    at com.google.api.gax.grpc.BundlingContext.sendResult
    at com.google.api.gax.grpc.BundleExecutor.processBundle
    at com.google.api.gax.bundling.ThresholdBundlingForwarder$BundleForwardingRunnable.processBundle
    at com.google.api.gax.bundling.ThresholdBundlingForwarder$BundleForwardingRunnable.run
    at java.lang.Thread.run
@garrettjonesgoogle garrettjonesgoogle added api: pubsub Issues related to the Pub/Sub API. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns. Status: Release Blocking labels Mar 23, 2017
@garrettjonesgoogle
Copy link
Member

This sounds suspiciously like issues that have been seen with grpc in other languages.

@fondberg
Copy link
Author

Yes I saw them when I googled. It is super weird as it happens when there is low traffic

@fondberg
Copy link
Author

Here is a picture from stackdriver showing a month worth of data.
The spikes in undelivered messages happen on weekends and in the nights.
If anyone have any idea on how to debug this I would be happy to help.
screen shot 2017-03-24 at 08 48 19

@garrettjonesgoogle
Copy link
Member

We will be upgrading to grpc 1.2 soon: #1691 ; If the issue is fixed by that, then there would be no work to be done.

@fondberg
Copy link
Author

ok thanks, but will that be with the new pubsub api only or also for 0.5.1?

@garrettjonesgoogle
Copy link
Member

It would be put into master, so it would only be available in the release it was added to, or later releases. Since this library is not GA, we are not patching previous releases yet.

@garrettjonesgoogle garrettjonesgoogle added the status: blocked Resolving the issue is dependent on other work. label Mar 29, 2017
@garrettjonesgoogle
Copy link
Member

Marking as blocked (grpc 1.2 upgrade)

@garrettjonesgoogle
Copy link
Member

After we upgrade to 1.2, in order to see if this is fixed, we need to make sure that calls are successful after long periods of inactivity (at least an hour).

@garrettjonesgoogle garrettjonesgoogle changed the title pubsub DEADLINE_EXCEEDED reasons? pubsub DEADLINE_EXCEEDED (after period of inactivity) Mar 31, 2017
@fondberg
Copy link
Author

It will be hard for us to help testing as we require thread limitations for our pubsub implementation (see #1827) and we haven't migrated to the new API.

@garrettjonesgoogle
Copy link
Member

The latest release of google-cloud-pubsub now depends on grpc 1.2.

@garrettjonesgoogle garrettjonesgoogle removed the status: blocked Resolving the issue is dependent on other work. label Apr 13, 2017
@garrettjonesgoogle
Copy link
Member

Removing the release-blocking label because we don't have a repro case.

@garrettjonesgoogle garrettjonesgoogle added priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. and removed POST GA - P1 labels Apr 26, 2017
@garrettjonesgoogle
Copy link
Member

Since we don't have a repro case, I'm going to close this out. If the issue is still happening on the latest google-cloud-java (note: we are on grpc 1.4 now), please re-open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: pubsub Issues related to the Pub/Sub API. priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns.
Projects
None yet
Development

No branches or pull requests

2 participants