@scrypted/server 0.115.40 → 0.115.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,13 @@
1
1
  import { RpcMessage, RpcPeer } from "../../rpc";
2
2
  import { ChildProcessWorker } from "./child-process-worker";
3
3
  import { RuntimeWorkerOptions } from "./runtime-worker";
4
- export declare function isChildProcess(): boolean;
4
+ export declare const NODE_PLUGIN_CHILD_PROCESS = "child";
5
+ export declare const NODE_PLUGIN_FORK_PROCESS = "fork";
6
+ export declare const NODE_PLUGIN_THREAD_PROCESS = "child-thread";
7
+ export declare function isNodePluginWorkerProcess(): boolean;
8
+ export declare function isNodePluginForkProcess(): boolean;
9
+ export declare function isNodePluginThreadProcess(): boolean;
10
+ export declare function isNodePluginChildProcess(): boolean;
5
11
  export declare class NodeForkWorker extends ChildProcessWorker {
6
12
  constructor(mainFilename: string, pluginId: string, options: RuntimeWorkerOptions);
7
13
  setupRpcPeer(peer: RpcPeer): void;
@@ -3,25 +3,44 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NodeForkWorker = void 0;
7
- exports.isChildProcess = isChildProcess;
6
+ exports.NodeForkWorker = exports.NODE_PLUGIN_THREAD_PROCESS = exports.NODE_PLUGIN_FORK_PROCESS = exports.NODE_PLUGIN_CHILD_PROCESS = void 0;
7
+ exports.isNodePluginWorkerProcess = isNodePluginWorkerProcess;
8
+ exports.isNodePluginForkProcess = isNodePluginForkProcess;
9
+ exports.isNodePluginThreadProcess = isNodePluginThreadProcess;
10
+ exports.isNodePluginChildProcess = isNodePluginChildProcess;
8
11
  const child_process_1 = __importDefault(require("child_process"));
9
12
  const net_1 = __importDefault(require("net"));
10
13
  const socket_serializer_1 = require("../socket-serializer");
11
14
  const child_process_worker_1 = require("./child-process-worker");
12
- function isChildProcess() {
13
- return process.argv[2] === 'child' || process.argv[2] === 'fork' || process.argv[2] === 'child-thread';
15
+ exports.NODE_PLUGIN_CHILD_PROCESS = 'child';
16
+ exports.NODE_PLUGIN_FORK_PROCESS = 'fork';
17
+ exports.NODE_PLUGIN_THREAD_PROCESS = 'child-thread';
18
+ function isNodePluginWorkerProcess() {
19
+ return isNodePluginChildProcess() || isNodePluginForkProcess() || isNodePluginThreadProcess();
20
+ }
21
+ function isNodePluginForkProcess() {
22
+ return process.argv[2] === exports.NODE_PLUGIN_FORK_PROCESS;
23
+ }
24
+ function isNodePluginThreadProcess() {
25
+ return process.argv[2] === exports.NODE_PLUGIN_THREAD_PROCESS;
26
+ }
27
+ function isNodePluginChildProcess() {
28
+ return process.argv[2] === exports.NODE_PLUGIN_CHILD_PROCESS;
14
29
  }
15
30
  class NodeForkWorker extends child_process_worker_1.ChildProcessWorker {
16
31
  constructor(mainFilename, pluginId, options) {
17
32
  super(pluginId, options);
18
33
  const { env, pluginDebug } = options;
19
- const execArgv = process.execArgv.slice();
34
+ // execArgv will contain the inspect port when debugging the main plugin process.
35
+ // remove that argument to prevent a plugin fork from trying to listen on that port again.
36
+ const execArgv = process.execArgv.slice().filter(arg => !arg.startsWith('--inspect='));
20
37
  if (pluginDebug) {
21
38
  execArgv.push(`--inspect=0.0.0.0:${pluginDebug.inspectPort}`);
22
39
  }
23
40
  this.worker = child_process_1.default.fork(mainFilename, [
24
- isChildProcess() ? 'fork' : 'child',
41
+ // change the argument marker depending on whether this is the main scrypted server process
42
+ // starting a plugin vs the plugin forking for multiprocessing.
43
+ isNodePluginWorkerProcess() ? exports.NODE_PLUGIN_FORK_PROCESS : exports.NODE_PLUGIN_CHILD_PROCESS,
25
44
  this.pluginId
26
45
  ], {
27
46
  stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
@@ -1 +1 @@
1
- {"version":3,"file":"node-fork-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-fork-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-fork-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-fork-worker.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ const worker_threads_1 = __importDefault(require("worker_threads"));
8
8
  const events_1 = require("events");
9
9
  const rpc_1 = require("../../rpc");
10
10
  const rpc_buffer_serializer_1 = require("../../rpc-buffer-serializer");
11
+ const node_fork_worker_1 = require("./node-fork-worker");
11
12
  class BufferTransfer {
12
13
  bufferSerializer = new rpc_buffer_serializer_1.BufferSerializer();
13
14
  serialize(value, serializationContext) {
@@ -46,7 +47,7 @@ class NodeThreadWorker extends events_1.EventEmitter {
46
47
  const message = new worker_threads_1.default.MessageChannel();
47
48
  const { port1, port2 } = message;
48
49
  this.worker = new worker_threads_1.default.Worker(mainFilename, {
49
- argv: ['child-thread', this.pluginId],
50
+ argv: [node_fork_worker_1.NODE_PLUGIN_THREAD_PROCESS, this.pluginId],
50
51
  env: Object.assign({}, process.env, env),
51
52
  workerData: {
52
53
  port: port1,
@@ -1 +1 @@
1
- {"version":3,"file":"node-thread-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-thread-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-thread-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-thread-worker.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ function start(mainFilename, options) {
35
35
  // The workaround is to favor IPv4.
36
36
  dns_1.default.setDefaultResultOrder('ipv4first');
37
37
  (0, rpc_1.startPeriodicGarbageCollection)();
38
- if ((0, node_fork_worker_1.isChildProcess)()) {
38
+ if ((0, node_fork_worker_1.isNodePluginWorkerProcess)()) {
39
39
  // plugins should never crash. this handler will be removed, and then readded
40
40
  // after the plugin source map is retrieved.
41
41
  process_1.default.on('uncaughtException', e => {
@@ -1 +1 @@
1
- {"version":3,"file":"scrypted-main-exports.js","sourceRoot":"","sources":["../src/scrypted-main-exports.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,oDAA4B;AAC5B,4CAAoB;AACpB,gDAAwB;AACxB,sDAA8B;AAC9B,oDAA4B;AAC5B,4CAAoB;AACpB,4CAAoB;AACpB,wDAAoD;AACpD,0DAA2D;AAC3D,+BAAuE;AAEvE,wEAAmE;AAGnE,SAAS,KAAK,CAAC,YAAoB,EAAE,OAEpC;IACG,gEAAgE;IAChE,8DAA8D;IAC9D,gBAAgB;IAChB,IAAI,iBAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,YAAE,CAAC,UAAU,CAAC,iBAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACpG,OAAO,CAAC,iBAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACjB,YAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACpC,UAAU,CAAC,EAAE,GAAG,YAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,gBAAM,CAAC,GAAG,CAAC,iBAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACvF,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,6DAA6D;IAC7D,mCAAmC;IACnC,aAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAA,oCAA8B,GAAE,CAAC;IAEjC,IAAI,IAAA,iCAAc,GAAE,EAAE,CAAC;QACnB,6EAA6E;QAC7E,4CAA4C;QAC5C,iBAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,iBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;QACxD,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;SACI,CAAC;QACF,uEAAuE;QACvE,iBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;YACrC,IAAI,KAAK,EAAE,WAAW,KAAK,oBAAc,IAAI,KAAK,EAAE,WAAW,KAAK,0BAAW,EAAE,CAAC;gBAC9E,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACpC,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,gBAAM,CAAC,MAAM,CAAC;YACV,IAAI,EAAE,cAAI,CAAC,IAAI,CAAC,IAAA,iCAAiB,GAAE,EAAE,MAAM,CAAC;SAC/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;QACxD,OAAO,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;AACL,CAAC;AAED,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"scrypted-main-exports.js","sourceRoot":"","sources":["../src/scrypted-main-exports.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,oDAA4B;AAC5B,4CAAoB;AACpB,gDAAwB;AACxB,sDAA8B;AAC9B,oDAA4B;AAC5B,4CAAoB;AACpB,4CAAoB;AACpB,wDAAoD;AACpD,0DAA2D;AAC3D,+BAAuE;AAEvE,wEAA8E;AAG9E,SAAS,KAAK,CAAC,YAAoB,EAAE,OAEpC;IACG,gEAAgE;IAChE,8DAA8D;IAC9D,gBAAgB;IAChB,IAAI,iBAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,YAAE,CAAC,UAAU,CAAC,iBAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACpG,OAAO,CAAC,iBAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACjB,YAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACpC,UAAU,CAAC,EAAE,GAAG,YAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,gBAAM,CAAC,GAAG,CAAC,iBAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACvF,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,6DAA6D;IAC7D,mCAAmC;IACnC,aAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAA,oCAA8B,GAAE,CAAC;IAEjC,IAAI,IAAA,4CAAyB,GAAE,EAAE,CAAC;QAC9B,6EAA6E;QAC7E,4CAA4C;QAC5C,iBAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,iBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;QACxD,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;SACI,CAAC;QACF,uEAAuE;QACvE,iBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;YACrC,IAAI,KAAK,EAAE,WAAW,KAAK,oBAAc,IAAI,KAAK,EAAE,WAAW,KAAK,0BAAW,EAAE,CAAC;gBAC9E,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACpC,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,gBAAM,CAAC,MAAM,CAAC;YACV,IAAI,EAAE,cAAI,CAAC,IAAI,CAAC,IAAA,iCAAiB,GAAE,EAAE,MAAM,CAAC;SAC/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;QACxD,OAAO,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;AACL,CAAC;AAED,kBAAe,KAAK,CAAC"}
@@ -9,10 +9,11 @@ const plugin_npm_dependencies_1 = require("./plugin/plugin-npm-dependencies");
9
9
  const plugin_remote_worker_1 = require("./plugin/plugin-remote-worker");
10
10
  const socket_serializer_1 = require("./plugin/socket-serializer");
11
11
  const node_thread_worker_1 = require("./plugin/runtime/node-thread-worker");
12
+ const node_fork_worker_1 = require("./plugin/runtime/node-fork-worker");
12
13
  function start(mainFilename) {
13
14
  const pluginId = process.argv[3];
14
15
  module.paths.push((0, plugin_npm_dependencies_1.getPluginNodePath)(pluginId));
15
- if (process.argv[2] === 'child-thread') {
16
+ if ((0, node_fork_worker_1.isNodePluginThreadProcess)()) {
16
17
  console.log('starting thread', pluginId);
17
18
  const { port } = worker_threads_1.default.workerData;
18
19
  const peer = (0, plugin_remote_worker_1.startPluginRemote)(mainFilename, pluginId, (message, reject, serializationContext) => node_thread_worker_1.NodeThreadWorker.send(message, port, reject, serializationContext));
@@ -1 +1 @@
1
- {"version":3,"file":"scrypted-plugin-main.js","sourceRoot":"","sources":["../src/scrypted-plugin-main.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,oEAA4C;AAC5C,8EAAqE;AACrE,wEAAkE;AAClE,kEAAsE;AAEtE,4EAAuE;AAEvE,SAAS,KAAK,CAAC,YAAoB;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAA,2CAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAc,CAAC,UAAkD,CAAC;QACnF,MAAM,IAAI,GAAG,IAAA,wCAAiB,EAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,qCAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACtK,qCAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;SACI,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAA,wCAAiB,EAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE;QAC7J,kCAAkC;QAClC,0BAA0B;SAC7B,EAAE,CAAC,CAAC,EAAE;YACH,IAAI,CAAC;gBACD,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,aAAG,CAAC,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,4CAAwB,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAqB,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"scrypted-plugin-main.js","sourceRoot":"","sources":["../src/scrypted-plugin-main.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,oEAA4C;AAC5C,8EAAqE;AACrE,wEAAkE;AAClE,kEAAsE;AAEtE,4EAAuE;AACvE,wEAA8E;AAE9E,SAAS,KAAK,CAAC,YAAoB;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAA,2CAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAE/C,IAAI,IAAA,4CAAyB,GAAE,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAc,CAAC,UAAkD,CAAC;QACnF,MAAM,IAAI,GAAG,IAAA,wCAAiB,EAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,qCAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACtK,qCAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;SACI,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAA,wCAAiB,EAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE;QAC7J,kCAAkC;QAClC,0BAA0B;SAC7B,EAAE,CAAC,CAAC,EAAE;YACH,IAAI,CAAC;gBACD,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,aAAG,CAAC,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,4CAAwB,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAqB,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,kBAAe,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrypted/server",
3
- "version": "0.115.40",
3
+ "version": "0.115.42",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "@scrypted/ffmpeg-static": "^6.1.0-build1",
@@ -5,8 +5,24 @@ import { SidebandSocketSerializer } from "../socket-serializer";
5
5
  import { ChildProcessWorker } from "./child-process-worker";
6
6
  import { RuntimeWorkerOptions } from "./runtime-worker";
7
7
 
8
- export function isChildProcess() {
9
- return process.argv[2] === 'child' || process.argv[2] === 'fork' || process.argv[2] === 'child-thread';
8
+ export const NODE_PLUGIN_CHILD_PROCESS = 'child';
9
+ export const NODE_PLUGIN_FORK_PROCESS = 'fork';
10
+ export const NODE_PLUGIN_THREAD_PROCESS = 'child-thread';
11
+
12
+ export function isNodePluginWorkerProcess() {
13
+ return isNodePluginChildProcess() || isNodePluginForkProcess() || isNodePluginThreadProcess();
14
+ }
15
+
16
+ export function isNodePluginForkProcess() {
17
+ return process.argv[2] === NODE_PLUGIN_FORK_PROCESS;
18
+ }
19
+
20
+ export function isNodePluginThreadProcess() {
21
+ return process.argv[2] === NODE_PLUGIN_THREAD_PROCESS;
22
+ }
23
+
24
+ export function isNodePluginChildProcess() {
25
+ return process.argv[2] === NODE_PLUGIN_CHILD_PROCESS;
10
26
  }
11
27
 
12
28
  export class NodeForkWorker extends ChildProcessWorker {
@@ -16,13 +32,17 @@ export class NodeForkWorker extends ChildProcessWorker {
16
32
 
17
33
  const { env, pluginDebug } = options;
18
34
 
19
- const execArgv: string[] = process.execArgv.slice();
35
+ // execArgv will contain the inspect port when debugging the main plugin process.
36
+ // remove that argument to prevent a plugin fork from trying to listen on that port again.
37
+ const execArgv: string[] = process.execArgv.slice().filter(arg => !arg.startsWith('--inspect='));
20
38
  if (pluginDebug) {
21
39
  execArgv.push(`--inspect=0.0.0.0:${pluginDebug.inspectPort}`);
22
40
  }
23
41
 
24
42
  this.worker = child_process.fork(mainFilename, [
25
- isChildProcess() ? 'fork': 'child',
43
+ // change the argument marker depending on whether this is the main scrypted server process
44
+ // starting a plugin vs the plugin forking for multiprocessing.
45
+ isNodePluginWorkerProcess() ? NODE_PLUGIN_FORK_PROCESS : NODE_PLUGIN_CHILD_PROCESS,
26
46
  this.pluginId
27
47
  ], {
28
48
  stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
@@ -3,6 +3,7 @@ import { EventEmitter } from "events";
3
3
  import { RpcMessage, RpcPeer, RpcSerializer } from "../../rpc";
4
4
  import { RuntimeWorker, RuntimeWorkerOptions } from "./runtime-worker";
5
5
  import { BufferSerializer } from '../../rpc-buffer-serializer';
6
+ import { NODE_PLUGIN_THREAD_PROCESS } from "./node-fork-worker";
6
7
 
7
8
 
8
9
  class BufferTransfer implements RpcSerializer {
@@ -53,7 +54,7 @@ export class NodeThreadWorker extends EventEmitter implements RuntimeWorker {
53
54
  const message = new worker_threads.MessageChannel();
54
55
  const { port1, port2 } = message;
55
56
  this.worker = new worker_threads.Worker(mainFilename, {
56
- argv: ['child-thread', this.pluginId],
57
+ argv: [NODE_PLUGIN_THREAD_PROCESS, this.pluginId],
57
58
  env: Object.assign({}, process.env, env),
58
59
  workerData: {
59
60
  port: port1,
@@ -10,7 +10,7 @@ import { PluginError } from './plugin/plugin-error';
10
10
  import { getScryptedVolume } from './plugin/plugin-volume';
11
11
  import { RPCResultError, startPeriodicGarbageCollection } from './rpc';
12
12
  import type { Runtime } from './scrypted-server-main';
13
- import { isChildProcess } from './plugin/runtime/node-fork-worker';
13
+ import { isNodePluginWorkerProcess } from './plugin/runtime/node-fork-worker';
14
14
 
15
15
 
16
16
  function start(mainFilename: string, options?: {
@@ -40,7 +40,7 @@ function start(mainFilename: string, options?: {
40
40
 
41
41
  startPeriodicGarbageCollection();
42
42
 
43
- if (isChildProcess()) {
43
+ if (isNodePluginWorkerProcess()) {
44
44
  // plugins should never crash. this handler will be removed, and then readded
45
45
  // after the plugin source map is retrieved.
46
46
  process.on('uncaughtException', e => {
@@ -5,12 +5,13 @@ import { startPluginRemote } from "./plugin/plugin-remote-worker";
5
5
  import { SidebandSocketSerializer } from "./plugin/socket-serializer";
6
6
  import { RpcMessage } from "./rpc";
7
7
  import { NodeThreadWorker } from './plugin/runtime/node-thread-worker';
8
+ import { isNodePluginThreadProcess } from './plugin/runtime/node-fork-worker';
8
9
 
9
10
  function start(mainFilename: string) {
10
11
  const pluginId = process.argv[3];
11
12
  module.paths.push(getPluginNodePath(pluginId));
12
13
 
13
- if (process.argv[2] === 'child-thread') {
14
+ if (isNodePluginThreadProcess()) {
14
15
  console.log('starting thread', pluginId);
15
16
  const { port } = worker_threads.workerData as { port: worker_threads.MessagePort };
16
17
  const peer = startPluginRemote(mainFilename, pluginId, (message, reject, serializationContext) => NodeThreadWorker.send(message, port, reject, serializationContext));