From 5a05c14573ca3c0d16b77bef78d845f96c8c6497 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 15 May 2023 15:06:14 +0200 Subject: Force live stream termination --- server/lib/live/live-manager.ts | 5 ++++- server/tests/api/moderation/video-blacklist.ts | 10 ---------- server/tests/api/object-storage/videos.ts | 2 +- 3 files changed, 5 insertions(+), 12 deletions(-) (limited to 'server') diff --git a/server/lib/live/live-manager.ts b/server/lib/live/live-manager.ts index c78cf82eb..6d51f4de7 100644 --- a/server/lib/live/live-manager.ts +++ b/server/lib/live/live-manager.ts @@ -6,6 +6,7 @@ import { logger, loggerTagsFactory } from '@server/helpers/logger' import { CONFIG, registerConfigChangedHandler } from '@server/initializers/config' import { VIDEO_LIVE } from '@server/initializers/constants' import { sequelizeTypescript } from '@server/initializers/database' +import { RunnerJobModel } from '@server/models/runner/runner-job' import { UserModel } from '@server/models/user/user' import { VideoModel } from '@server/models/video/video' import { VideoLiveModel } from '@server/models/video/video-live' @@ -25,7 +26,6 @@ import { computeResolutionsToTranscode } from '../transcoding/transcoding-resolu import { LiveQuotaStore } from './live-quota-store' import { cleanupAndDestroyPermanentLive, getLiveSegmentTime } from './live-utils' import { MuxingSession } from './shared' -import { RunnerJobModel } from '@server/models/runner/runner-job' const NodeRtmpSession = require('node-media-server/src/node_rtmp_session') const context = require('node-media-server/src/node_core_ctx') @@ -80,6 +80,9 @@ class LiveManager { events.on('donePublish', sessionId => { logger.info('Live session ended.', { sessionId, ...lTags(sessionId) }) + + // Force session aborting, so we kill ffmpeg even if it still has data to process (slow CPU) + setTimeout(() => this.abortSession(sessionId), 2000) }) registerConfigChangedHandler(() => { diff --git a/server/tests/api/moderation/video-blacklist.ts b/server/tests/api/moderation/video-blacklist.ts index ad132aa39..ef087a93b 100644 --- a/server/tests/api/moderation/video-blacklist.ts +++ b/server/tests/api/moderation/video-blacklist.ts @@ -239,8 +239,6 @@ describe('Test video blacklist', function () { let video4UUID: string before(async function () { - this.timeout(10000) - { const { uuid } = await servers[0].videos.upload({ attributes: { name: 'Video 3' } }) video3UUID = uuid @@ -254,8 +252,6 @@ describe('Test video blacklist', function () { }) it('Should blacklist video 3 and keep it federated', async function () { - this.timeout(10000) - await command.add({ videoId: video3UUID, reason: 'super reason', unfederate: false }) await waitJobs(servers) @@ -272,8 +268,6 @@ describe('Test video blacklist', function () { }) it('Should unfederate the video', async function () { - this.timeout(10000) - await command.add({ videoId: video4UUID, reason: 'super reason', unfederate: true }) await waitJobs(servers) @@ -285,8 +279,6 @@ describe('Test video blacklist', function () { }) it('Should have the video unfederated even after an Update AP message', async function () { - this.timeout(10000) - await servers[0].videos.update({ id: video4UUID, attributes: { description: 'super description' } }) await waitJobs(servers) @@ -309,8 +301,6 @@ describe('Test video blacklist', function () { }) it('Should remove the video from blacklist and refederate the video', async function () { - this.timeout(10000) - await command.remove({ videoId: video4UUID }) await waitJobs(servers) diff --git a/server/tests/api/object-storage/videos.ts b/server/tests/api/object-storage/videos.ts index 77bb00678..77ed78ae1 100644 --- a/server/tests/api/object-storage/videos.ts +++ b/server/tests/api/object-storage/videos.ts @@ -152,7 +152,7 @@ function runTestSuite (options: { let deletedUrls: string[] = [] before(async function () { - this.timeout(120000) + this.timeout(240000) const port = await mockObjectStorageProxy.initialize() baseMockUrl = options.useMockBaseUrl -- cgit v1.2.3