Skip to content

Fix custom slot supplier SlotInfo fields - #3014

Merged
Sushisource merged 1 commit into
temporalio:mainfrom
baekgyu-kim:2650
Aug 31, 2026
Merged

Fix custom slot supplier SlotInfo fields#3014
Sushisource merged 1 commit into
temporalio:mainfrom
baekgyu-kim:2650

Conversation

@baekgyu-kim

Copy link
Copy Markdown
Contributor

What was changed

  • Corrected WorkflowSlotInfo to report the normal task queue name for both normal and sticky workflow tasks.
  • Ensured synchronous sticky polling builds WorkflowSlotInfo from the request that was actually polled.
  • Corrected worker build ID reporting for deployment options, legacy worker version capabilities, and binary checksum configurations.
  • Added custom slot supplier coverage for workflow, activity, local activity, and Nexus SlotInfo fields, including synchronous/asynchronous and normal/sticky workflow polling.

Why?

Custom slot suppliers could receive an empty or incorrect task queue, an incorrect sticky queue flag, or a missing/wrong worker build ID. These changes ensure that all supported SlotInfo types expose accurate worker and task information.

Checklist

  1. Closes Ensure tests exist to confirm custom slot supplier slot info has proper fields #2650

  2. How was this tested:

    • ./gradlew --offline spotlessApply
    • git diff --check
    • WorkflowSlotInfoTest
    • SlotInfoTest
    • SlotSupplierTest
    • WorkerVersioningTest
    • WorkerOptionsTest

    External-server-only versioning cases were skipped by their existing test conditions.

  3. Any docs updates needed?
    No. This change corrects existing SlotInfo behavior and adds test coverage without changing the public API surface.

@Sushisource Sushisource left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this makes sense, thanks for the fix. Just one comment.

}
}

private static final class RecordingSlotSupplier implements SlotSupplier<WorkflowSlotInfo> {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are two copies of this (I think there might actually already be another too, that existed before this PR). We should just have all the tests re-use the same impl.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Sushisource, thank you for catching this.
I’ve moved RecordingSlotSupplier to a shared test utility so both tests reuse the same implementation.
Could you please take another look? Thanks again!

@baekgyu-kim
baekgyu-kim force-pushed the 2650 branch 2 times, most recently from ff0bcf7 to c1feac2 Compare August 28, 2026 12:45
@Sushisource
Sushisource merged commit 4f5a107 into temporalio:main Aug 31, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ensure tests exist to confirm custom slot supplier slot info has proper fields

2 participants