From 22da857668d164833d272169247b19b462317626 Mon Sep 17 00:00:00 2001 From: "milan.svitlica" Date: Mon, 19 Oct 2026 11:48:00 +0200 Subject: [PATCH] Pin orkes-conductor-queues to 2.0.0.rc2 Conductor 3.31.0 and later bundle orkes-conductor-queues 2.0.0.rc3. Its new background poller has a race: wakePoller() can cancel a backoff poll that is already running, so two poll chains share one slot. When demand drops, both release it and the slot count goes to -1. From then on the queue never polls Redis again until the JVM restarts, with no error and a healthy /health. The JOIN queue is hit first, because an unfinished JOIN is re-queued at offset 0. The upstream fix, orkes-io/orkes-queues#30, is not released. rc2 has no background poller and is what 3.30.x shipped. 3.32.5 uses only ConductorQueue, QueueMessage and the three-argument queue constructors, and rc2 has them unchanged. The pin is listed with the other hard pins in AGENTS.md. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 1 + dependencies.gradle | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 1224c90d15..d7b1457d33 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -98,6 +98,7 @@ The issue number links back to https://github.com/conductor-oss/conductor/issues | `org.codehaus.jettison:jettison` | `strictly 1.5.4` | Gradle `strictly` constraint — no higher version has been validated | | `org.conductoross:conductor-client` in `test-harness` | `5.0.1` | Fat JAR classpath conflict with conductor-common; resolved via a stripped JAR task | | `org.awaitility:awaitility` in functional tests | `4.x` | e2e tests call `pollInterval(Duration)` added in Awaitility 4.0 | +| `io.orkes.queues:orkes-conductor-queues` | `2.0.0.rc2` | rc3's background poller can stop delivering a queue for good until the JVM restarts ([orkes-io/orkes-queues#30](https://github.com/orkes-io/orkes-queues/pull/30)) | ### Before bumping a PINNED dependency diff --git a/dependencies.gradle b/dependencies.gradle index abf6c3a889..36dcf0869d 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -63,7 +63,9 @@ ext { revJsr311Api = '1.1.1' revMockServerClient = '5.12.0' revSpringDoc = '2.8.6' - revOrkesQueues = '2.0.0.rc3' + // PINNED (orkes-io/orkes-queues#30): 2.0.0.rc3's background poller can stop delivering a queue + // for good (JOIN first) until the JVM restarts. rc2 has no poller and is what 3.30.x shipped. + revOrkesQueues = '2.0.0.rc2' revPowerMock = '2.0.9' revProtogenAnnotations = '1.0.0' revProtogenCodegen = '1.4.0'