refactor: rename variable & add log
This commit is contained in:
		
							parent
							
								
									916511d91a
								
							
						
					
					
						commit
						deba5665d9
					
				
							
								
								
									
										29
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								README.md
									
									
									
									
									
								
							|  | @ -13,19 +13,22 @@ go build -o ./build/joj3 ./cmd/joj3 | ||||||
| + DIRNAME=./_example/simple | + DIRNAME=./_example/simple | ||||||
| + cd ./_example/simple | + cd ./_example/simple | ||||||
| + ./../../build/joj3 | + ./../../build/joj3 | ||||||
| 2024/03/04 02:57:50 INFO stage start name=compile | 2024/03/04 14:33:27 INFO stage start name=compile | ||||||
| 2024/03/04 02:57:50 INFO sandbox run cmd="{Args:[/usr/bin/g++ a.cc -o a] Env:[PATH=/usr/bin:/bin] Files:[0xc00007f540 0xc00007f580 0xc00007f5c0] CPULimit:10000000000 RealCPULimit:0 ClockLimit:0 MemoryLimit:104857600 StackLimit:0 ProcLimit:50 CPURateLimit:0 CPUSetLimit: CopyIn:map[] CopyInCached:map[] CopyInCwd:true CopyOut:[stdout stderr] CopyOutCached:[a] CopyOutMax:0 CopyOutDir: TTY:false StrictMemoryLimit:false DataSegmentLimit:false AddressSpaceLimit:false}" | 2024/03/04 14:33:27 INFO executor run start cmd="{Args:[/usr/bin/g++ a.cc -o a] Env:[PATH=/usr/bin:/bin] Files:[0xc000114340 0xc000114380 0xc0001143c0] CPULimit:10000000000 RealCPULimit:0 ClockLimit:0 MemoryLimit:104857600 StackLimit:0 ProcLimit:50 CPURateLimit:0 CPUSetLimit: CopyIn:map[] CopyInCached:map[] CopyInCwd:true CopyOut:[stdout stderr] CopyOutCached:[a] CopyOutMax:0 CopyOutDir: TTY:false StrictMemoryLimit:false DataSegmentLimit:false AddressSpaceLimit:false}" | ||||||
| 2024/03/04 02:57:50 INFO sandbox run ret="results:{status:Accepted  time:298002000  runTime:298694146  memory:57880576  files:{key:\"stderr\"  value:\"\"}  files:{key:\"stdout\"  value:\"\"}  fileIDs:{key:\"a\"  value:\"DMTRJR3V\"}}" | 2024/03/04 14:33:27 INFO executor run done result="{Status:Accepted ExitStatus:0 Error: Time:355.171ms RunTime:356.069198ms Memory:53.9 MiB Files:map[stderr:len:0 stdout:len:0] FileIDs:map[a:VNQ3A3QC] FileError:[]}" | ||||||
| 2024/03/04 02:57:50 INFO executor done result="{Status:Accepted ExitStatus:0 Error: Time:298.002ms RunTime:298.694146ms Memory:55.2 MiB Files:map[stderr:len:0 stdout:len:0] FileIDs:map[a:DMTRJR3V] FileError:[]}" | 2024/03/04 14:33:27 INFO parser run start config="map[comment:compile done score:100]" | ||||||
| 2024/03/04 02:57:50 INFO parser done result="&{Score:100 Comment:compile done, executor status: run time: 298694146 ns, memory: 57880576 bytes}" | 2024/03/04 14:33:27 INFO parser run done result="&{Score:100 Comment:compile done, executor status: run time: 356069198 ns, memory: 56561664 bytes}" | ||||||
| 2024/03/04 02:57:50 INFO stage start name=run | 2024/03/04 14:33:27 INFO stage start name=run | ||||||
| 2024/03/04 02:57:50 INFO sandbox run cmd="{Args:[./a] Env:[PATH=/usr/bin:/bin] Files:[0xc00007f600 0xc00007f640 0xc00007f680] CPULimit:10000000000 RealCPULimit:0 ClockLimit:0 MemoryLimit:104857600 StackLimit:0 ProcLimit:50 CPURateLimit:0 CPUSetLimit: CopyIn:map[] CopyInCached:map[a:a] CopyInCwd:false CopyOut:[stdout stderr] CopyOutCached:[] CopyOutMax:0 CopyOutDir: TTY:false StrictMemoryLimit:false DataSegmentLimit:false AddressSpaceLimit:false}" | 2024/03/04 14:33:27 INFO executor run start cmd="{Args:[./a] Env:[PATH=/usr/bin:/bin] Files:[0xc000114400 0xc000114440 0xc000114480] CPULimit:10000000000 RealCPULimit:0 ClockLimit:0 MemoryLimit:104857600 StackLimit:0 ProcLimit:50 CPURateLimit:0 CPUSetLimit: CopyIn:map[] CopyInCached:map[a:a] CopyInCwd:false CopyOut:[stdout stderr] CopyOutCached:[] CopyOutMax:0 CopyOutDir: TTY:false StrictMemoryLimit:false DataSegmentLimit:false AddressSpaceLimit:false}" | ||||||
| 2024/03/04 02:57:50 INFO sandbox run ret="results:{status:Accepted  time:1122000  runTime:1723994  memory:15384576  files:{key:\"stderr\"  value:\"\"}  files:{key:\"stdout\"  value:\"2\\n\"}}" | 2024/03/04 14:33:27 INFO executor run done result="{Status:Accepted ExitStatus:0 Error: Time:1.393ms RunTime:2.2294ms Memory:12.8 MiB Files:map[stderr:len:0 stdout:len:2] FileIDs:map[] FileError:[]}" | ||||||
| 2024/03/04 02:57:50 INFO executor done result="{Status:Accepted ExitStatus:0 Error: Time:1.122ms RunTime:1.723994ms Memory:14.7 MiB Files:map[stderr:len:0 stdout:len:2] FileIDs:map[] FileError:[]}" | 2024/03/04 14:33:27 INFO parser run start config="map[score:100 stdoutPath:1.stdout]" | ||||||
| 2024/03/04 02:57:50 INFO parser done result="&{Score:100 Comment:}" | 2024/03/04 14:33:27 INFO parser run done result="&{Score:100 Comment:}" | ||||||
| 2024/03/04 02:57:50 INFO stage result name=compile score=100 comment="compile done, executor status: run time: 298694146 ns, memory: 57880576 bytes" | 2024/03/04 14:33:27 INFO stage result name=compile score=100 comment="compile done, executor status: run time: 356069198 ns, memory: 56561664 bytes" | ||||||
| 2024/03/04 02:57:50 INFO stage result name=run score=100 comment="" | 2024/03/04 14:33:27 INFO stage result name=run score=100 comment="" | ||||||
| 2024/03/04 02:57:50 INFO sandbox cleanup | 2024/03/04 14:33:27 INFO executor cleanup start name=dummy | ||||||
|  | 2024/03/04 14:33:27 INFO executor cleanup done name=dummy | ||||||
|  | 2024/03/04 14:33:27 INFO executor cleanup start name=sandbox | ||||||
|  | 2024/03/04 14:33:27 INFO executor cleanup done name=sandbox | ||||||
| + cd - | + cd - | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -15,7 +15,6 @@ type Sandbox struct { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (e *Sandbox) Run(cmd stage.Cmd) (*stage.ExecutorResult, error) { | func (e *Sandbox) Run(cmd stage.Cmd) (*stage.ExecutorResult, error) { | ||||||
| 	slog.Info("sandbox run", "cmd", cmd) |  | ||||||
| 	if cmd.CopyIn == nil { | 	if cmd.CopyIn == nil { | ||||||
| 		cmd.CopyIn = make(map[string]stage.CmdFile) | 		cmd.CopyIn = make(map[string]stage.CmdFile) | ||||||
| 	} | 	} | ||||||
|  | @ -24,24 +23,22 @@ func (e *Sandbox) Run(cmd stage.Cmd) (*stage.ExecutorResult, error) { | ||||||
| 			cmd.CopyIn[k] = stage.CmdFile{FileID: &fileID} | 			cmd.CopyIn[k] = stage.CmdFile{FileID: &fileID} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	req := &pb.Request{Cmd: convertPBCmd([]stage.Cmd{cmd})} | 	pbReq := &pb.Request{Cmd: convertPBCmd([]stage.Cmd{cmd})} | ||||||
| 	ret, err := e.execClient.Exec(context.TODO(), req) | 	pbRet, err := e.execClient.Exec(context.TODO(), pbReq) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	if ret.Error != "" { | 	if pbRet.Error != "" { | ||||||
| 		return nil, fmt.Errorf("compile error: %s", ret.Error) | 		return nil, fmt.Errorf("sandbox execute error: %s", pbRet.Error) | ||||||
| 	} | 	} | ||||||
| 	slog.Info("sandbox run", "ret", ret) | 	executorRes := &convertPBResult(pbRet.Results)[0] | ||||||
| 	res := &convertPBResult(ret.Results)[0] | 	for fileName, fileID := range executorRes.FileIDs { | ||||||
| 	for fileName, fileID := range res.FileIDs { |  | ||||||
| 		e.cachedMap[fileName] = fileID | 		e.cachedMap[fileName] = fileID | ||||||
| 	} | 	} | ||||||
| 	return res, nil | 	return executorRes, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (e *Sandbox) Cleanup() error { | func (e *Sandbox) Cleanup() error { | ||||||
| 	slog.Info("sandbox cleanup") |  | ||||||
| 	for _, fileID := range e.cachedMap { | 	for _, fileID := range e.cachedMap { | ||||||
| 		_, err := e.execClient.FileDelete(context.TODO(), &pb.FileID{ | 		_, err := e.execClient.FileDelete(context.TODO(), &pb.FileID{ | ||||||
| 			FileID: fileID, | 			FileID: fileID, | ||||||
|  |  | ||||||
|  | @ -33,18 +33,20 @@ func Run(stages []Stage) []StageResult { | ||||||
| 	var parserResults []StageResult | 	var parserResults []StageResult | ||||||
| 	for _, stage := range stages { | 	for _, stage := range stages { | ||||||
| 		slog.Info("stage start", "name", stage.Name) | 		slog.Info("stage start", "name", stage.Name) | ||||||
|  | 		slog.Info("executor run start", "cmd", stage.ExecutorCmd) | ||||||
| 		executorResult, err := stage.Executor.Run(stage.ExecutorCmd) | 		executorResult, err := stage.Executor.Run(stage.ExecutorCmd) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			slog.Error("executor error", "name", stage.ExecutorName, "error", err) | 			slog.Error("executor run error", "name", stage.ExecutorName, "error", err) | ||||||
| 			break | 			break | ||||||
| 		} | 		} | ||||||
| 		slog.Info("executor done", "result", executorResult) | 		slog.Info("executor run done", "result", executorResult) | ||||||
|  | 		slog.Info("parser run start", "config", stage.ParserConfig) | ||||||
| 		parserResult, err := stage.Parser.Run(executorResult, stage.ParserConfig) | 		parserResult, err := stage.Parser.Run(executorResult, stage.ParserConfig) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			slog.Error("parser error", "name", stage.ExecutorName, "error", err) | 			slog.Error("parser run error", "name", stage.ExecutorName, "error", err) | ||||||
| 			break | 			break | ||||||
| 		} | 		} | ||||||
| 		slog.Info("parser done", "result", parserResult) | 		slog.Info("parser run done", "result", parserResult) | ||||||
| 		parserResults = append(parserResults, StageResult{ | 		parserResults = append(parserResults, StageResult{ | ||||||
| 			Name:         stage.Name, | 			Name:         stage.Name, | ||||||
| 			ParserResult: parserResult, | 			ParserResult: parserResult, | ||||||
|  | @ -54,10 +56,12 @@ func Run(stages []Stage) []StageResult { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func Cleanup() { | func Cleanup() { | ||||||
| 	for _, executor := range executorMap { | 	for name, executor := range executorMap { | ||||||
|  | 		slog.Info("executor cleanup start", "name", name) | ||||||
| 		err := executor.Cleanup() | 		err := executor.Cleanup() | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			slog.Error("executor cleanup error", "error", err) | 			slog.Error("executor cleanup error", "name", name, "error", err) | ||||||
| 		} | 		} | ||||||
|  | 		slog.Info("executor cleanup done", "name", name) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user