Skip to content

Restore detect_idle_timeout client setup and cleanup - #169

Open
ac1982 wants to merge 1 commit into
drbrain:masterfrom
ac1982:fix/detect-idle-timeout-helper
Open

ac1982 wants to merge 1 commit into
drbrain:masterfrom
ac1982:fix/detect-idle-timeout-helper

Conversation

@ac1982

@ac1982 ac1982 commented Oct 10, 2026

Copy link
Copy Markdown

Fixes #119.

detect_idle_timeout still passes a positional client name even though initialize accepts keyword arguments, and its ensure references a variable defined only inside the connection block. The resulting NameError prevents the helper from returning an idle interval.

Initialize the counter in method scope and pass name: to the client constructor. Keep the persistent client separate from its underlying Net::HTTP connection so its pool can be shut down on completion or a handled error.

The four regression tests run the real constructor with a substituted connection and sleep implementation: reaching the maximum, a zero maximum, EOF after a successful request, and a non-200 response. They verify the returned interval, sleep sequence, and client shutdown. All four raise NameError before the fix and pass afterward.

Validation (Ruby 3.3.8, Linux arm64):

  • Focused tests: 4 runs, 4 assertions, no failures/errors.
  • bundle exec rake test manifest:check: 119 runs, 322 assertions, no failures/errors, 1 skip; manifest check passed.
  • git diff --check passed.

No live-server idle-timeout measurement was performed; the existing warning about modern Ruby behavior remains. Other Ruby versions and optional net-http-pipeline support were not tested locally. AI assistance: OpenAI Codex investigated, implemented, and ran these checks.

This branch has not been deployed

No deployments
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.

detect_idle_timeout is broken

1 participant