diff options
author | Chocobozzz <me@florianbigard.com> | 2023-05-05 13:41:48 +0200 |
---|---|---|
committer | Chocobozzz <chocobozzz@cpy.re> | 2023-05-09 08:57:34 +0200 |
commit | a687879e94fa5d3ecdd76bec3d94d0e1698ee913 (patch) | |
tree | b17ee096918dfd4624d50dbf0e91ff8f66bd4a7f /server/lib | |
parent | e7d8e2b245491c0a8e008fb570037506d729ff04 (diff) | |
download | PeerTube-a687879e94fa5d3ecdd76bec3d94d0e1698ee913.tar.gz PeerTube-a687879e94fa5d3ecdd76bec3d94d0e1698ee913.tar.zst PeerTube-a687879e94fa5d3ecdd76bec3d94d0e1698ee913.zip |
Reload the video after waiting for the files lock
Diffstat (limited to 'server/lib')
6 files changed, 13 insertions, 3 deletions
diff --git a/server/lib/job-queue/handlers/manage-video-torrent.ts b/server/lib/job-queue/handlers/manage-video-torrent.ts index cef93afda..edf52de0c 100644 --- a/server/lib/job-queue/handlers/manage-video-torrent.ts +++ b/server/lib/job-queue/handlers/manage-video-torrent.ts | |||
@@ -35,6 +35,9 @@ async function doCreateAction (payload: ManageVideoTorrentPayload & { action: 'c | |||
35 | const fileMutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid) | 35 | const fileMutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid) |
36 | 36 | ||
37 | try { | 37 | try { |
38 | await video.reload() | ||
39 | await file.reload() | ||
40 | |||
38 | await createTorrentAndSetInfoHash(video, file) | 41 | await createTorrentAndSetInfoHash(video, file) |
39 | 42 | ||
40 | // Refresh videoFile because the createTorrentAndSetInfoHash could be long | 43 | // Refresh videoFile because the createTorrentAndSetInfoHash could be long |
diff --git a/server/lib/job-queue/handlers/move-to-object-storage.ts b/server/lib/job-queue/handlers/move-to-object-storage.ts index a1530cc57..26752ff37 100644 --- a/server/lib/job-queue/handlers/move-to-object-storage.ts +++ b/server/lib/job-queue/handlers/move-to-object-storage.ts | |||
@@ -19,17 +19,18 @@ export async function processMoveToObjectStorage (job: Job) { | |||
19 | const payload = job.data as MoveObjectStoragePayload | 19 | const payload = job.data as MoveObjectStoragePayload |
20 | logger.info('Moving video %s in job %s.', payload.videoUUID, job.id) | 20 | logger.info('Moving video %s in job %s.', payload.videoUUID, job.id) |
21 | 21 | ||
22 | const fileMutexReleaser = await VideoPathManager.Instance.lockFiles(payload.videoUUID) | ||
23 | |||
22 | const video = await VideoModel.loadWithFiles(payload.videoUUID) | 24 | const video = await VideoModel.loadWithFiles(payload.videoUUID) |
23 | // No video, maybe deleted? | 25 | // No video, maybe deleted? |
24 | if (!video) { | 26 | if (!video) { |
25 | logger.info('Can\'t process job %d, video does not exist.', job.id, lTagsBase(payload.videoUUID)) | 27 | logger.info('Can\'t process job %d, video does not exist.', job.id, lTagsBase(payload.videoUUID)) |
28 | fileMutexReleaser() | ||
26 | return undefined | 29 | return undefined |
27 | } | 30 | } |
28 | 31 | ||
29 | const lTags = lTagsBase(video.uuid, video.url) | 32 | const lTags = lTagsBase(video.uuid, video.url) |
30 | 33 | ||
31 | const fileMutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid) | ||
32 | |||
33 | try { | 34 | try { |
34 | if (video.VideoFiles) { | 35 | if (video.VideoFiles) { |
35 | logger.debug('Moving %d webtorrent files for video %s.', video.VideoFiles.length, video.uuid, lTags) | 36 | logger.debug('Moving %d webtorrent files for video %s.', video.VideoFiles.length, video.uuid, lTags) |
diff --git a/server/lib/job-queue/handlers/video-live-ending.ts b/server/lib/job-queue/handlers/video-live-ending.ts index 1bf43f592..814f313a3 100644 --- a/server/lib/job-queue/handlers/video-live-ending.ts +++ b/server/lib/job-queue/handlers/video-live-ending.ts | |||
@@ -218,6 +218,7 @@ async function assignReplayFilesToVideo (options: { | |||
218 | 218 | ||
219 | for (const concatenatedTsFile of concatenatedTsFiles) { | 219 | for (const concatenatedTsFile of concatenatedTsFiles) { |
220 | const inputFileMutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid) | 220 | const inputFileMutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid) |
221 | await video.reload() | ||
221 | 222 | ||
222 | const concatenatedTsFilePath = join(replayDirectory, concatenatedTsFile) | 223 | const concatenatedTsFilePath = join(replayDirectory, concatenatedTsFile) |
223 | 224 | ||
diff --git a/server/lib/transcoding/hls-transcoding.ts b/server/lib/transcoding/hls-transcoding.ts index cffa859c7..2c325d9ee 100644 --- a/server/lib/transcoding/hls-transcoding.ts +++ b/server/lib/transcoding/hls-transcoding.ts | |||
@@ -72,7 +72,6 @@ export async function onHLSVideoFileTranscoding (options: { | |||
72 | const mutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid) | 72 | const mutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid) |
73 | 73 | ||
74 | try { | 74 | try { |
75 | // VOD transcoding is a long task, refresh video attributes | ||
76 | await video.reload() | 75 | await video.reload() |
77 | 76 | ||
78 | const videoFilePath = VideoPathManager.Instance.getFSVideoFileOutputPath(playlist, videoFile) | 77 | const videoFilePath = VideoPathManager.Instance.getFSVideoFileOutputPath(playlist, videoFile) |
diff --git a/server/lib/transcoding/shared/job-builders/transcoding-job-queue-builder.ts b/server/lib/transcoding/shared/job-builders/transcoding-job-queue-builder.ts index 29ee2ca61..fa2ac70bf 100644 --- a/server/lib/transcoding/shared/job-builders/transcoding-job-queue-builder.ts +++ b/server/lib/transcoding/shared/job-builders/transcoding-job-queue-builder.ts | |||
@@ -40,6 +40,9 @@ export class TranscodingJobQueueBuilder extends AbstractJobBuilder { | |||
40 | : await VideoPathManager.Instance.lockFiles(video.uuid) | 40 | : await VideoPathManager.Instance.lockFiles(video.uuid) |
41 | 41 | ||
42 | try { | 42 | try { |
43 | await video.reload() | ||
44 | await videoFile.reload() | ||
45 | |||
43 | await VideoPathManager.Instance.makeAvailableVideoFile(videoFile.withVideoOrPlaylist(video), async videoFilePath => { | 46 | await VideoPathManager.Instance.makeAvailableVideoFile(videoFile.withVideoOrPlaylist(video), async videoFilePath => { |
44 | const probe = await ffprobePromise(videoFilePath) | 47 | const probe = await ffprobePromise(videoFilePath) |
45 | 48 | ||
diff --git a/server/lib/transcoding/shared/job-builders/transcoding-runner-job-builder.ts b/server/lib/transcoding/shared/job-builders/transcoding-runner-job-builder.ts index 90b035402..4b8bc2f3d 100644 --- a/server/lib/transcoding/shared/job-builders/transcoding-runner-job-builder.ts +++ b/server/lib/transcoding/shared/job-builders/transcoding-runner-job-builder.ts | |||
@@ -36,6 +36,9 @@ export class TranscodingRunnerJobBuilder extends AbstractJobBuilder { | |||
36 | : await VideoPathManager.Instance.lockFiles(video.uuid) | 36 | : await VideoPathManager.Instance.lockFiles(video.uuid) |
37 | 37 | ||
38 | try { | 38 | try { |
39 | await video.reload() | ||
40 | await videoFile.reload() | ||
41 | |||
39 | await VideoPathManager.Instance.makeAvailableVideoFile(videoFile.withVideoOrPlaylist(video), async videoFilePath => { | 42 | await VideoPathManager.Instance.makeAvailableVideoFile(videoFile.withVideoOrPlaylist(video), async videoFilePath => { |
40 | const probe = await ffprobePromise(videoFilePath) | 43 | const probe = await ffprobePromise(videoFilePath) |
41 | 44 | ||