osbase/supervisor: log runnable errors as fatal

As describe in the issue we are only logging the final error and
reschedule notice into supervisor's own dn.
This modifies said behavior to log the final error as fatal.

Closes monogon-dev/monogon#296

Change-Id: I048cf38fe3e60df9a6722cfe0c6e1427eaddb586
Reviewed-on: https://review.monogon.dev/c/monogon/+/4032
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/osbase/supervisor/supervisor_processor.go b/osbase/supervisor/supervisor_processor.go
index 832ec73..b0d0bcb 100644
--- a/osbase/supervisor/supervisor_processor.go
+++ b/osbase/supervisor/supervisor_processor.go
@@ -10,6 +10,8 @@
 	"runtime/debug"
 	"sort"
 	"time"
+
+	"source.monogon.dev/osbase/logtree"
 )
 
 // The processor maintains runnable goroutines - ie., when requested will start
@@ -283,7 +285,8 @@
 		err = fmt.Errorf("returned nil when %s", n.state)
 	}
 
-	s.ilogger.Errorf("%s: %v", n.dn(), err)
+	s.logtree.MustLeveledFor(logtree.DN(n.dn())).Fatalf("runnable returned error: %v", err)
+
 	// Mark as dead.
 	n.state = NodeStateDead
 	s.metrics.NotifyNodeState(r.dn, n.state)