Skip to content
This repository has been archived by the owner on Dec 23, 2024. It is now read-only.

Commit

Permalink
Merge pull request #16 from InVisionApp/update-err-logs
Browse files Browse the repository at this point in the history
Update error handling and logging
  • Loading branch information
Shawn Hartsell authored May 21, 2020
2 parents c1a49dc + 774b094 commit a8c7fb5
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 27 deletions.
14 changes: 5 additions & 9 deletions backend/mongo/masterlock.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,18 @@ func (m *MongoBackend) Lock(info *backend.MasterInfo) error {
if err == mgo.ErrNotFound {
// perform an insert
if err := m.lock.Collection().Insert(mmi); err != nil {
m.log.Errorf("unable to insert initial lock: %v", err)
return err
return fmt.Errorf("unable to insert initial lock: %v", err)
}

m.log.Info("successfully inserted initial lock")
return nil
}

e := fmt.Errorf("failed to fetch current master info: %v", err)
m.log.Error(e)
err = fmt.Errorf("failed to fetch current master info: %v", err)

m.log.Debug("attempting to refresh sessions in case of db issues")
m.refresh()

return e
return err
}

// has not been long enough since the last valid heart beat
Expand All @@ -84,9 +81,8 @@ func (m *MongoBackend) Lock(info *backend.MasterInfo) error {
}

if _, err := m.lock.Collection().Find(query).Apply(change, mmi); err != nil {
lErr := fmt.Errorf("unable to complete findModify: %v", err)
m.log.Error(lErr)
return lErr
err = fmt.Errorf("unable to complete findModify: %v", err)
return err
}

return nil
Expand Down
8 changes: 4 additions & 4 deletions backend/mongo/mongodb.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import (
"strings"
"sync"

"github.com/InVisionApp/go-logger"
log "github.com/InVisionApp/go-logger"
"github.com/InVisionApp/go-logger/shims/logrus"
"github.com/globalsign/mgo"
"github.com/newrelic/go-agent"
newrelic "github.com/newrelic/go-agent"
)

const (
Expand Down Expand Up @@ -118,7 +118,7 @@ func (m *MongoBackend) Connect() error {
dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
conn, err := tls.Dial("tcp", addr.String(), &tls.Config{})
if conn != nil {
m.log.Debugf("Connection local address: %s, remote address: %s", conn.LocalAddr(), conn.RemoteAddr())
m.log.Infof("Connection local address: %s, remote address: %s", conn.LocalAddr(), conn.RemoteAddr())
}
return conn, err
}
Expand Down Expand Up @@ -181,7 +181,7 @@ func (s *SmartCollection) Collection() *mgo.Collection {

func (s *SmartCollection) EnsureIndexes(idxs []*mgo.Index) error {
for _, idx := range idxs {
s.log.Debugf("Ensuring index: %s", idx.Name)
s.log.Infof("Ensuring index: %s", idx.Name)
if err := s.UpsertIndex(idx); err != nil {
return fmt.Errorf("could not ensure indexes on DB: %v", err)
}
Expand Down
3 changes: 1 addition & 2 deletions backend/mysql/masterlock.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,7 @@ func (m *MySQLBackend) Lock(info *backend.MasterInfo) error {

res, err := m.db.NamedExec(query, fields)
if err != nil {
m.log.Errorf("failed to update lock: %v", err)
return err
return fmt.Errorf("failed to update lock: %v", err)
}

// if no rows were modified, then probably another master got the lock
Expand Down
10 changes: 5 additions & 5 deletions backend/mysql/mysql.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"fmt"
"time"

"github.com/InVisionApp/go-logger"
log "github.com/InVisionApp/go-logger"
"github.com/InVisionApp/go-logger/shims/logrus"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
Expand Down Expand Up @@ -180,14 +180,14 @@ func (m *MySQLBackend) retryConnect() error {
}

func (m *MySQLBackend) createDB() error {
m.log.Debug("Creating new lock DB if it does not exist")
m.log.Info("Creating new lock DB if it does not exist")

_, err := m.db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS `%v`", m.DBName))
if err != nil {
return fmt.Errorf("unable to create initial lock DB: %v", err)
}

m.log.Debugf("Created new lock DB '%v' (or already existed)", m.DBName)
m.log.Infof("Created new lock DB '%v' (or already existed)", m.DBName)

return nil
}
Expand All @@ -212,14 +212,14 @@ func (m *MySQLBackend) createTable() error {
`last_heartbeat TIMESTAMP`+
`);`, m.TableName)

m.log.Debug("Attempting to create lock table")
m.log.Info("Attempting to create lock table")

_, err := m.db.DB.Exec(query)
if err != nil {
return fmt.Errorf("unable to create lock table: %v", err)
}

m.log.Debugf("Created new lock table '%v' (or already existed)", m.TableName)
m.log.Infof("Created new lock table '%v' (or already existed)", m.TableName)

return nil
}
4 changes: 2 additions & 2 deletions example/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"sync"
"time"

"github.com/InVisionApp/go-logger"
log "github.com/InVisionApp/go-logger"
logshim "github.com/InVisionApp/go-logger/shims/logrus"
"github.com/InVisionApp/go-master"
"github.com/InVisionApp/go-master/backend"
Expand All @@ -20,7 +20,7 @@ var (

func init() {
l := logrus.New()
l.SetLevel(logrus.DebugLevel)
l.SetLevel(logrus.InfoLevel)
logger = logshim.New(l)
}

Expand Down
8 changes: 3 additions & 5 deletions master.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"fmt"
"time"

"github.com/InVisionApp/go-logger"
log "github.com/InVisionApp/go-logger"
"github.com/gofrs/uuid"
"github.com/relistan/go-director"

Expand Down Expand Up @@ -162,8 +162,6 @@ func (m *master) runHeartBeat() {

// run the heartbeat
if err := m.lock.WriteHeartbeat(m.info); err != nil {
m.log.Debugf("failed to write heartbeat: %v", err)

m.sendError(fmt.Errorf("failed to write heartbeat: %v", err))
// if heartbeat fails or master lock lost, stop the tasks
m.cleanupMaster()
Expand All @@ -186,7 +184,7 @@ func (m *master) becomeMaster() bool {
}

if err := m.lock.Lock(mi); err != nil {
m.log.Debugf("failed to lock: %v", err)
m.sendError(fmt.Errorf("failed to acquire lock while becoming master: %v", err))
return false
}

Expand Down Expand Up @@ -226,7 +224,7 @@ func (m *master) Stop() error {
// this is a best effort. The heartbeat loop has been stopped,
// so the lock will be lost eventually either way
if err := m.lock.UnLock(m.uuid); err != nil {
m.log.Errorf("failed to release lock on master backend: %v", err)
m.sendError(fmt.Errorf("failed to release lock on master backend: %v", err))
}

// at this point, as far as this node is concerned, it is
Expand Down

0 comments on commit a8c7fb5

Please sign in to comment.