Prevent error when removing a streaming playlist

pull/6026/head
Chocobozzz 2023-10-13 09:59:18 +02:00
parent 81a51d4bb1
commit 75d5a23dbc
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
1 changed files with 15 additions and 2 deletions

View File

@ -1,4 +1,4 @@
import { buildVideoEmbedPath, buildVideoWatchPath, pick } from '@peertube/peertube-core-utils'
import { buildVideoEmbedPath, buildVideoWatchPath, pick, wait } from '@peertube/peertube-core-utils'
import { ffprobePromise, getAudioStream, getVideoStreamDimensionsInfo, getVideoStreamFPS, hasAudioStream } from '@peertube/peertube-ffmpeg'
import {
ResultList,
@ -1925,7 +1925,20 @@ export class VideoModel extends Model<Partial<AttributesOnly<VideoModel>>> {
? getHLSRedundancyDirectory(this)
: getHLSDirectory(this)
await remove(directoryPath)
try {
await remove(directoryPath)
} catch (err) {
// If it's a live, ffmpeg may have added another file while fs-extra is removing the directory
// So wait a little bit and retry
if (err.code === 'ENOTEMPTY') {
await wait(1000)
await remove(directoryPath)
return
}
throw err
}
if (isRedundancy !== true) {
const streamingPlaylistWithFiles = streamingPlaylist as MStreamingPlaylistFilesVideo