From 493a06d0e7207a1e34fdc746502c74632152cf91 Mon Sep 17 00:00:00 2001 From: v-byte-cpu <65545655+v-byte-cpu@users.noreply.github.com> Date: Thu, 11 Jun 2026 19:56:02 +0400 Subject: [PATCH] ci: gate go jobs on relevant paths and document ENOBUFS Add a paths-filter-based gate to skip Go CI jobs on irrelevant changes, while still running them for Go, module, lint, and CI/script updates. Document the `send: No buffer space available` failure mode in the TCP scan README section and recommend `--rate` as the primary fix. --- .github/workflows/ci.yml | 23 +++++++++++++++++++++++ README.md | 4 ++++ 2 files changed, 27 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a12f9e9..dd7be67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,28 @@ permissions: contents: read jobs: + changes: + runs-on: ubuntu-latest + outputs: + go_ci: ${{ steps.filter.outputs.go_ci }} + + steps: + - name: Detect changed paths + id: filter + uses: dorny/paths-filter@v4 + with: + filters: | + go_ci: + - '**/*.go' + - 'go.mod' + - 'go.sum' + - '.golangci.yml' + - '.github/workflows/**' + - '.github/scripts/**' + go: + needs: changes + if: needs.changes.outputs.go_ci == 'true' runs-on: ubuntu-latest container: golang:1.25-alpine env: @@ -61,6 +82,8 @@ jobs: run: go build -ldflags "-w -s" go-macos: + needs: changes + if: needs.changes.outputs.go_ci == 'true' name: go (macOS ${{ matrix.goarch }}) runs-on: ${{ matrix.runner }} env: diff --git a/README.md b/README.md index ecd3612..85971fe 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,10 @@ sample output: In this case we find out that ports 22 and 443 are open. +If you see `send: No buffer space available` during large scans, it usually means the sender is outrunning the kernel/raw-socket buffers. +The first fix is to add `--rate` and lower the send burst, for example `-r 100000/s` or lower if needed. +On some systems, tuning OS socket/buffer limits can also help, but rate limiting is the primary fix. + scan with JSON output: ```