Skip to content

Commit c896cbe

Browse files
committed
ignore connection error in readiness probe
1 parent e5ae37d commit c896cbe

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

cmd/mongodb-healthcheck/healthcheck/health.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ type ReplSetStatus struct {
127127
type InitialSyncStatus interface{}
128128

129129
func CheckState(rs ReplSetStatus, startupDelaySeconds int64, oplogSize int64) error {
130+
if rs.GetSelf() == nil {
131+
return errors.New("invalid replset status")
132+
}
130133
uptime := rs.GetSelf().Uptime
131134

132135
switch rs.MyState {

cmd/mongodb-healthcheck/healthcheck/readiness.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,25 +44,28 @@ func MongodReadinessCheck(ctx context.Context, cnf *db.Config) error {
4444
return err
4545
}
4646

47-
s, err := func() (ReplSetStatus, error) {
47+
s, err := func() (*ReplSetStatus, error) {
4848
cnf.Timeout = time.Second
4949
client, err := db.Dial(ctx, cnf)
5050
if err != nil {
51-
return ReplSetStatus{}, errors.Wrap(err, "connection error")
51+
return nil, nil
5252
}
5353
defer func() {
5454
if derr := client.Disconnect(ctx); derr != nil && err == nil {
5555
err = errors.Wrap(derr, "failed to disconnect")
5656
}
5757
}()
58-
return getStatus(ctx, client)
58+
rs, err := getStatus(ctx, client)
59+
if err != nil {
60+
return nil, err
61+
}
62+
return &rs, nil
5963
}()
60-
if err != nil {
61-
log.Error(err, "Failed to get replset status")
62-
return nil
64+
if err != nil || s == nil {
65+
return err
6366
}
6467

65-
if err := CheckState(s, 0, 0); err != nil {
68+
if err := CheckState(*s, 0, 0); err != nil {
6669
return errors.Wrap(err, "check state")
6770
}
6871

0 commit comments

Comments
 (0)