From eae0365b5c5468e51e9795b0e894815ebda86b4a Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 15 Jun 2021 09:17:19 +0200 Subject: Fix missing transactions --- server/lib/job-queue/handlers/video-transcoding.ts | 50 ++++++++++------------ 1 file changed, 23 insertions(+), 27 deletions(-) (limited to 'server/lib/job-queue/handlers/video-transcoding.ts') diff --git a/server/lib/job-queue/handlers/video-transcoding.ts b/server/lib/job-queue/handlers/video-transcoding.ts index 8d659daa6..8f218ca3a 100644 --- a/server/lib/job-queue/handlers/video-transcoding.ts +++ b/server/lib/job-queue/handlers/video-transcoding.ts @@ -151,35 +151,31 @@ async function onVideoFileOptimizer ( // Outside the transaction (IO on disk) const { videoFileResolution, isPortraitMode } = await videoArg.getMaxQualityResolution() - const { videoDatabase, videoPublished } = await sequelizeTypescript.transaction(async t => { - // Maybe the video changed in database, refresh it - const videoDatabase = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoArg.uuid, t) - // Video does not exist anymore - if (!videoDatabase) return undefined - - let videoPublished = false - - // Generate HLS version of the original file - const originalFileHLSPayload = Object.assign({}, payload, { - isPortraitMode, - resolution: videoDatabase.getMaxQualityFile().resolution, - // If we quick transcoded original file, force transcoding for HLS to avoid some weird playback issues - copyCodecs: transcodeType !== 'quick-transcode', - isMaxQuality: true - }) - const hasHls = await createHlsJobIfEnabled(user, originalFileHLSPayload) - - const hasNewResolutions = await createLowerResolutionsJobs(videoDatabase, user, videoFileResolution, isPortraitMode, 'webtorrent') - - if (!hasHls && !hasNewResolutions) { - // No transcoding to do, it's now published - videoPublished = await videoDatabase.publishIfNeededAndSave(t) - } + // Maybe the video changed in database, refresh it + const videoDatabase = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoArg.uuid) + // Video does not exist anymore + if (!videoDatabase) return undefined + + let videoPublished = false + + // Generate HLS version of the original file + const originalFileHLSPayload = Object.assign({}, payload, { + isPortraitMode, + resolution: videoDatabase.getMaxQualityFile().resolution, + // If we quick transcoded original file, force transcoding for HLS to avoid some weird playback issues + copyCodecs: transcodeType !== 'quick-transcode', + isMaxQuality: true + }) + const hasHls = await createHlsJobIfEnabled(user, originalFileHLSPayload) - await federateVideoIfNeeded(videoDatabase, payload.isNewVideo, t) + const hasNewResolutions = await createLowerResolutionsJobs(videoDatabase, user, videoFileResolution, isPortraitMode, 'webtorrent') - return { videoDatabase, videoPublished } - }) + if (!hasHls && !hasNewResolutions) { + // No transcoding to do, it's now published + videoPublished = await videoDatabase.publishIfNeededAndSave(undefined) + } + + await federateVideoIfNeeded(videoDatabase, payload.isNewVideo) if (payload.isNewVideo) Notifier.Instance.notifyOnNewVideoIfNeeded(videoDatabase) if (videoPublished) Notifier.Instance.notifyOnVideoPublishedAfterTranscoding(videoDatabase) -- cgit v1.2.3