Closed
Description
When running revive over a medium size codebase (~1500 files) it occasionally hits the system file descriptor limit.
Originally we suspected Chrome eating up FDs, but this still happens even with no other software running on the system, and with high system wide limits set.
After some profiling it seems that revive will spawn a new goroutine for every file upon calling revive.Lint
, all at the same time.
To Reproduce
/go/.bin/revive -formatter=stylish -config=.revive.toml ./cmd/... ./pkg/...
open pkg/service/flags/flags.go: too many open files
.revive.toml
ignoreGeneratedHeader = false
severity = "error"
confidence = 0.8
errorCode = 1
# https://github.com/mgechev/revive#available-rules
[rule.atomic]
[rule.blank-imports]
[rule.bool-literal-in-expr]
[rule.confusing-results]
[rule.constant-logical-expr]
[rule.context-keys-type]
[rule.dot-imports]
[rule.empty-block]
[rule.error-naming]
[rule.error-return]
[rule.errorf]
[rule.get-return]
[rule.if-return]
[rule.increment-decrement]
[rule.indent-error-flow]
[rule.modifies-parameter]
[rule.modifies-value-receiver]
[rule.range-val-address]
[rule.range-val-in-closure]
[rule.range]
[rule.receiver-naming]
[rule.redefines-builtin-id]
[rule.string-of-int]
[rule.struct-tag]
[rule.superfluous-else]
[rule.time-naming]
[rule.unexported-return]
[rule.unreachable-code]
[rule.var-declaration]
[rule.waitgroup-by-value]
Expected behavior
Should lint the full repo without incident.
Desktop:
- OS: MacOS
- go 1.17.5
I have a proposed solution - PR will follow.