fix: Add HTTP client timeouts to prevent indefinite hangs in sync operations (#3574)

This commit is contained in:
Andrei Aaron
2025-11-22 07:57:24 +02:00
committed by GitHub
parent bd32c62eb6
commit 566286ae42
5 changed files with 171 additions and 19 deletions
+10 -6
View File
@@ -28,6 +28,7 @@ import (
extconf "zotregistry.dev/zot/v2/pkg/extensions/config"
eventsconf "zotregistry.dev/zot/v2/pkg/extensions/config/events"
"zotregistry.dev/zot/v2/pkg/extensions/monitoring"
syncConstants "zotregistry.dev/zot/v2/pkg/extensions/sync/constants"
zlog "zotregistry.dev/zot/v2/pkg/log"
storageConstants "zotregistry.dev/zot/v2/pkg/storage/constants"
)
@@ -663,15 +664,18 @@ func applyDefaultValues(config *config.Config, viperInstance *viper.Viper, logge
config.Extensions.Sync.Enable = &defaultVal
}
defaultSyncTimeout := 3 * time.Hour
for idx, regCfg := range config.Extensions.Sync.Registries {
for idx := range config.Extensions.Sync.Registries {
regCfg := &config.Extensions.Sync.Registries[idx]
if regCfg.TLSVerify == nil {
config.Extensions.Sync.Registries[idx].TLSVerify = &defaultVal
regCfg.TLSVerify = &defaultVal
}
if config.Extensions.Sync.Registries[idx].SyncTimeout == 0 {
config.Extensions.Sync.Registries[idx].SyncTimeout = defaultSyncTimeout
if regCfg.SyncTimeout == 0 {
regCfg.SyncTimeout = syncConstants.DefaultSyncTimeout
}
if regCfg.ResponseHeaderTimeout == 0 {
regCfg.ResponseHeaderTimeout = syncConstants.DefaultResponseHeaderTimeout
}
}
}