resque / resque/resque-pool

rake resque:pool isn't respecting TERM_CHILD?

Open
#150 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
456
Forks
149
Avg merge
9d 7h
Merged PRs (30d)
3

Description

I think I'm seeing an issue where rake resque:pool doesn't honor the TERM_CHILD=1 flag. If I run resque-pool, it does work as expected.

Here is the output from rake resque:pool:

~/app $ TERM_CHILD=1 bundle exec rake resque:pool
resque-pool-worker[integrations][34943]: Starting worker abedford-mbpr.local:34943:*
resque-pool-worker[integrations][34944]: Starting worker abedford-mbpr.local:34944:*
resque-pool-manager[integrations][34935]: started manager
resque-pool-worker[integrations][34945]: Starting worker abedford-mbpr.local:34945:*
resque-pool-manager[integrations][34935]: Pool contains worker PIDs: [34943, 34944, 34945, 34946, 34947]
resque-pool-worker[integrations][34946]: Starting worker abedford-mbpr.local:34946:*
resque-pool-worker[integrations][34947]: Starting worker abedford-mbpr.local:34947:*
^Cresque-pool-manager[integrations][34935]: INT: immediate shutdown (graceful worker shutdown)
resque-pool-manager[integrations][34935]: Sending TERM to all workers
resque-pool-manager[integrations][34935]: manager finished

Here is the output from resque-pool:

~/app $ TERM_CHILD=1 bundle exec resque-pool
resque-pool-manager[integrations][34858]: Resque Pool running in development environment
resque-pool-manager[34858]: TERM_CHILD enabled, so will user 'term-graceful-and-wait' behaviour
resque-pool-worker[integrations][34866]: Starting worker abedford-mbpr.local:34866:*
resque-pool-worker[integrations][34867]: Starting worker abedford-mbpr.local:34867:*
resque-pool-worker[integrations][34868]: Starting worker abedford-mbpr.local:34868:*
resque-pool-manager[integrations][34858]: started manager
resque-pool-manager[integrations][34858]: Pool contains worker PIDs: [34866, 34867, 34868, 34869, 34870]
resque-pool-worker[integrations][34870]: Starting worker abedford-mbpr.local:34870:*
resque-pool-worker[integrations][34869]: Starting worker abedford-mbpr.local:34869:*
^Cresque-pool-manager[integrations][34858]: INT: immediate shutdown (graceful worker shutdown)
resque-pool-manager[integrations][34858]: Sending TERM to all workers
resque-pool-manager[integrations][34858]: manager finished

I notice this line: resque-pool-manager[34858]: TERM_CHILD enabled, so will user 'term-graceful-and-wait' behaviour indicating that term child is enabled. Does the lack of this in the rake resque:pool mean what I think it does - that TERM_CHILD isn't respected?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare the rake resque:pool entry point with the resque-pool executable, focusing first on how TERM_CHILD is read and passed to the pool manager. Reproduce both commands with TERM_CHILD=1 and verify that the rake task selects the same term-graceful-and-wait behavior and emits the corresponding enabled message.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
backend, cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.