Skip to content

Commit d1d7abb

Browse files
committed
fix: ensure memory metrics are recorded for all ingestion paths
1 parent 8e4e37c commit d1d7abb

File tree

1 file changed

+42
-41
lines changed

1 file changed

+42
-41
lines changed

src/server/query_processor.py

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -280,23 +280,24 @@ async def process_query(
280280
include_patterns=pattern if pattern_type == PatternType.INCLUDE else None,
281281
)
282282

283-
# Check if digest already exists on S3 before cloning
284-
s3_response = await _check_s3_cache(
285-
query=query,
286-
input_text=input_text,
287-
max_file_size=max_file_size,
288-
pattern_type=pattern_type.value,
289-
pattern=pattern,
290-
token=token,
291-
)
292-
if s3_response:
293-
return s3_response
294-
295-
clone_config = query.extract_clone_config()
296-
short_repo_url = f"{query.user_name}/{query.repo_name}"
297-
298-
# Track memory usage during the entire ingestion process
283+
# Track memory usage for the entire request (including S3 cache checks)
299284
with MemoryTracker(input_text) as memory_tracker:
285+
# Check if digest already exists on S3 before cloning
286+
s3_response = await _check_s3_cache(
287+
query=query,
288+
input_text=input_text,
289+
max_file_size=max_file_size,
290+
pattern_type=pattern_type.value,
291+
pattern=pattern,
292+
token=token,
293+
)
294+
if s3_response:
295+
# Even for S3 cache hits, record the memory usage
296+
memory_tracker.update_peak()
297+
return s3_response
298+
299+
clone_config = query.extract_clone_config()
300+
short_repo_url = f"{query.user_name}/{query.repo_name}"
300301
await clone_repo(clone_config, token=token)
301302

302303
# Update peak memory after cloning
@@ -332,35 +333,35 @@ async def process_query(
332333
_cleanup_repository(clone_config)
333334
return IngestErrorResponse(error=f"{exc!s}")
334335

335-
if len(content) > MAX_DISPLAY_SIZE:
336-
content = (
337-
f"(Files content cropped to {int(MAX_DISPLAY_SIZE / 1_000)}k characters, "
338-
"download full ingest to see more)\n" + content[:MAX_DISPLAY_SIZE]
339-
)
336+
if len(content) > MAX_DISPLAY_SIZE:
337+
content = (
338+
f"(Files content cropped to {int(MAX_DISPLAY_SIZE / 1_000)}k characters, "
339+
"download full ingest to see more)\n" + content[:MAX_DISPLAY_SIZE]
340+
)
340341

341-
_print_success(
342-
url=query.url,
343-
max_file_size=max_file_size,
344-
pattern_type=pattern_type,
345-
pattern=pattern,
346-
summary=summary,
347-
)
342+
_print_success(
343+
url=query.url,
344+
max_file_size=max_file_size,
345+
pattern_type=pattern_type,
346+
pattern=pattern,
347+
summary=summary,
348+
)
348349

349-
digest_url = _generate_digest_url(query)
350+
digest_url = _generate_digest_url(query)
350351

351-
# Repository was already cleaned up after ingestion to free memory earlier
352+
# Repository was already cleaned up after ingestion to free memory earlier
352353

353-
return IngestSuccessResponse(
354-
repo_url=input_text,
355-
short_repo_url=short_repo_url,
356-
summary=summary,
357-
digest_url=digest_url,
358-
tree=tree,
359-
content=content,
360-
default_max_file_size=max_file_size,
361-
pattern_type=pattern_type,
362-
pattern=pattern,
363-
)
354+
return IngestSuccessResponse(
355+
repo_url=input_text,
356+
short_repo_url=short_repo_url,
357+
summary=summary,
358+
digest_url=digest_url,
359+
tree=tree,
360+
content=content,
361+
default_max_file_size=max_file_size,
362+
pattern_type=pattern_type,
363+
pattern=pattern,
364+
)
364365

365366

366367
def _print_query(url: str, max_file_size: int, pattern_type: str, pattern: str) -> None:

0 commit comments

Comments
 (0)