Fix reset network

This commit is contained in:
世界
2026-05-05 20:19:19 +08:00
parent 3609cf660f
commit cfb2f8b652
7 changed files with 25 additions and 19 deletions
+3 -3
View File
@@ -27,7 +27,7 @@ type Service struct {
boxService.Adapter
ctx context.Context
logger log.ContextLogger
router adapter.Router
network adapter.NetworkManager
timerConfig timerConfig
adaptiveTimer *adaptiveTimer
lastReportTime atomic.Int64
@@ -44,13 +44,13 @@ func NewService(ctx context.Context, logger log.ContextLogger, tag string, optio
Adapter: boxService.NewAdapter(boxConstant.TypeOOMKiller, tag),
ctx: ctx,
logger: logger,
router: service.FromContext[adapter.Router](ctx),
network: service.FromContext[adapter.NetworkManager](ctx),
timerConfig: config,
}, nil
}
func (s *Service) createTimer() {
s.adaptiveTimer = newAdaptiveTimer(s.logger, s.router, s.timerConfig, s.writeOOMReport)
s.adaptiveTimer = newAdaptiveTimer(s.logger, s.network, s.timerConfig, s.writeOOMReport)
}
func (s *Service) startTimer() {
+5 -5
View File
@@ -100,7 +100,7 @@ func buildTimerConfig(options option.OOMKillerServiceOptions, memoryLimit uint64
type adaptiveTimer struct {
timerConfig
logger log.ContextLogger
router adapter.Router
network adapter.NetworkManager
onTriggered func(uint64)
limitThresholds pressureThresholds
@@ -115,11 +115,11 @@ type adaptiveTimer struct {
pressureBaselineTime time.Time
}
func newAdaptiveTimer(logger log.ContextLogger, router adapter.Router, config timerConfig, onTriggered func(uint64)) *adaptiveTimer {
func newAdaptiveTimer(logger log.ContextLogger, network adapter.NetworkManager, config timerConfig, onTriggered func(uint64)) *adaptiveTimer {
t := &adaptiveTimer{
timerConfig: config,
logger: logger,
router: router,
network: network,
onTriggered: onTriggered,
}
if config.policyMode == policyModeMemoryLimit || config.policyMode == policyModeNetworkExtension {
@@ -218,14 +218,14 @@ func (t *adaptiveTimer) poll() {
t.logger.Warn("memory growth rate critical (report only), usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample))
} else {
t.logger.Error("memory growth rate critical, usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample), ", resetting network")
t.router.ResetNetwork()
t.network.ResetNetwork()
}
} else {
if t.killerDisabled {
t.logger.Warn("memory threshold reached (report only), usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample))
} else {
t.logger.Error("memory threshold reached, usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample), ", resetting network")
t.router.ResetNetwork()
t.network.ResetNetwork()
}
}
badCleanup()