Skip to content

Commit

Permalink
Enhancement: add some log when started fail to help resolve problem w…
Browse files Browse the repository at this point in the history
…hen server don't start in daemon way

Signed-off-by: Victor1319 <834863182@qq.com>
  • Loading branch information
Victor1319 authored and shuoranliu committed Feb 9, 2021
1 parent d55e5a8 commit b43e2db
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 9 deletions.
21 changes: 18 additions & 3 deletions client/fuse.go
Expand Up @@ -106,9 +106,16 @@ func main() {
* Must notify the parent process through SignalOutcome anyway.
*/

cfg, _ := config.LoadConfigFile(*configFile)
cfg, err := config.LoadConfigFile(*configFile)
if err != nil {
daemonize.SignalOutcome(err)
os.Exit(1)
}

opt, err := parseMountOption(cfg)
if err != nil {
err = errors.NewErrorf("parse mount opt failed: %v\n", err)
fmt.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
Expand All @@ -124,6 +131,8 @@ func main() {
level := parseLogLevel(opt.Loglvl)
_, err = log.InitLog(opt.Logpath, LoggerPrefix, level, nil)
if err != nil {
err = errors.NewErrorf("Init log dir fail: %v\n", err)
fmt.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
Expand All @@ -132,6 +141,8 @@ func main() {
outputFilePath := path.Join(opt.Logpath, LoggerPrefix, LoggerOutput)
outputFile, err := os.OpenFile(outputFilePath, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)
if err != nil {
err = errors.NewErrorf("Open output file failed: %v\n", err)
fmt.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
Expand All @@ -151,22 +162,26 @@ func main() {
changeRlimit(defaultRlimit)

if err = sysutil.RedirectFD(int(outputFile.Fd()), int(os.Stderr.Fd())); err != nil {
err = errors.NewErrorf("Redirect fd failed: %v\n", err)
syslog.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}

registerInterceptedSignal(opt.MountPoint)

if err = checkPermission(opt); err != nil {
syslog.Println("check permission failed: ", err)
err = errors.NewErrorf("check permission failed: %v", err)
syslog.Println(err)
log.LogFlush()
_ = daemonize.SignalOutcome(err)
os.Exit(1)
}

fsConn, super, err := mount(opt)
if err != nil {
syslog.Println("mount failed: ", err)
err = errors.NewErrorf("mount failed: %v", err)
syslog.Println(err)
log.LogFlush()
_ = daemonize.SignalOutcome(err)
os.Exit(1)
Expand Down
28 changes: 22 additions & 6 deletions cmd/cmd.go
Expand Up @@ -17,6 +17,7 @@ package main
import (
"flag"
"fmt"
"github.com/chubaofs/chubaofs/util/errors"
syslog "log"
"net/http"
_ "net/http/pprof"
Expand Down Expand Up @@ -178,7 +179,9 @@ func main() {
server = console.NewServer()
module = ModuleConsole
default:
daemonize.SignalOutcome(fmt.Errorf("Fatal: role mismatch: %v", role))
err = errors.NewErrorf("Fatal: role mismatch: %s", role)
fmt.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}

Expand All @@ -201,7 +204,9 @@ func main() {

_, err = log.InitLog(logDir, module, level, nil)
if err != nil {
daemonize.SignalOutcome(fmt.Errorf("Fatal: failed to init log - %v", err))
err = errors.NewErrorf("Fatal: failed to init log - %v", err)
fmt.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
defer log.LogFlush()
Expand All @@ -210,6 +215,8 @@ func main() {
outputFilePath := path.Join(logDir, module, LoggerOutput)
outputFile, err := os.OpenFile(outputFilePath, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)
if err != nil {
err = errors.NewErrorf("Fatal: failed to open output path - %v", err)
fmt.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
Expand All @@ -220,6 +227,8 @@ func main() {
syslog.SetOutput(outputFile)

if err = sysutil.RedirectFD(int(outputFile.Fd()), int(os.Stderr.Fd())); err != nil {
err = errors.NewErrorf("Fatal: failed to redirect fd - %v", err)
syslog.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
Expand All @@ -228,6 +237,8 @@ func main() {

err = modifyOpenFiles()
if err != nil {
err = errors.NewErrorf("Fatal: failed to modify open files - %v", err)
syslog.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
Expand All @@ -236,7 +247,9 @@ func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
if err = ump.InitUmp(role, umpDatadir); err != nil {
log.LogFlush()
daemonize.SignalOutcome(fmt.Errorf("Fatal: init warnLogDir fail:%v ", err))
err = errors.NewErrorf("Fatal: failed to init ump warnLogDir - %v", err)
syslog.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}

Expand All @@ -246,7 +259,9 @@ func main() {
e := http.ListenAndServe(fmt.Sprintf(":%v", profPort), nil)
if e != nil {
log.LogFlush()
daemonize.SignalOutcome(fmt.Errorf("cannot listen pprof %v err %v", profPort, err))
err = errors.NewErrorf("cannot listen pprof %v err %v", profPort, err)
syslog.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}
}()
Expand All @@ -256,8 +271,9 @@ func main() {
err = server.Start(cfg)
if err != nil {
log.LogFlush()
syslog.Printf("Fatal: failed to start the ChubaoFS %v daemon err %v - ", role, err)
daemonize.SignalOutcome(fmt.Errorf("Fatal: failed to start the ChubaoFS %v daemon err %v - ", role, err))
err = errors.NewErrorf("Fatal: failed to start the ChubaoFS %s daemon err %v - ", role, err)
syslog.Println(err)
daemonize.SignalOutcome(err)
os.Exit(1)
}

Expand Down

0 comments on commit b43e2db

Please sign in to comment.