fix(sftp): honor ctx cancellation in find and recursive get#4856
Open
fix(sftp): honor ctx cancellation in find and recursive get#4856
Conversation
`fly sftp find` and `fly sftp get -R` iterate a `pkg/sftp` walker over remote directory listings without ever checking the context passed into the command. flyctl's root context is already wired to SIGINT via `signal.NotifyContext` in main.go, so Ctrl-C cancels the context immediately — but the walker loops never ask, leaving the command running until the tree is exhausted. Add a per-iteration `ctx.Err()` check at the top of each loop body, matching the existing flyctl idiom (see internal/command/curl/curl.go). Returning `context.Canceled` is silenced by the root handler in internal/cli/cli.go, producing a clean exit with code 127 — same UX as `fly ssh console` on Ctrl-C. The same pattern exists in `sftpContext.getDir` (called from the interactive `fly sftp shell`), but that path lacks a ctx and requires rethinking Ctrl-C semantics inside the readline shell. Left as a follow-up. Fixes #4657
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #4657
fly sftp findandfly sftp get -Riterate apkg/sftpwalker over remote directory listings without ever checking the context passed into the command. flyctl's root context is already wired to SIGINT viasignal.NotifyContextin main.go, so Ctrl-C cancels the context immediately — but the walker loops never ask, leaving the command running until the tree is exhausted.Add a per-iteration
ctx.Err()check at the top of each loop body, matching the existing flyctl idiom (see internal/command/curl/curl.go). Returningcontext.Canceledis silenced by the root handler in internal/cli/cli.go, producing a clean exit with code 127 — same UX asfly ssh consoleon Ctrl-C.