Skip to content

Commit

Permalink
report server launch errors (#8189)
Browse files Browse the repository at this point in the history
When starting the server using `platform server`, errors occuring during
startup are not reported in the console. The command exit with a 0 exit
code (i.e. "success"), although the server failed to launch.

With this change, when an error occurs while initializing the app (like
a missing or invalid configuration file):

- the error is printed to the console;
- the command exit with a "-1" exit code.

This allow shell scripts to properly detect the startup failure, and to
react to it.

Example of error displayed:

```
$ platform server
Error: LoadConfig: Error decoding config file=config.json, err=While parsing config: invalid character ':' after top-level value,
``
  • Loading branch information
kemenaran authored and ccbrown committed Feb 2, 2018
1 parent 2256e23 commit 07902b4
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions cmd/platform/server.go
Expand Up @@ -28,9 +28,10 @@ const (
var MaxNotificationsPerChannelDefault int64 = 1000000

var serverCmd = &cobra.Command{
Use: "server",
Short: "Run the Mattermost server",
RunE: runServerCmd,
Use: "server",
Short: "Run the Mattermost server",
RunE: runServerCmd,
SilenceUsage: true,
}

func runServerCmd(cmd *cobra.Command, args []string) error {
Expand All @@ -41,11 +42,10 @@ func runServerCmd(cmd *cobra.Command, args []string) error {

disableConfigWatch, _ := cmd.Flags().GetBool("disableconfigwatch")

runServer(config, disableConfigWatch)
return nil
return runServer(config, disableConfigWatch)
}

func runServer(configFileLocation string, disableConfigWatch bool) {
func runServer(configFileLocation string, disableConfigWatch bool) error {
options := []app.Option{app.ConfigFile(configFileLocation)}
if disableConfigWatch {
options = append(options, app.DisableConfigWatch)
Expand All @@ -54,7 +54,7 @@ func runServer(configFileLocation string, disableConfigWatch bool) {
a, err := app.New(options...)
if err != nil {
l4g.Error(err.Error())
return
return err
}
defer a.Shutdown()

Expand Down Expand Up @@ -172,6 +172,8 @@ func runServer(configFileLocation string, disableConfigWatch bool) {

a.Jobs.StopSchedulers()
a.Jobs.StopWorkers()

return nil
}

func runSecurityJob(a *app.App) {
Expand Down

0 comments on commit 07902b4

Please sign in to comment.