Call to os.Exit or log.Fatal and friends made in function using defer CRT-D0011
Bug risk
Major
8 months ago4 years old
log.Fatal will exit, and defer tick.Stop() will not run
 421	defer tick.Stop()
 422	totalMem, err := memory.MemTotal()
 423	if err != nil {
 424		log.Fatal("fail to get total memory:%s", zap.Error(err)) 425	}
 426	log.Info("memory info", zap.Uint64("total-mem", totalMem))
 427	cfg := c.opt.GetPDServerConfig()
log.Fatal will exit, and defer logutil.LogPanic() will not run
593	if err == nil {
594		log.ReplaceGlobals(cfg.Logger, cfg.LogProps)
595	} else {
596		log.Fatal("initialize logger error", errs.ZapError(err))597	}
598	// Flushing any buffered log entries
599	log.Sync()
log.Fatal will exit, and defer logutil.LogPanic() will not run
465	if err == nil {
466		log.ReplaceGlobals(cfg.Logger, cfg.LogProps)
467	} else {
468		log.Fatal("initialize logger error", errs.ZapError(err))469	}
470	// Flushing any buffered log entries
471	log.Sync()
log.Fatal will exit, and defer logutil.LogPanic() will not run
394	if err == nil {
395		log.ReplaceGlobals(cfg.Logger, cfg.LogProps)
396	} else {
397		log.Fatal("initialize logger error", errs.ZapError(err))398	}
399	// Flushing any buffered log entries
400	log.Sync()
log.Fatal will exit, and defer s.ServerLoopWgDone() will not run
249		if s.IsClosed() {
250			log.Info("mux stopped serving", errs.ZapError(err))
251		} else {
252			log.Fatal("mux stopped serving unexpectedly", errs.ZapError(err))253		}
254	}
255}