Skip to content

deps: bump github.com/panjf2000/ants/v2 from 2.9.1 to 2.12.1#146

Closed
dependabot[bot] wants to merge 421 commits into
masterfrom
dependabot/go_modules/github.com/panjf2000/ants/v2-2.12.1
Closed

deps: bump github.com/panjf2000/ants/v2 from 2.9.1 to 2.12.1#146
dependabot[bot] wants to merge 421 commits into
masterfrom
dependabot/go_modules/github.com/panjf2000/ants/v2-2.12.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github May 29, 2026

Copy link
Copy Markdown

Bumps github.com/panjf2000/ants/v2 from 2.9.1 to 2.12.1.

Release notes

Sourced from github.com/panjf2000/ants/v2's releases.

Ants v2.12.0, The Garden of Words

[!IMPORTANT] As of this release, the minimum required Go version to use ants is 1.19!

🚀 Features

  • feat: implement ReleaseContext for all pool types (#387)

🛩 Enhancements

  • perf: set nanoseconds instead of time.Time for pool-cached now (#378)
  • perf: replace time.Time with nanoseconds in worker (#382)
  • refactor: deduplicate ReleaseContext across multi-pool types 4ee6d73

🐛 Bugfixes

  • bug: don't reset the worker queue when rebooting preallocated pool (#360)
  • bug: hold the lock when spawning a new worker (#376)
  • fix: drop Go 1.18, bump CI matrix to [1.19, 1.26] to resolve macOS ARM64 spinlock starvation (#386)

📚 Documentation

  • fix: drop Go 1.18, bump CI matrix to [1.19, 1.26] to resolve macOS ARM64 spinlock starvation (#386)
  • docs: update the comment on Options.PanicHandler to match its behavior (#365) (#366)
  • docs: add more use cases

Full Changelog: panjf2000/ants@v2.11.0...v2.12.0

Thanks to all these contributors: @​Copilot, @​POABOB, @​fufuok, @​huynhanx03, @​panjf2000, @​trace-andreason and copilot-swe-agent[bot] for making this release possible.

Ants v2.11.0, Grave of the Fireflies

[!IMPORTANT] As of this release, the minimum required Go version to use ants is 1.18! Furthermore, goroutine pool with Go generics is implemented!

🚀 Features

  • test: add some basic testable examples (#353)
  • feat: implement generic pool (#351)
  • opt: streamline pool implementation to reduce duplicated code (#350)
  • feat: export the internal package sync (#349)

🛩 Enhancements

  • opt: streamline pool implementation to reduce duplicated code (#350)
  • opt: bump up the minimum required Go version to 1.16 (#347)

... (truncated)

Commits
  • 943d026 patch: v2.12.1 (#398)
  • deeaf50 fix: move once.Do(close(allDone)) from Reboot() to Release() (#397)
  • 0191bb5 chore: replace 1<<31-1 with math.MaxInt32 (#392)
  • 4782ebe fix: release created pools on NewMultiPool failure (#394)
  • 2ba2dd1 chore: improve variable naming in binarySearch (#393)
  • ed0bfc9 fix: make Reboot() wait for pool to fully release before resetting state (#395)
  • 8a80b33 docs: correct WithNonblocking comment about its returned error (#390)
  • 80b031d chore: use my referral link of DO
  • 24eac6c Merge pull request #388 from panjf2000/dev
  • d103005 chore: fix the broken logo links
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

M09Ic added 30 commits January 16, 2023 17:30
checkonly支持upgrade与redirect
M09Ic and others added 25 commits May 8, 2026 10:12
- BrutePool: 去除 checkCh / closed / locker 等冗余字段, 用 atomic.Bool
  替换 done bool 修复 race, Init 失败路径正确回滚 wg + initwg,
  invoke/invokeNoScope 入口 defer wg.Done 保证配对, Close 顺序改为
  Cancel → wg.Wait → Release → close(processCh) → handlerDone
- Runner: RunWithBrute 结束时关闭 OutputCh/FuzzyCh (与 RunWithCheck
  对称, Runner 自管 channel 生命周期); r.Pools defer Release 修复
  SDK 多次 Execute 时的 ants goroutine 泄露; RunWithCheck 的 stopCh
  改为缓冲 1 修复 ctx 取消时的 goroutine 泄露

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- RunOptions 新增 BeforePrepare/AfterPrepare 生命周期回调, 供 aiscan 控制初始化流程
- 新增 Help() 函数以编程方式获取命令行帮助文本

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- reqCount/failedCount 改为 atomic.Int64, done 改为 atomic.Bool
- rand.Source 加 sync.Mutex 防止并发 panic
- Invoke 失败时正确回退 wg 计数, 避免死锁
- 新增 waitWorkers() 排空残留消息, ctx.Done 正确设置退出标记
- Close() 增加 nil 检查防止 panic

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- FingerEngine nil 检查防止未初始化时 panic (baseline.go, fingers.go)
- 日志/颜色/指纹引擎/Extractor 注册增加状态检查, 防止 SDK 多次调用时重复设置

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… faster startup

- go:generate now uses -embed flag to produce //go:embed binary data
- templates.go reduced from 125KB base64 source to 0.9KB + 93KB .bin files
- binary saves ~28KB (removes base64 decode overhead at runtime)
- templates submodule updated with embed-aware generator

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bug fixes:
- Defer scopeLocker.Unlock in doScopeCrawl (deadlock on panic)
- Defer statsMu.Unlock in recordStat (deadlock on panic)
- Defer RUnlock in resource_provider.LoadConfig via inline func
- Fix data race in invoke(): move bl field writes before doRedirect
- Close response body on ReadAll error (connection leak)
- Add defer raw.Close() for raw file parsing (fd leak)
- Safe type assertion in load.go keyword parsing (panic on bad YAML)
- Check ants pool creation errors in NewBrutePool/NewCheckPool

New tests (15 test functions):
- pool_test.go: scopeLocker panic recovery, cancel mid-processing,
  single-threaded map access, valid pool creation
- runner_test.go: concurrent recordStat safety, nil stat handling
- load_test.go: malformed YAML tolerance, valid YAML loading
- e2e_test.go: normal brute scan, context cancellation, server errors,
  WAF behavior, multi-target check mode, mixed status codes

CI hardening:
- Add -race detector (Linux, -short mode)
- Add -timeout 300s to prevent deadlock hangs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root cause: the atomic.Bool + polling monitor goroutine pattern had a
race between wg.Wait() in the monitor and wg.Add(1) in the main loop.
When the monitor observed done=true and started Wait, the main loop
could still dispatch new work, causing Close().wg.Wait() to hang.

Fix: replace with nil-channel + sync.Once pattern. When the word stream
exhausts or limit is hit, worderCh is set to nil (disabling that select
branch permanently), then a single goroutine waits for wg to reach zero.
Since wg.Add(1) only occurs in the worderCh branch, nil-ing it before
Wait guarantees no new Add after Wait starts — no race possible.

Other fixes:
- Task feeder goroutine now ctx-aware (prevents leak on cancel)
- AddPool checks Invoke error (prevents poolwg counter mismatch)
- Revert resource_provider IIFE (reading a struct field cannot panic)
- Remove E2E -short skip (race is fixed, full coverage in CI)
- Fix Go 1.24+ vet: non-constant format strings in Init()

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root cause: doCheck() called reqPool.Invoke() from the Handler goroutine.
When all reqPool workers blocked on sendProcess waiting for Handler to
drain processCh, and Handler blocked on Invoke waiting for a free worker,
a circular wait formed.

Fix: doCheck now uses addAddition() to submit check requests via
additionCh consumed by the Run loop, breaking the circular dependency.

Before: 16 targets x 500 words = HANG (>130s)
After:  16 targets x 500 words = 1.8s

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…fter fingerprint detection

Supports check mode (exploit verification via finger field) and brute mode
(default credential testing via zombie/tags field). POC templates are only
executed against targets whose fingerprints match, avoiding blind scanning.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ncel

When ctx is cancelled (e.g. IsFailed threshold), the Run loop breaks
and stops reading additionCh. But doCheck (now via addAddition) may
have queued items with wg.Add(1) that no one consumes. Close().wg.Wait()
hangs forever.

Fix: spawn a drain goroutine in Close() before wg.Wait() that consumes
and Done()s remaining additionCh items, then close the channel after
Wait returns.

Verified: 16 IPs x 2 ports x 1000 words completes with EXIT 0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fingers now defaults to RE2 regex engine with AC pre-filtering.
No build tag changes needed — RE2 is the new default.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The file was referenced by //go:embed but never committed,
causing build failures when consumed as a remote Go module.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
go generate with the updated templates submodule (7d5675c) produces
different embedded data and code. Key changes:
- cmd/cmd.go: logs.Info/Important → logs.InfoLevel/ImportantLevel
- pkg/templates.go: remove proton_rules.bin/neutron.bin embeds (no longer needed)
- core/baseline: use ProtonExtract instead of Extractors.Extract
- core/format: list proton extractor names
- Update embedded binary data files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The replace pinned a pre-v1.0.3 pseudo-version up to the v1.0.3 release.
proxyclient v1.1.0 is now published, so require it directly and remove
the replace. Core schemes (SOCKS/SOCKS5/HTTP/HTTPS) cover spray's proxy
use; the extra protocols (trojan/vmess/ssh/...) are split into separate
modules in v1.1.0 but spray doesn't use them. go build ./... passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gomod (grouped golang.org/x/* and chainreactors/*) plus github-actions where present. No ignore on chainreactors/* so inter-repo deps are auto-updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps [github.com/panjf2000/ants/v2](https://github.com/panjf2000/ants) from 2.9.1 to 2.12.1.
- [Release notes](https://github.com/panjf2000/ants/releases)
- [Commits](panjf2000/ants@v2.9.1...v2.12.1)

---
updated-dependencies:
- dependency-name: github.com/panjf2000/ants/v2
  dependency-version: 2.12.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github May 29, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies, go. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot @github

dependabot Bot commented on behalf of github Jun 23, 2026

Copy link
Copy Markdown
Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot Bot deleted the dependabot/go_modules/github.com/panjf2000/ants/v2-2.12.1 branch June 23, 2026 15:39
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.

2 participants