mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 06:03:51 +03:00
git-grep: set timeout to 2s by default and allow configuring it
We need to shorten the timeout to bound effectively for computation size. This protects against "too big" repos. This also protects to some extent against too long lines if kept to very low values (basically so that grep cannot run out of memory beforehand). Docs-PR: forgejo/docs#812
This commit is contained in:
parent
44002a6399
commit
824dd6bc5d
3 changed files with 7 additions and 0 deletions
|
@ -732,6 +732,7 @@ LEVEL = Info
|
|||
;CLONE = 300
|
||||
;PULL = 300
|
||||
;GC = 60
|
||||
;GREP = 2
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Git config options
|
||||
|
|
|
@ -15,6 +15,7 @@ import (
|
|||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
)
|
||||
|
@ -94,6 +95,8 @@ func GrepSearch(ctx context.Context, repo *Repository, search string, opts GrepO
|
|||
opts.MaxResultLimit = cmp.Or(opts.MaxResultLimit, 50)
|
||||
stderr := bytes.Buffer{}
|
||||
err = cmd.Run(&RunOpts{
|
||||
Timeout: time.Duration(setting.Git.Timeout.Grep) * time.Second,
|
||||
|
||||
Dir: repo.Path,
|
||||
Stdout: stdoutWriter,
|
||||
Stderr: &stderr,
|
||||
|
|
|
@ -37,6 +37,7 @@ var Git = struct {
|
|||
Clone int
|
||||
Pull int
|
||||
GC int `ini:"GC"`
|
||||
Grep int
|
||||
} `ini:"git.timeout"`
|
||||
}{
|
||||
DisableDiffHighlight: false,
|
||||
|
@ -59,6 +60,7 @@ var Git = struct {
|
|||
Clone int
|
||||
Pull int
|
||||
GC int `ini:"GC"`
|
||||
Grep int
|
||||
}{
|
||||
Default: 360,
|
||||
Migrate: 600,
|
||||
|
@ -66,6 +68,7 @@ var Git = struct {
|
|||
Clone: 300,
|
||||
Pull: 300,
|
||||
GC: 60,
|
||||
Grep: 2,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue