diff --git a/scheduler/generic_sched.go b/scheduler/generic_sched.go index bf1876f7a..4f0f5b889 100644 --- a/scheduler/generic_sched.go +++ b/scheduler/generic_sched.go @@ -2,6 +2,7 @@ package scheduler import ( "fmt" + "runtime/debug" "sort" "time" @@ -145,7 +146,8 @@ func (s *GenericScheduler) Process(eval *structs.Evaluation) (err error) { defer func() { if r := recover(); r != nil { - err = fmt.Errorf("processing eval %q panicked scheduler - please report this as a bug! - %v", eval.ID, r) + s.logger.Error("processing eval panicked scheduler - please report this as a bug!", "eval_id", eval.ID, "error", r, "stack_trace", string(debug.Stack())) + err = fmt.Errorf("failed to process eval: %v", r) } }() diff --git a/scheduler/scheduler_system.go b/scheduler/scheduler_system.go index 372531c1c..5deaccd81 100644 --- a/scheduler/scheduler_system.go +++ b/scheduler/scheduler_system.go @@ -2,6 +2,7 @@ package scheduler import ( "fmt" + "runtime/debug" log "github.com/hashicorp/go-hclog" "github.com/hashicorp/go-memdb" @@ -76,7 +77,8 @@ func (s *SystemScheduler) Process(eval *structs.Evaluation) (err error) { defer func() { if r := recover(); r != nil { - err = fmt.Errorf("processing eval %q panicked scheduler - please report this as a bug! - %v", eval.ID, r) + s.logger.Error("processing eval panicked scheduler - please report this as a bug!", "eval_id", eval.ID, "error", r, "stack_trace", string(debug.Stack())) + err = fmt.Errorf("failed to process eval: %v", r) } }()