From 08cec817f880ba64093699ccc5b8aa4ec1e90cb5 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 09:39:51 +0000 Subject: [PATCH] fix: use SQLAlchemy .is_(False) instead of Python 'is False' in FileRecord queries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The filter condition 'FileRecord.is_deleted is False' uses Python's identity check ('is') instead of SQLAlchemy's comparison method. Since FileRecord.is_deleted is a Column object (not the Python False singleton), 'is False' always evaluates to Python False, causing the filter to silently match no rows. This breaks both execute_jmx_async() and execute_jmx_sync_dev() — uploaded JMX files can never be found for execution, resulting in spurious 404 errors. Fix: replace 'is False' with '.is_(False)' which generates the correct SQL 'IS FALSE' clause. Co-Authored-By: 花菜 --- core/jmeter.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/jmeter.py b/core/jmeter.py index 10a8181..7c68a7e 100644 --- a/core/jmeter.py +++ b/core/jmeter.py @@ -91,7 +91,9 @@ async def execute_jmx_async(self, file_name: str) -> dict: # Find file record file_record = ( self.db.query(FileRecord) - .filter(FileRecord.stored_name == file_name, FileRecord.file_type == FileType.JMX, FileRecord.is_deleted is False) + .filter( + FileRecord.stored_name == file_name, FileRecord.file_type == FileType.JMX, FileRecord.is_deleted.is_(False) + ) .first() ) @@ -140,7 +142,9 @@ async def execute_jmx_sync_dev(self, file_name: str) -> dict: # Find file record file_record = ( self.db.query(FileRecord) - .filter(FileRecord.stored_name == file_name, FileRecord.file_type == FileType.JMX, FileRecord.is_deleted is False) + .filter( + FileRecord.stored_name == file_name, FileRecord.file_type == FileType.JMX, FileRecord.is_deleted.is_(False) + ) .first() )