• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

paskal / spot / 28754878221
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/executor-correctness
DEFAULT BRANCH: master
Ran 05 Jul 2026 09:07PM UTC
Jobs 1
Files 19
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Jul 2026 08:34PM UTC coverage: 83.775% (-0.3%) from 84.049%
28754878221

push

github

paskal
executor: fix context-cancellation leaks, local copy bugs, drop dead options

- sshRun: buffer the done channel so the command goroutine can exit
  after a ctx-cancel return instead of blocking forever (goroutine leak).
- sftpUpload/sftpDownload: build the sftp client over an ssh session we
  hold (newSftpSession), and on ctx-cancel close that session, then drain
  the copy goroutine before returning. Closing the ssh session tears the
  channel down from outside the sftp mutex, so a stalled transfer is
  actually aborted (closing the sftp client would block on the same mutex
  a wedged write holds); the drain removes the deferred-Close vs io.Copy
  race. A new test cancels a 32MB transfer mid-flight and asserts it
  returns rather than hanging.
- Local.Upload: with a multi-file glob and mkdir, create the destination
  directory itself (it is treated as a directory) instead of only its
  parent, and honor context cancellation between files.
- Local.Download: pass the caller context through instead of
  context.Background().
- Connector.String: cap the private-key slice with min() so it does not
  panic on short or empty (agent-only) keys.
- Remove dead options never read by any executor: Checksum from
  UpDownOpts and SyncOpts, and Force from SyncOpts. This also drops the
  config sync 'force' field (an undocumented no-op) and its schema entry.
  Behavior change: under strict YAML parsing a playbook that set
  'sync: {force: true}' will now fail to parse.

39 of 59 new or added lines in 4 files covered. (66.1%)

86 existing lines in 3 files now uncovered.

3222 of 3846 relevant lines covered (83.78%)

58.54 hits per line

Uncovered Changes

Lines Coverage ∆ File
19
77.2
-1.66% pkg/executor/remote.go
1
81.75
0.0% pkg/executor/local.go

Coverage Regressions

Lines Coverage ∆ File
39
77.2
-1.66% pkg/executor/remote.go
38
81.75
0.0% pkg/executor/local.go
9
93.93
0.0% pkg/config/command.go
Jobs
ID Job ID Ran Files Coverage
1 28754878221.1 05 Jul 2026 09:07PM UTC 19
83.78
GitHub Action Run
Source Files on build 28754878221
  • Tree
  • List 19
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b54331b8 on github
  • Prev Build on fix/executor-correctness (#28750023671)
  • Next Build on fix/executor-correctness (#28757658465)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc