diff options
author | John Livingston <git@john-livingston.fr> | 2021-04-08 17:37:14 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2021-04-09 09:32:16 +0200 |
commit | 09d535ef9817a63096dc724cc4d9f0671ee6e5a3 (patch) | |
tree | 2a897a30774cb55eed96126d23c3bdab07065b6e /server/lib/plugins | |
parent | 41137192096590b171563bc3161ede6f5c1d15db (diff) | |
download | PeerTube-09d535ef9817a63096dc724cc4d9f0671ee6e5a3.tar.gz PeerTube-09d535ef9817a63096dc724cc4d9f0671ee6e5a3.tar.zst PeerTube-09d535ef9817a63096dc724cc4d9f0671ee6e5a3.zip |
Fix #3940: unload all children from the plugin module on updates.
Diffstat (limited to 'server/lib/plugins')
-rw-r--r-- | server/lib/plugins/plugin-manager.ts | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/server/lib/plugins/plugin-manager.ts b/server/lib/plugins/plugin-manager.ts index c19b40135..0086a0e2e 100644 --- a/server/lib/plugins/plugin-manager.ts +++ b/server/lib/plugins/plugin-manager.ts | |||
@@ -23,6 +23,8 @@ import { ClientHtml } from '../client-html' | |||
23 | import { RegisterHelpers } from './register-helpers' | 23 | import { RegisterHelpers } from './register-helpers' |
24 | import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn' | 24 | import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn' |
25 | 25 | ||
26 | const decache = require('decache') | ||
27 | |||
26 | export interface RegisteredPlugin { | 28 | export interface RegisteredPlugin { |
27 | npmName: string | 29 | npmName: string |
28 | name: string | 30 | name: string |
@@ -411,7 +413,7 @@ export class PluginManager implements ServerHook { | |||
411 | 413 | ||
412 | // Delete cache if needed | 414 | // Delete cache if needed |
413 | const modulePath = join(pluginPath, packageJSON.library) | 415 | const modulePath = join(pluginPath, packageJSON.library) |
414 | delete require.cache[modulePath] | 416 | decache(modulePath) |
415 | const library: PluginLibrary = require(modulePath) | 417 | const library: PluginLibrary = require(modulePath) |
416 | 418 | ||
417 | if (!isLibraryCodeValid(library)) { | 419 | if (!isLibraryCodeValid(library)) { |