From 8389960749ea784066d4dadb05fb59a590282289 Mon Sep 17 00:00:00 2001 From: Carol Jung Date: Mon, 3 Mar 2025 11:09:17 -0800 Subject: [PATCH 1/3] fix: remove reset in sandbox runner --- src/codegen/runner/clients/codebase_client.py | 4 ++-- src/codegen/runner/sandbox/middlewares.py | 18 ------------------ src/codegen/runner/sandbox/server.py | 6 +++--- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/src/codegen/runner/clients/codebase_client.py b/src/codegen/runner/clients/codebase_client.py index 33d0f63a8..7b4bf16ce 100644 --- a/src/codegen/runner/clients/codebase_client.py +++ b/src/codegen/runner/clients/codebase_client.py @@ -66,9 +66,9 @@ def _wait_for_server(self, timeout: int = 30, interval: float = 0.3) -> None: def _get_envs(self) -> dict: envs = os.environ.copy() codebase_envs = { - "REPOSITORY_LANGUAGE": self.repo_config.language.value, - "REPOSITORY_OWNER": self.repo_config.organization_name, "REPOSITORY_PATH": str(self.repo_config.repo_path), + "REPOSITORY_OWNER": self.repo_config.organization_name, + "REPOSITORY_LANGUAGE": self.repo_config.language.value, "GITHUB_TOKEN": SecretsConfig().github_token, } diff --git a/src/codegen/runner/sandbox/middlewares.py b/src/codegen/runner/sandbox/middlewares.py index 715d63ed6..5af8969eb 100644 --- a/src/codegen/runner/sandbox/middlewares.py +++ b/src/codegen/runner/sandbox/middlewares.py @@ -10,7 +10,6 @@ from codegen.runner.sandbox.runner import SandboxRunner from codegen.shared.exceptions.compilation import UserCodeException from codegen.shared.logging.get_logger import get_logger -from codegen.shared.performance.stopwatch_utils import stopwatch logger = get_logger(__name__) @@ -39,7 +38,6 @@ async def process_request(self, request: TRequest, call_next: RequestResponseEnd logger.info(f"> (CodemodRunMiddleware) Request: {request.url.path}") self.runner.codebase.viz.clear_graphviz_data() response = await call_next(request) - background_tasks.add_task(self.cleanup_after_codemod, is_exception=False) response.background = background_tasks return response @@ -52,21 +50,5 @@ async def process_request(self, request: TRequest, call_next: RequestResponseEnd message = f"Unexpected error for {request.url.path}" logger.exception(message) res = JSONResponse(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, content={"detail": message, "error": str(e), "traceback": traceback.format_exc()}) - background_tasks.add_task(self.cleanup_after_codemod, is_exception=True) res.background = background_tasks return res - - async def cleanup_after_codemod(self, is_exception: bool = False): - if is_exception: - # TODO: instead of committing transactions, we should just rollback - logger.info("Committing pending transactions due to exception") - self.runner.codebase.ctx.commit_transactions(sync_graph=False) - await self.reset_runner() - - @stopwatch - async def reset_runner(self): - logger.info("=====[ reset_runner ]=====") - logger.info(f"Syncing runner to commit: {self.runner.commit} ...") - self.runner.codebase.checkout(commit=self.runner.commit) - self.runner.codebase.clean_repo() - self.runner.codebase.checkout(branch=self.runner.codebase.default_branch, create_if_missing=True) diff --git a/src/codegen/runner/sandbox/server.py b/src/codegen/runner/sandbox/server.py index 92cdb4735..a6a346fcf 100644 --- a/src/codegen/runner/sandbox/server.py +++ b/src/codegen/runner/sandbox/server.py @@ -31,10 +31,10 @@ async def lifespan(server: FastAPI): global server_info global runner + default_repo_config = RepositoryConfig() + repo_name = default_repo_config.full_name or default_repo_config.name + server_info = ServerInfo(repo_name=repo_name) try: - default_repo_config = RepositoryConfig() - repo_name = default_repo_config.full_name or default_repo_config.name - server_info = ServerInfo(repo_name=repo_name) logger.info(f"Starting up sandbox fastapi server for repo_name={repo_name}") repo_config = RepoConfig( name=default_repo_config.name, From 2f74cf543ded970a8624d0949f7855594a064482 Mon Sep 17 00:00:00 2001 From: Carol Jung Date: Mon, 3 Mar 2025 11:10:06 -0800 Subject: [PATCH 2/3] nit --- src/codegen/runner/sandbox/middlewares.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/codegen/runner/sandbox/middlewares.py b/src/codegen/runner/sandbox/middlewares.py index 5af8969eb..2ed5d85f1 100644 --- a/src/codegen/runner/sandbox/middlewares.py +++ b/src/codegen/runner/sandbox/middlewares.py @@ -33,12 +33,10 @@ async def dispatch(self, request: TRequest, call_next: RequestResponseEndpoint) return await call_next(request) async def process_request(self, request: TRequest, call_next: RequestResponseEndpoint) -> TResponse: - background_tasks = BackgroundTasks() try: logger.info(f"> (CodemodRunMiddleware) Request: {request.url.path}") self.runner.codebase.viz.clear_graphviz_data() response = await call_next(request) - response.background = background_tasks return response except UserCodeException as e: @@ -50,5 +48,4 @@ async def process_request(self, request: TRequest, call_next: RequestResponseEnd message = f"Unexpected error for {request.url.path}" logger.exception(message) res = JSONResponse(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, content={"detail": message, "error": str(e), "traceback": traceback.format_exc()}) - res.background = background_tasks return res From 9376c0c1fd55052ccf7ebe7264d2f0426e9cd36e Mon Sep 17 00:00:00 2001 From: Carol Jung Date: Mon, 3 Mar 2025 11:10:47 -0800 Subject: [PATCH 3/3] pre-commit --- src/codegen/runner/sandbox/middlewares.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/codegen/runner/sandbox/middlewares.py b/src/codegen/runner/sandbox/middlewares.py index 2ed5d85f1..8edea49b9 100644 --- a/src/codegen/runner/sandbox/middlewares.py +++ b/src/codegen/runner/sandbox/middlewares.py @@ -1,8 +1,7 @@ import traceback -from http import HTTPStatus # Add this import +from http import HTTPStatus from typing import Callable, TypeVar -from starlette.background import BackgroundTasks from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint from starlette.requests import Request from starlette.responses import JSONResponse, Response