Bug: App hangs indefinitely on CPU due to PaddlePaddle 3.3.x OneDNN crash

Author: minh-vtCreated Jul 6, 2026Updated Jul 6, 2026

Severity: Critical (app is completely unusable on CPU)

Description

When running the app on CPU (no GPU), the OCR worker process crashes with:

(Unimplemented) ConvertPirAttribute2RuntimeAttribute not support
[pir::ArrayAttribute<pir::DoubleAttribute>]
(at onednn_instruction.cc:116)

The main process hangs forever at [Processing] Recognizing subtitle content, please wait... because it's waiting for results from a dead child process.

Root Cause

requirements.txt specifies paddlepaddle~=3.3 which resolves to v3.3.1. PaddlePaddle 3.3.x has a known PIR + OneDNN bug on CPU (PaddlePaddle/Paddle#77430 — fix merged to develop but never backported to 3.3.x releases).

Reproduction

  1. Install from source on Linux with CPU only
  2. python gui.py
  3. Open any video, click Run
  4. App prints [Processing] Recognizing subtitle content, please wait... and hangs forever

Fix

Pin dependencies to known-working versions:

diff
- paddlepaddle~=3.3
- paddleocr~=3.4.0
+ paddlepaddle==3.2.0
+ paddleocr>=3.3.0,<3.4.0

Verified: All 6 language + mode combinations (ch/en/japan/korean × fast/accurate) pass with PP-OCRv5 models on PaddlePaddle 3.2.0 + PaddleOCR 3.3.3.

Additional context

  • OS: Arch Linux, CPU-only
  • PaddlePaddle 3.3.1 → downgraded to 3.2.0
  • PaddleOCR 3.4.1 → downgraded to 3.3.3
  • Models: PP-OCRv5 (mobile + server variants)

Source: YaoFANGUK/video-subtitle-extractor