aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2023-05-05 13:41:48 +0200
committerChocobozzz <chocobozzz@cpy.re>2023-05-09 08:57:34 +0200
commita687879e94fa5d3ecdd76bec3d94d0e1698ee913 (patch)
treeb17ee096918dfd4624d50dbf0e91ff8f66bd4a7f /server/lib
parente7d8e2b245491c0a8e008fb570037506d729ff04 (diff)
downloadPeerTube-a687879e94fa5d3ecdd76bec3d94d0e1698ee913.tar.gz
PeerTube-a687879e94fa5d3ecdd76bec3d94d0e1698ee913.tar.zst
PeerTube-a687879e94fa5d3ecdd76bec3d94d0e1698ee913.zip
Reload the video after waiting for the files lock
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/job-queue/handlers/manage-video-torrent.ts3
-rw-r--r--server/lib/job-queue/handlers/move-to-object-storage.ts5
-rw-r--r--server/lib/job-queue/handlers/video-live-ending.ts1
-rw-r--r--server/lib/transcoding/hls-transcoding.ts1
-rw-r--r--server/lib/transcoding/shared/job-builders/transcoding-job-queue-builder.ts3
-rw-r--r--server/lib/transcoding/shared/job-builders/transcoding-runner-job-builder.ts3
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