Skip to content

chore(source-google-ads): pin CDK to unlimited queue prerelease for deadlock workaround#74763

Draft
devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
devin/1773334022-queue-size-50k-connector
Draft

chore(source-google-ads): pin CDK to unlimited queue prerelease for deadlock workaround#74763
devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
devin/1773334022-queue-size-50k-connector

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot commented Mar 12, 2026

What

Pins source-google-ads to a CDK prerelease (7.12.0.post3.dev23019060129) that makes the internal record queue unlimited (maxsize=0). This is a temporary workaround for a deadlock observed in Airbyte Cloud where the platform pauses reading from the source container's stdout pipe, causing all worker threads to block on queue.put().

Related CDK PR: airbytehq/airbyte-python-cdk#951

How

  • Updated airbyte-cdk pin in pyproject.toml from 7.9.27.12.0.post3.dev23019060129
  • Regenerated poetry.lock

No connector code changes. No version bump (intentional — this is for prerelease testing only).

Updates since last revision

  • CDK pin changed from 7.12.0.post2.dev230174573677.12.0.post3.dev23019060129. The previous unlimited queue prerelease had a critical bug: setting DEFAULT_MAX_QUEUE_SIZE = 0 also broke ThreadPoolManager because that constant is used as the default for max_concurrent_tasks. With max_concurrent_tasks=0, the futures limit check (len(futures) >= max_concurrent_tasks) was always true, blocking all worker thread submissions — resulting in zero records emitted. The new version restores DEFAULT_MAX_QUEUE_SIZE = 10_000 (for the futures limit) while keeping Queue(maxsize=0) (unlimited queue size).

Review guide

  1. pyproject.toml — the only substantive change (CDK version pin)
  2. poetry.lock — auto-generated from the version pin

Key concern: This jumps from stable 7.9.2 to a 7.12.0 dev prerelease. Reviewer should verify whether any breaking changes between 7.9.2 and 7.12.0 affect this connector. See CDK migration guide.

Review & Testing Checklist for Human

  • Memory impact — an unlimited queue (maxsize=0) means potentially unbounded memory growth if workers produce records faster than the main thread consumes them. If the platform stops reading stdout indefinitely, memory could grow until the container OOMs. Confirm this risk is acceptable vs. the deadlock risk for this prerelease test.
  • CDK version jump — verify no breaking changes between CDK 7.9.2 and 7.12.0 affect source-google-ads.
  • Futures limit sanity check — confirm that the new CDK prerelease correctly separates queue size (maxsize=0) from max_concurrent_tasks default (10_000).

User Impact

No user impact — this PR is intended solely for publishing a connector prerelease to test the unlimited queue workaround on a sandbox connection. It should not be merged as-is for a production release.

Can this PR be safely reverted and rolled back?

  • YES 💚

Requested by @AnatoliiYatsuk.

Link to Devin run

@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@github-actions
Copy link
Copy Markdown
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • 🛠️ Quick Fixes
    • /format-fix - Fixes most formatting issues.
    • /bump-version - Bumps connector versions, scraping changelog description from the PR title.
  • ❇️ AI Testing and Review (internal link: AI-SDLC Docs):
    • /ai-prove-fix - Runs prerelease readiness checks, including testing against customer connections.
    • /ai-canary-prerelease - Rolls out prerelease to 5-10 connections for canary testing.
    • /ai-review - AI-powered PR review for connector safety and quality gates.
  • 🚀 Connector Releases:
    • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
    • /bump-progressive-rollout-version - Bumps connector version with an RC suffix (2.16.10-rc.1) for progressive rollouts (enableProgressiveRollout: true).
      • Example: /bump-progressive-rollout-version changelog="Add new feature for progressive rollout"
  • ☕️ JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
  • 🐍 Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.
  • ⚙️ Admin commands:
    • /force-merge reason="<REASON>" - Force merges the PR using admin privileges, bypassing CI checks. Requires a reason.
      Example: /force-merge reason="CI is flaky, tests pass locally"
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 12, 2026

Pre-release Connector Publish Started

Publishing pre-release build for connector source-google-ads.
PR: #74763

Pre-release versions will be tagged as {version}-preview.01f1654
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-google-ads:4.1.6-preview.01f1654

Docker Hub: https://hub.docker.com/layers/airbyte/source-google-ads/4.1.6-preview.01f1654

Registry JSON:

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 12, 2026

source-google-ads Connector Test Results

262 tests   258 ✅  41m 34s ⏱️
  2 suites    4 💤
  2 files      0 ❌

Results for commit 23d92c5.

♻️ This comment has been updated with latest results.

@devin-ai-integration devin-ai-integration Bot changed the title chore(source-google-ads): pin CDK to queue size 50K prerelease for deadlock workaround chore(source-google-ads): pin CDK to unlimited queue prerelease for deadlock workaround Mar 12, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 12, 2026

Pre-release Connector Publish Started

Publishing pre-release build for connector source-google-ads.
PR: #74763

Pre-release versions will be tagged as {version}-preview.ab92d8c
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-google-ads:4.1.6-preview.ab92d8c

Docker Hub: https://hub.docker.com/layers/airbyte/source-google-ads/4.1.6-preview.ab92d8c

Registry JSON:

…imited queue fix)

Updates CDK prerelease to include fix for broken ThreadPoolManager
futures limit check that was caused by DEFAULT_MAX_QUEUE_SIZE=0.

Co-Authored-By: unknown <>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 12, 2026

Pre-release Connector Publish Started

Publishing pre-release build for connector source-google-ads.
PR: #74763

Pre-release versions will be tagged as {version}-preview.23d92c5
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-google-ads:4.1.6-preview.23d92c5

Docker Hub: https://hub.docker.com/layers/airbyte/source-google-ads/4.1.6-preview.23d92c5

Registry JSON:

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant