KamoCRM

Stream the recording, and run the summary after commit — it ran inside the upload

FixMediaService
Shipped
24 سبتمبر 2026 في 3:50 ص UTC
صاحب البلاغ
Kamo
Commit
9eeb90d

Jibri's upload read the whole recording into heap (file.getBytes()) on the pod that also serves chat; a two-hour meeting is over a gigabyte. It is now streamed to MinIO from the spooled multipart file (uploadStreaming, re-read per node attempt). The summary pipeline is @Async but was called from the same bean, so the annotation was inert: transcription, the AI summary and every email ran inside the upload request and its database transaction, for minutes, while jibri waited on the response. It is now scheduled after commit through the proxy, and reads the recording back from MinIO to the scratch volume instead of being handed its bytes. A PHI tenant's refusal answered 500, which jibri treats as retryable and so kept the recording on its volume — the copy the guard exists to prevent. It is now a definitive `stored: false, reason: recording not permitted`, on which finalize.sh deletes it.

جميع التغييرات

مثل ما ترى الشحن؟?

كلّه يصل إلى مكان عملك لوحده ابدأي بالخطه المجانيه و اقرأي هذه الصفحة مرة اخرى بعد شهر.

ابدأوا حراً للأبدخصخصة الفيو