diff --git a/AdminPanel/server/sources/server.js b/AdminPanel/server/sources/server.js index 54e392e7..f743d963 100644 --- a/AdminPanel/server/sources/server.js +++ b/AdminPanel/server/sources/server.js @@ -107,3 +107,6 @@ app.use((err, req, res, _next) => { server.listen(port, () => { operationContext.global.logger.warn('AdminPanel server listening on port %d', port); }); + +//after all required modules in all files +moduleReloader.finalizeConfigWithRuntime(); diff --git a/Common/sources/moduleReloader.js b/Common/sources/moduleReloader.js index 47c1390b..4426cc35 100644 --- a/Common/sources/moduleReloader.js +++ b/Common/sources/moduleReloader.js @@ -50,6 +50,10 @@ function reloadNpmModule(moduleName) { } } +// Backup original NODE_CONFIG to avoid growing environment +const prevNodeConfig = process.env.NODE_CONFIG; +let nodeConfigOverridden = false; + /** * Requires config module with runtime configuration support. * Temporarily sets NODE_CONFIG for reload, then restores environment to prevent E2BIG. @@ -59,10 +63,6 @@ function reloadNpmModule(moduleName) { function requireConfigWithRuntime(opt_additionalConfig) { let config = require('config'); - // Backup original NODE_CONFIG to avoid growing environment - const prevNodeConfig = process.env.NODE_CONFIG; - let nodeConfigOverridden = false; - try { const configFilePath = config.get('runtimeConfig.filePath'); if (configFilePath) { @@ -88,20 +88,23 @@ function requireConfigWithRuntime(opt_additionalConfig) { if (err.code !== 'ENOENT') { console.error('Failed to load runtime config: %s', err.stack); } - } finally { - // Restore original NODE_CONFIG to keep env small and avoid E2BIG on Windows/pkg - if (nodeConfigOverridden) { - if (typeof prevNodeConfig === 'undefined') { - delete process.env.NODE_CONFIG; - } else { - process.env.NODE_CONFIG = prevNodeConfig; - } - } } return config; } +function finalizeConfigWithRuntime() { + // Restore original NODE_CONFIG to keep env small and avoid E2BIG on Windows/pkg + if (nodeConfigOverridden) { + if (typeof prevNodeConfig === 'undefined') { + delete process.env.NODE_CONFIG; + } else { + process.env.NODE_CONFIG = prevNodeConfig; + } + } +} + module.exports = { reloadNpmModule, - requireConfigWithRuntime + requireConfigWithRuntime, + finalizeConfigWithRuntime }; diff --git a/DocService/sources/server.js b/DocService/sources/server.js index 4bdbb4b4..5c55ddb8 100644 --- a/DocService/sources/server.js +++ b/DocService/sources/server.js @@ -509,3 +509,6 @@ process.on('uncaughtException', err => { process.exit(1); }); }); + +//after all required modules in all files +moduleReloader.finalizeConfigWithRuntime(); diff --git a/FileConverter/sources/convertermaster.js b/FileConverter/sources/convertermaster.js index ce3e9809..62571f32 100644 --- a/FileConverter/sources/convertermaster.js +++ b/FileConverter/sources/convertermaster.js @@ -33,10 +33,10 @@ 'use strict'; const cluster = require('cluster'); -const logger = require('./../../Common/sources/logger'); -const operationContext = require('./../../Common/sources/operationContext'); const moduleReloader = require('./../../Common/sources/moduleReloader'); const config = moduleReloader.requireConfigWithRuntime(); +const logger = require('./../../Common/sources/logger'); +const operationContext = require('./../../Common/sources/operationContext'); if (cluster.isMaster) { const fs = require('fs'); @@ -104,3 +104,6 @@ process.on('uncaughtException', err => { process.exit(1); }); }); + +//after all required modules in all files +moduleReloader.finalizeConfigWithRuntime();