Skip to content

fix(fkill): stop when initial signal fails - #114

Merged
ALX99 merged 1 commit into
masterfrom
audit/fkill-initial-signal-failure-20260805
Aug 14, 2026
Merged

fix(fkill): stop when initial signal fails#114
ALX99 merged 1 commit into
masterfrom
audit/fkill-initial-signal-failure-20260805

Conversation

@ALX99

@ALX99 ALX99 commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Problem and impact

fkill schedules its delayed escalation even when the initial signal command fails. An invalid signal can therefore return an error from the first attempt yet still terminate the selected process five seconds later.

Reproduction and observed result

Revalidated against current master 50d7c989c6603c0d5d274be2a6539b39c8db6f47 using exact production blobs (dfd3e31b12d439e894cc0128a7583bd877c9fa05 parent, f47c3ea992328a9d6690811b1b8492da974a2f40 fixed). A temporary fzf stub selected a disposable sleep 30; real system process tools handled signaling.

  • Invalid BADSIGNAL: parent status 0 and target dead after 6s; fixed status 123 and target alive after 6s.
  • Valid TERM: parent and fixed status 0; target terminated.
  • Picker cancellation: parent and fixed status 0; no action.

Root cause and fix

The initial signaling pipeline's failure status was ignored. The fix exits when that pipeline fails, before scheduling delayed escalation.

Validation commands and results

GNU Bash 5.2.37, GNU findutils 4.10.0, procps-ng 4.0.4:

  • Exact parent/fixed blob hashes matched GitHub.
  • bash -n passed for both.
  • Focused before/after reproduction passed before and after rebase.
  • An isolated Git repository constructed from the exact blobs passed git diff --check.
  • GitHub compare reports 1 commit ahead, 0 behind, and only .local/bin/fkill changed.
  • GitHub Linter / ShellCheck passed on head 6b262f2cc5eaca3a245e1438ea77858d49c1a030.

A fresh HTTPS clone was attempted first, but this runtime could not resolve github.com. The branch was rebuilt from the exact current GitHub master tree plus the validated fixed blob. Literal full-tree local git status and git diff --check origin/master...HEAD were unavailable and are not claimed.

Scope and risk

Only .local/bin/fkill changes by one failure guard. Successful signaling, the five-second grace period, escalation, multi-selection, and cancellation behavior are unchanged.

@ALX99 ALX99 closed this Aug 5, 2026
@ALX99
ALX99 force-pushed the audit/fkill-initial-signal-failure-20260805 branch from 617618e to 920e3f7 Compare August 5, 2026 18:04
@ALX99 ALX99 reopened this Aug 5, 2026
@ALX99 ALX99 closed this Aug 8, 2026
@ALX99
ALX99 force-pushed the audit/fkill-initial-signal-failure-20260805 branch from d07e544 to a41861e Compare August 8, 2026 18:00
@ALX99 ALX99 reopened this Aug 8, 2026
@ALX99
ALX99 force-pushed the audit/fkill-initial-signal-failure-20260805 branch 3 times, most recently from 52227bc to 6b262f2 Compare August 13, 2026 18:04

ALX99 commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

Revalidated and rebased this draft onto current master 50d7c989c6603c0d5d274be2a6539b39c8db6f47. The branch is now exactly one commit ahead and zero behind, with only .local/bin/fkill changed. The focused exact-blob reproduction still distinguishes the parent and fixed behavior, bash -n passed, and the newly triggered Linter / ShellCheck workflow passed on head 6b262f2cc5eaca3a245e1438ea77858d49c1a030. Direct HTTPS cloning remains unavailable in this runtime because github.com cannot be resolved, so no full-tree local git status claim is made.

@ALX99
ALX99 force-pushed the audit/fkill-initial-signal-failure-20260805 branch from 6b262f2 to 14decc5 Compare August 14, 2026 10:59
@ALX99
ALX99 force-pushed the audit/fkill-initial-signal-failure-20260805 branch from 14decc5 to bd7a9d2 Compare August 14, 2026 11:05
@ALX99
ALX99 marked this pull request as ready for review August 14, 2026 11:08
@ALX99
ALX99 merged commit 89a9943 into master Aug 14, 2026
5 of 6 checks passed
@ALX99
ALX99 deleted the audit/fkill-initial-signal-failure-20260805 branch August 14, 2026 11:08
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.

1 participant