fix: 修复应用日志异常膨胀

This commit is contained in:
ryan
2026-06-21 10:21:18 +08:00
parent a343c7a605
commit b12a9b0185
12 changed files with 358 additions and 53 deletions
+6 -5
View File
@@ -95,12 +95,13 @@ func (m *Manager) GetCurrentConfigChecksum() string {
}
// UpdateConfig reconciles running frpc processes with the latest tunnel configuration.
func (m *Manager) UpdateConfig(ctx context.Context, newConfig *service.FlaredTunnelConfigResponse) error {
// The returned bool indicates whether the active config version or checksum changed.
func (m *Manager) UpdateConfig(ctx context.Context, newConfig *service.FlaredTunnelConfigResponse) (bool, error) {
m.mu.Lock()
defer m.mu.Unlock()
if newConfig == nil {
return nil
return false, nil
}
versionChanged := newConfig.Version != m.currentVersion || newConfig.Checksum != m.currentChecksum
@@ -111,7 +112,7 @@ func (m *Manager) UpdateConfig(ctx context.Context, newConfig *service.FlaredTun
}
if err := os.MkdirAll(m.cfg.DataDir, dataDirPerm); err != nil {
return fmt.Errorf("create data dir failed: %w", err)
return false, fmt.Errorf("create data dir failed: %w", err)
}
activeRelays := make(map[string]struct{})
@@ -155,9 +156,9 @@ func (m *Manager) UpdateConfig(ctx context.Context, newConfig *service.FlaredTun
if versionChanged {
m.currentVersion = newConfig.Version
m.currentChecksum = newConfig.Checksum
return m.saveState()
return true, m.saveState()
}
return nil
return false, nil
}
func (m *Manager) restartProcess(ctx context.Context, relayID string, configPath string) {
+6 -6
View File
@@ -119,7 +119,7 @@ func TestStartProcessSuccess(t *testing.T) {
Proxies: nil,
}
err := m.UpdateConfig(context.Background(), newConfig)
_, err := m.UpdateConfig(context.Background(), newConfig)
if err != nil {
t.Fatalf("failed to UpdateConfig: %v", err)
}
@@ -160,7 +160,7 @@ func TestStartProcessFailureAndBackoff(t *testing.T) {
Proxies: nil,
}
_ = m.UpdateConfig(context.Background(), newConfig)
_, _ = m.UpdateConfig(context.Background(), newConfig)
assertStatusEventually(t, m, "relay-1", "error", 4*time.Second)
@@ -208,7 +208,7 @@ func TestUnexpectedExit0CPUProtection(t *testing.T) {
Proxies: nil,
}
_ = m.UpdateConfig(context.Background(), newConfig)
_, _ = m.UpdateConfig(context.Background(), newConfig)
assertStatusEventually(t, m, "relay-1", "stopped", 4*time.Second)
@@ -249,7 +249,7 @@ func TestBackoffReset(t *testing.T) {
Proxies: nil,
}
_ = m.UpdateConfig(context.Background(), newConfig)
_, _ = m.UpdateConfig(context.Background(), newConfig)
// Wait to crash
assertStatusEventually(t, m, "relay-1", "error", 4*time.Second)
@@ -323,7 +323,7 @@ func TestUpdateConfigKillsOrphanProcessBeforeRestart(t *testing.T) {
},
}
if err := m.UpdateConfig(context.Background(), newConfig); err != nil {
if _, err := m.UpdateConfig(context.Background(), newConfig); err != nil {
t.Fatalf("failed to UpdateConfig: %v", err)
}
@@ -361,7 +361,7 @@ func TestStopCancelsRunningProcesses(t *testing.T) {
},
}
if err := m.UpdateConfig(context.Background(), newConfig); err != nil {
if _, err := m.UpdateConfig(context.Background(), newConfig); err != nil {
t.Fatalf("failed to UpdateConfig: %v", err)
}