Skip to content

Commit 041623b

Browse files
authored
fix: do not start dependency if it's from a URL or deployment (#5293)
1 parent 63e9bdf commit 041623b

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/_bentoml_impl/server/serving.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,8 @@ def serve_http(
230230
try:
231231
if not service_name and not development_mode:
232232
with contextlib.ExitStack() as port_stack:
233-
for name, dep_svc in svc.all_services().items():
234-
if name == svc.name:
235-
continue
236-
if name in dependency_map:
233+
for name, dep_svc in svc.all_services(exclude_urls=True).items():
234+
if name == svc.name or name in dependency_map:
237235
continue
238236

239237
# Process environment variables for dependency services

src/_bentoml_sdk/service/factory.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,15 @@ def url(self) -> str | None:
173173
url = dependency_map.get(self.name)
174174
return url.replace("tcp://", "http://") if url else None
175175

176-
@lru_cache(maxsize=1)
177-
def all_services(self) -> dict[str, Service[t.Any]]:
176+
def all_services(self, exclude_urls: bool = False) -> dict[str, Service[t.Any]]:
178177
"""Get a map of the service and all recursive dependencies"""
179178
services: dict[str, Service[t.Any]] = {self.name: self}
180179
for dependency in self.dependencies.values():
181180
if dependency.on is None:
182181
continue
183-
dependents = dependency.on.all_services()
182+
if exclude_urls and (dependency.url or dependency.deployment):
183+
continue
184+
dependents = dependency.on.all_services(exclude_urls=exclude_urls)
184185
conflict = next(
185186
(
186187
k

0 commit comments

Comments
 (0)