Compare commits

...

2 Commits

2 changed files with 22 additions and 13 deletions

View File

@ -15,9 +15,10 @@ var (
}{ }{
"c": {""}, "c": {""},
"cpp": {""}, "cpp": {""},
"rust": {""}, "go": {""},
"python3": {"/usr/bin/python3"}, "python3": {"/usr/bin/python3"},
"pypy3": {"/usr/bin/pypy3"}, "pypy3": {"/usr/bin/pypy3"},
"rust": {""},
} }
) )
@ -25,6 +26,7 @@ type ConfigRuntime struct {
TimeLimit int `json:"TimeLimit"` // in ms TimeLimit int `json:"TimeLimit"` // in ms
MemoryLimit int `json:"MemoryLimit"` // in mb MemoryLimit int `json:"MemoryLimit"` // in mb
NProcLimit int `json:"NProcLimit"` NProcLimit int `json:"NProcLimit"`
WriteFileLimit int `json:"WriteFileLimit"` // in mb
} }
var ( var (
@ -32,16 +34,19 @@ var (
TimeLimit: 300000, TimeLimit: 300000,
MemoryLimit: 256, MemoryLimit: 256,
NProcLimit: 64, NProcLimit: 64,
WriteFileLimit: 1,
} }
DefaultCompileRuntime = ConfigRuntime{ DefaultCompileRuntime = ConfigRuntime{
TimeLimit: 60000, TimeLimit: 60000,
MemoryLimit: 256, MemoryLimit: 256,
NProcLimit: 64, NProcLimit: 64,
WriteFileLimit: 64,
} }
DefaultCheckRuntime = ConfigRuntime{ DefaultCheckRuntime = ConfigRuntime{
TimeLimit: 60000, TimeLimit: 60000,
MemoryLimit: 128, MemoryLimit: 128,
NProcLimit: 64, NProcLimit: 64,
WriteFileLimit: 16,
} }
) )
@ -55,6 +60,9 @@ func (c *ConfigRuntime) Validate() error {
if c.NProcLimit <= 0 { if c.NProcLimit <= 0 {
return errors.New("nproc limit <= 0") return errors.New("nproc limit <= 0")
} }
if c.WriteFileLimit <= 0 {
return errors.New("write file limit <= 0")
}
return nil return nil
} }

View File

@ -25,6 +25,7 @@ func (s *service) SandboxArgsBuilder(meta *JudgeMeta, id int) string {
args = append(args, fmt.Sprintf("--memory_limit=%d", meta.Cfg.Lang.Runtime.Run.MemoryLimit)) args = append(args, fmt.Sprintf("--memory_limit=%d", meta.Cfg.Lang.Runtime.Run.MemoryLimit))
args = append(args, fmt.Sprintf("--nproc_limit=%d", meta.Cfg.Lang.Runtime.Run.NProcLimit)) args = append(args, fmt.Sprintf("--nproc_limit=%d", meta.Cfg.Lang.Runtime.Run.NProcLimit))
args = append(args, fmt.Sprintf("--time_limit=%d", meta.Cfg.Lang.Runtime.Run.TimeLimit)) args = append(args, fmt.Sprintf("--time_limit=%d", meta.Cfg.Lang.Runtime.Run.TimeLimit))
args = append(args, fmt.Sprintf("--fsize_limit=%d", meta.Cfg.Lang.Runtime.Run.WriteFileLimit))
args = append(args, fmt.Sprintf("--sandbox_template=%s", meta.Cfg.Lang.Lang)) args = append(args, fmt.Sprintf("--sandbox_template=%s", meta.Cfg.Lang.Lang))
args = append(args, fmt.Sprintf("--sandbox_action=%s", "ret")) args = append(args, fmt.Sprintf("--sandbox_action=%s", "ret"))
args = append(args, fmt.Sprintf("--uid=%d", 1000)) args = append(args, fmt.Sprintf("--uid=%d", 1000))