From c46b023d7a165d4b1a32f2b6fdc00d66334597f1 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期六, 11 一月 2020 16:59:55 +0800 Subject: [PATCH] debug --- main.go | 53 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 38 insertions(+), 15 deletions(-) diff --git a/main.go b/main.go index 777cf7c..02e2e6c 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,13 @@ import ( "analysis/logo" "analysis/util" + "fmt" + "os/exec" + "os/signal" + "runtime/debug" "strconv" + "syscall" + "time" "analysis/app/master" "analysis/app/slave" @@ -12,8 +18,6 @@ "flag" "os" - - "basic.com/valib/gogpu.git" // "net/http" // _ "net/http/pprof" ) @@ -36,8 +40,8 @@ ) func init() { - flag.StringVar(&role, "role", roleMaster, "run process role master/slave, default single") - flag.StringVar(&runType, "sdk", util.FeatAll, "run sdk type, face/facedetect/facecompare/yolo,etc.") + flag.StringVar(&role, "role", roleMaster, "run process role master/slave, default master") + flag.StringVar(&runType, "sdk", util.FeatAll, "run sdk type, facedetect/yolo,etc.") flag.StringVar(&id, "id", util.FakeSdkID, "sdk id as ipc label") flag.StringVar(&configPath, util.ConfigPath, "", "sdk config file path") @@ -88,12 +92,6 @@ func main() { - indices := gogpu.RankGPU() - if len(indices) == 0 { - logo.Errorln("there is no gpu for valid") - return - } - util.InitConfig() flag.Parse() @@ -113,18 +111,20 @@ ret := false if role == roleMaster { + defer dump(util.LogFile + "_dump_" + time.Now().Format("20060102150405")) setParamters() - ret = master.Run(ctx, configPath, "./libcomm.so") + ret = master.Run(ctx, "./libcomm.so", configPath) } else if role == roleSlave { ret = slave.Run(ctx, configPath, runType, id, gpu, shm) + } else if role == "test" { + ret = slave.TwoPluginConflict("./libcomm.so", "./zconf/Yolo.json") } if ret { - // c := make(chan os.Signal, 1) - // signal.Notify(c, os.Interrupt, os.Kill, unix.SIGTERM) - // <-c - select {} + c := make(chan os.Signal, 1) + signal.Notify(c, os.Interrupt, os.Kill, syscall.SIGTERM) + <-c } cancel() @@ -143,3 +143,26 @@ // viper.AddConfigPath("./") // envString := "" + +func dump(dumpFile string) { + dumpErr := recover() + if dumpErr == nil { + return + } + f, err := os.Create(dumpFile) + if err != nil { + return + } + f.WriteString(fmt.Sprintf("panic:\r\n%v", dumpErr)) + f.WriteString("\r\n\nstack:\r\n") + f.WriteString(string(debug.Stack())) + f.Close() + + ////////////////////////////////////////////// + // restart master + + cmd := exec.Command(os.Args[0], os.Args[1:]...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.Start() +} -- Gitblit v1.8.0