#1948·resque

Support mixed-version Solaris worker discovery during upgrades

Author: coderabbitai[bot]Created Aug 30, 2026Updated Aug 30, 2026

Summary

Resque::Worker#solaris_worker_pids in lib/resque/worker.rb matches Solaris pargs output against the exact current Resque::VERSION value.

During a mixed-version upgrade, a newer Resque process can fail to discover an older still-running worker. For example, a 3.0.2 process can omit a 3.0.1 worker because the process title contains resque-3.0.1 instead of resque-3.0.2.

Required change

Update the Solaris worker-discovery logic so that compatible Resque workers remain discoverable during mixed-version upgrades. Do not require an exact match to the current Resque::VERSION for this discovery path.

Rationale

Resque::Worker#worker_pids uses solaris_worker_pids on Solaris. Lifecycle operations, including dead-worker pruning, depend on worker discovery. Exact version matching can exclude an active worker during a rolling or mixed-version deployment.

Affected area

  • lib/resque/worker.rb
    • Resque::Worker#solaris_worker_pids
    • Callers that use Resque::Worker#worker_pids for worker lifecycle handling

Acceptance criteria

  • A newer Resque process discovers compatible older Resque worker processes on Solaris.
  • Discovery does not depend on an exact Resque::VERSION match.
  • Tests cover mixed-version Solaris process-title input.
  • The change does not affect non-Solaris worker discovery behavior.

Context

This work is intentionally separate from the 3.0.2 release metadata pull request.