#1943 Able to config fsck timeout

This commit is contained in:
Unknwon 2015-12-09 11:38:12 -05:00
parent b8d48bdb62
commit 718d3ae258
7 changed files with 8 additions and 8 deletions

View file

@ -5,7 +5,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
![](public/img/gogs-large-resize.png) ![](public/img/gogs-large-resize.png)
##### Current version: 0.7.35 Beta ##### Current version: 0.7.36 Beta
| Web | UI | Preview | | Web | UI | Preview |
|:-------------:|:-------:|:-------:| |:-------------:|:-------:|:-------:|

View file

@ -296,6 +296,7 @@ SCHEDULE = @every 1h
; Repository health check ; Repository health check
[cron.repo_health_check] [cron.repo_health_check]
SCHEDULE = @every 24h SCHEDULE = @every 24h
TIMEOUT = 60s
; Arguments for command 'git fsck', e.g.: "--unreachable --tags" ; Arguments for command 'git fsck', e.g.: "--unreachable --tags"
; see more on http://git-scm.com/docs/git-fsck/1.7.5 ; see more on http://git-scm.com/docs/git-fsck/1.7.5
ARGS = ARGS =

View file

@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting" "github.com/gogits/gogs/modules/setting"
) )
const APP_VER = "0.7.35.1209 Beta" const APP_VER = "0.7.36.1209 Beta"
func init() { func init() {
runtime.GOMAXPROCS(runtime.NumCPU()) runtime.GOMAXPROCS(runtime.NumCPU())

View file

@ -1583,13 +1583,11 @@ func GitFsck() {
log.Trace("Doing: GitFsck") log.Trace("Doing: GitFsck")
args := append([]string{"fsck"}, setting.Cron.RepoHealthCheck.Args...)
if err := x.Where("id>0").Iterate(new(Repository), if err := x.Where("id>0").Iterate(new(Repository),
func(idx int, bean interface{}) error { func(idx int, bean interface{}) error {
repo := bean.(*Repository) repo := bean.(*Repository)
repoPath := repo.RepoPath() repoPath := repo.RepoPath()
_, _, err := process.ExecDir(-1, repoPath, "Repository health check", "git", args...) if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil {
if err != nil {
desc := fmt.Sprintf("Fail to health check repository(%s)", repoPath) desc := fmt.Sprintf("Fail to health check repository(%s)", repoPath)
log.Warn(desc) log.Warn(desc)
if err = CreateRepositoryNotice(desc); err != nil { if err = CreateRepositoryNotice(desc); err != nil {

File diff suppressed because one or more lines are too long

View file

@ -162,6 +162,7 @@ var (
Enabled bool Enabled bool
RunAtStart bool RunAtStart bool
Schedule string Schedule string
Timeout time.Duration
Args []string `delim:" "` Args []string `delim:" "`
} `ini:"cron.repo_health_check"` } `ini:"cron.repo_health_check"`
CheckRepoStats struct { CheckRepoStats struct {

View file

@ -1 +1 @@
0.7.35.1209 Beta 0.7.36.1209 Beta