Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Periodically getting unavailable response codes for streaming pulls and expired for acks #411

Description

@yakivy

Environment details

  1. Pubsub
  2. OS type and version: ubuntu:20.04
  3. Java version: openjdk:11.0.9
  4. pubsub version(s): google-cloud-pubsub lib, 1.103.1 or 1.108.6 version

Steps to reproduce

  1. Create subscription with ackDeadline=600 seconds
  2. Publish solid number of messages (in my case it was ~20k stale messages with 1 rps increase)
  3. Create a com.google.cloud.pubsub.v1.Subscriber with 8 outstanding elements that is instantly putting incoming messages into queue and queue consumer that is consuming and acknowledging messages from the queue with 2 rps throughput:
val queue = ...
Subscriber
    .newBuilder(
        subscription,
        (message, ackCallback) => queue.offer(message -> ackCallback)
    )
    .setFlowControlSettings(FlowControlSettings.newBuilder()
        .setMaxOutstandingElementCount(8)
        .setLimitExceededBehavior(LimitExceededBehavior.Block)
        .build()
    )
    .build()
    .startAsync()
  1. Monitor stackdriver charts during one hour:
  • acknowledge message operations chart should have ~45 min periods, where during ~15 first mins all acks are success and ~30 following mins all acks are expired:

  • streaming pull message operations chart should have unavailable response codes each ~45 mins:

Hope for your attention. Thanks!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

api: pubsubIssues related to the googleapis/java-pubsub API.priority: p3Desirable enhancement or fix. May not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions