fix(server): iterate provider instances during shutdown
Problem: cleanup_providers() loops over dict.items(), so the loop variable is a (ProviderType, ModelProvider) tuple and close() never runs. Impact: Providers like DIAL keep httpx clients open, leaking sockets and emitting unclosed-client warnings on shutdown. Solution: Iterate registry._initialized_providers.values() so we close real provider instances and release network resources.
This commit is contained in:
@@ -572,7 +572,8 @@ def configure_providers():
|
|||||||
try:
|
try:
|
||||||
registry = ModelProviderRegistry()
|
registry = ModelProviderRegistry()
|
||||||
if hasattr(registry, "_initialized_providers"):
|
if hasattr(registry, "_initialized_providers"):
|
||||||
for provider in list(registry._initialized_providers.items()):
|
# Iterate over provider instances (values), not (type, instance) tuples
|
||||||
|
for provider in list(registry._initialized_providers.values()):
|
||||||
try:
|
try:
|
||||||
if provider and hasattr(provider, "close"):
|
if provider and hasattr(provider, "close"):
|
||||||
provider.close()
|
provider.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user