Skip to content

concurrency advisory lock key is not queue-scoped #132

@maxcountryman

Description

@maxcountryman

Summary

Advisory lock key derivation uses raw concurrency_key (or task id string) without queue namespace.

Why this is a problem

Different queues using the same concurrency key can unintentionally contend on the same advisory lock, causing cross-queue interference.

Evidence

  • Lock key returns only concurrency_key or task_id: src/queue.rs:1797
  • Lock acquisition hashes that single key globally: src/queue.rs:1811

Expected behavior

Concurrency controls should be isolated per queue unless global coordination is intentionally requested.

Proposed direction

  • Namespace lock key with queue name (e.g. "{queue}:{key}").
  • Optionally support explicit global key mode separately.

Acceptance criteria

  • Two tasks in different queues with same concurrency key do not block each other by default.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions