mirror of
https://github.com/tw93/Mole.git
synced 2026-03-22 18:30:08 +00:00
fix: harden CI test stability and status collector resilience
This commit is contained in:
@@ -230,6 +230,9 @@ func (c *Collector) Collect() (MetricsSnapshot, error) {
|
||||
|
||||
// Host info is cached by gopsutil; fetch once.
|
||||
hostInfo, _ := host.Info()
|
||||
if hostInfo == nil {
|
||||
hostInfo = &host.InfoStat{}
|
||||
}
|
||||
|
||||
var (
|
||||
wg sync.WaitGroup
|
||||
@@ -255,6 +258,18 @@ func (c *Collector) Collect() (MetricsSnapshot, error) {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
errMu.Lock()
|
||||
panicErr := fmt.Errorf("collector panic: %v", r)
|
||||
if mergeErr == nil {
|
||||
mergeErr = panicErr
|
||||
} else {
|
||||
mergeErr = fmt.Errorf("%v; %w", mergeErr, panicErr)
|
||||
}
|
||||
errMu.Unlock()
|
||||
}
|
||||
}()
|
||||
if err := fn(); err != nil {
|
||||
errMu.Lock()
|
||||
if mergeErr == nil {
|
||||
|
||||
Reference in New Issue
Block a user