Fix: /file2document/convert blocks event loop on large folders causing 504 timeout (#13784)

Problem

The /file2document/convert endpoint ran all file lookups, document
deletions, and insertions synchronously inside the
request cycle. Linking a large folder (~1.7GB with many files) caused
504 Gateway Timeout because the blocking DB loop
  held the HTTP connection open for too long.

  Fix

- Extracted the heavy DB work into a plain sync function _convert_files
- Inputs are validated and folder file IDs expanded upfront (fast path)
- The blocking work is dispatched to a thread pool via
get_running_loop().run_in_executor() and the endpoint returns 200
  immediately
- Frontend only checks data.code === 0 so the response change
(file2documents list → True) has no impact

  Fixes #13781

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Syed Shahmeer Ali
2026-03-26 13:45:10 +05:00
committed by GitHub
parent e705ac6643
commit ff92b5575b
6 changed files with 98 additions and 102 deletions

View File

@@ -8,5 +8,5 @@ export function SharedBadge({ children }: PropsWithChildren) {
return null;
}
return <span className="bg-bg-card rounded-sm px-1 text-xs">{children}</span>;
return <span className="bg-bg-card rounded-sm px-1 text-xs inline-block max-w-[120px] truncate align-middle">{children}</span>;
}