Skip to content

Commit

Permalink
Add ulimit check, and tidy unit test cases (#11678)
Browse files Browse the repository at this point in the history
* Add ulimit check, and tidy unit test cases to avoid needing to have all results and perfect ordering

* Make order independent check recursive

* Fix unit tests

* Try a 5s request timeout
  • Loading branch information
sgmiller committed Jun 1, 2021
1 parent f43802d commit 6583a55
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 0 deletions.
3 changes: 3 additions & 0 deletions command/operator_diagnose.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,9 @@ func (c *OperatorDiagnoseCommand) offlineDiagnostics(ctx context.Context) error
ctx, span := diagnose.StartSpan(ctx, "initialization")
defer span.End()

// OS Specific checks
// Check open file count
diagnose.OSChecks(ctx)
diagnose.Test(ctx, "disk-usage", diagnose.DiskUsageCheck)

server.flagConfigs = c.flagConfigs
Expand Down
29 changes: 29 additions & 0 deletions command/operator_diagnose_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,31 @@ func TestOperatorDiagnoseCommand_Run(t *testing.T) {
"-config", "./server/test-fixtures/config_diagnose_ok.hcl",
},
[]*diagnose.Result{
{
Name: "open file limits",
Status: diagnose.OkStatus,
},
{
Name: "parse-config",
Status: diagnose.OkStatus,
},
{
Name: "init-listeners",
Status: diagnose.WarningStatus,
Children: []*diagnose.Result{
{
Name: "create-listeners",
Status: diagnose.OkStatus,
},
{
Name: "check-listener-tls",
Status: diagnose.WarningStatus,
Warnings: []string{
"TLS is disabled in a Listener config stanza.",
},
},
},
},
{
Name: "storage",
Status: diagnose.OkStatus,
Expand Down Expand Up @@ -314,6 +339,10 @@ func compareResult(exp *diagnose.Result, act *diagnose.Result) error {
return fmt.Errorf(strings.Join(errStrings, ","))
}

if len(exp.Children) > 0 {
return compareResults(exp.Children, act.Children)
}

if len(exp.Children) > 0 {
return compareResults(exp.Children, act.Children)
}
Expand Down
26 changes: 26 additions & 0 deletions vault/diagnose/os_unix.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// +build !windows

package diagnose

import (
"context"
"fmt"
"golang.org/x/sys/unix"
)

func OSChecks(ctx context.Context) {
var limit unix.Rlimit
if err := unix.Getrlimit(unix.RLIMIT_NOFILE, &limit); err != nil {
SpotError(ctx, "open file limits", fmt.Errorf("could not determine open file limit: %w", err))
} else {
min := limit.Cur
if limit.Max < min {
min = limit.Max
}
if min <= 1024 {
SpotWarn(ctx, "open file limits", fmt.Sprintf("set to %d, which may be insufficient.", min))
} else {
SpotOk(ctx, "open file limits", fmt.Sprintf("set to %d", min))
}
}
}
11 changes: 11 additions & 0 deletions vault/diagnose/os_windows.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// +build windows

package diagnose

import (
"context"
)

func OSChecks(ctx context.Context) {
// None so far
}

0 comments on commit 6583a55

Please sign in to comment.