react-on-rails-pro-node-renderer 16.6.0-rc.0 → 16.6.0

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.
Files changed (41) hide show
  1. package/lib/master.d.ts.map +1 -1
  2. package/lib/master.js +56 -4
  3. package/lib/master.js.map +1 -1
  4. package/lib/shared/configBuilder.d.ts.map +1 -1
  5. package/lib/shared/configBuilder.js +15 -0
  6. package/lib/shared/configBuilder.js.map +1 -1
  7. package/lib/shared/utils.d.ts +9 -2
  8. package/lib/shared/utils.d.ts.map +1 -1
  9. package/lib/shared/utils.js +15 -8
  10. package/lib/shared/utils.js.map +1 -1
  11. package/lib/shared/workerMessages.d.ts +13 -0
  12. package/lib/shared/workerMessages.d.ts.map +1 -0
  13. package/lib/shared/workerMessages.js +23 -0
  14. package/lib/shared/workerMessages.js.map +1 -0
  15. package/lib/tsconfig.tsbuildinfo +1 -1
  16. package/lib/worker/handleRenderRequest.d.ts +2 -2
  17. package/lib/worker/handleRenderRequest.d.ts.map +1 -1
  18. package/lib/worker/handleRenderRequest.js +5 -5
  19. package/lib/worker/handleRenderRequest.js.map +1 -1
  20. package/lib/worker/startupErrorHandler.d.ts +10 -0
  21. package/lib/worker/startupErrorHandler.d.ts.map +1 -0
  22. package/lib/worker/startupErrorHandler.js +57 -0
  23. package/lib/worker/startupErrorHandler.js.map +1 -0
  24. package/lib/worker/vm.js +2 -2
  25. package/lib/worker/vm.js.map +1 -1
  26. package/lib/worker.d.ts.map +1 -1
  27. package/lib/worker.js +73 -9
  28. package/lib/worker.js.map +1 -1
  29. package/package.json +2 -2
  30. package/src/master.ts +64 -4
  31. package/src/shared/configBuilder.ts +18 -0
  32. package/src/shared/utils.ts +18 -8
  33. package/src/shared/workerMessages.ts +34 -0
  34. package/src/worker/handleRenderRequest.ts +18 -7
  35. package/src/worker/startupErrorHandler.ts +65 -0
  36. package/src/worker/vm.ts +2 -2
  37. package/src/worker.ts +86 -15
  38. package/tests/configBuilder.test.ts +34 -0
  39. package/tests/masterStartupFailure.test.ts +295 -0
  40. package/tests/worker.test.ts +148 -0
  41. package/tests/workerStartupFailure.test.ts +250 -0
@@ -4,13 +4,13 @@
4
4
  * module in isolation and without async calls.
5
5
  * @module worker/handleRenderRequest
6
6
  */
7
- import { Asset, ResponseResult } from '../shared/utils.js';
7
+ import { Asset, ResponseResult, type RequestInfo } from '../shared/utils.js';
8
8
  import type { TracingContext } from '../shared/tracing.js';
9
9
  export type ProvidedNewBundle = {
10
10
  timestamp: string | number;
11
11
  bundle: Asset;
12
12
  };
13
- export declare function handleNewBundlesProvided(requestContext: string, providedNewBundles: ProvidedNewBundle[], assetsToCopy: Asset[] | null | undefined): Promise<ResponseResult | undefined>;
13
+ export declare function handleNewBundlesProvided(requestContext: RequestInfo, providedNewBundles: ProvidedNewBundle[], assetsToCopy: Asset[] | null | undefined): Promise<ResponseResult | undefined>;
14
14
  /**
15
15
  * Creates the result for the Fastify server to use.
16
16
  * @returns Promise where the result contains { status, data, headers } to
@@ -1 +1 @@
1
- {"version":3,"file":"handleRenderRequest.d.ts","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EACL,KAAK,EAKL,cAAc,EAKf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AA2HF,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAuBrC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,EAAE;IACD,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,GAAG,OAAO,CAAC,cAAc,CAAC,CAkE1B"}
1
+ {"version":3,"file":"handleRenderRequest.d.ts","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EACL,KAAK,EAKL,cAAc,EAKd,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AAqIF,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAuBrC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,EAAE;IACD,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,GAAG,OAAO,CAAC,cAAc,CAAC,CAkE1B"}
@@ -25,8 +25,8 @@ async function prepareResult(renderingRequest, bundleFilePathPerTimestamp) {
25
25
  const result = await (0, vm_js_1.runInVM)(renderingRequest, bundleFilePathPerTimestamp, cluster_1.default);
26
26
  let exceptionMessage = null;
27
27
  if (!result) {
28
- const error = new Error('INVALID NIL or NULL result for rendering');
29
- exceptionMessage = (0, utils_js_1.formatExceptionMessage)(renderingRequest, error, 'INVALID result for prepareResult');
28
+ const error = new Error('INVALID NIL or NULL result for rendering. Ensure renderingRequest is a valid string and returns a value.');
29
+ exceptionMessage = (0, utils_js_1.formatExceptionMessage)({ renderingRequest }, error, 'INVALID result for prepareResult');
30
30
  }
31
31
  else if ((0, utils_js_1.isErrorRenderResult)(result)) {
32
32
  ({ exceptionMessage } = result);
@@ -48,7 +48,7 @@ async function prepareResult(renderingRequest, bundleFilePathPerTimestamp) {
48
48
  };
49
49
  }
50
50
  catch (err) {
51
- const exceptionMessage = (0, utils_js_1.formatExceptionMessage)(renderingRequest, err, 'Unknown error calling runInVM');
51
+ const exceptionMessage = (0, utils_js_1.formatExceptionMessage)({ renderingRequest }, err, 'Unknown error calling runInVM');
52
52
  return (0, utils_js_1.errorResponseResult)(exceptionMessage);
53
53
  }
54
54
  }
@@ -153,7 +153,7 @@ async function handleRenderRequest({ renderingRequest, bundleTimestamp, dependen
153
153
  }
154
154
  // If gem has posted updated bundle:
155
155
  if (providedNewBundles && providedNewBundles.length > 0) {
156
- const result = await handleNewBundlesProvided(renderingRequest, providedNewBundles, assetsToCopy);
156
+ const result = await handleNewBundlesProvided({ renderingRequest }, providedNewBundles, assetsToCopy);
157
157
  if (result) {
158
158
  return result;
159
159
  }
@@ -180,7 +180,7 @@ async function handleRenderRequest({ renderingRequest, bundleTimestamp, dependen
180
180
  return await prepareResult(renderingRequest, entryBundleFilePath);
181
181
  }
182
182
  catch (error) {
183
- const msg = (0, utils_js_1.formatExceptionMessage)(renderingRequest, error, 'Caught top level error in handleRenderRequest');
183
+ const msg = (0, utils_js_1.formatExceptionMessage)({ renderingRequest }, error, 'Caught top level error in handleRenderRequest');
184
184
  return (0, utils_js_1.errorResponseResult)(msg, tracingContext);
185
185
  }
186
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handleRenderRequest.js","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleRenderRequest.js","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export type StartupListenErrorHandlerOptions = {
2
+ err: Error;
3
+ host: string;
4
+ port: number;
5
+ isWorker?: boolean;
6
+ send?: NodeJS.Process['send'];
7
+ exit?: NodeJS.Process['exit'];
8
+ };
9
+ export declare function handleStartupListenError({ err, host, port, isWorker, send, exit, }: StartupListenErrorHandlerOptions): void;
10
+ //# sourceMappingURL=startupErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startupErrorHandler.d.ts","sourceRoot":"","sources":["../../src/worker/startupErrorHandler.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gCAAgC,GAAG;IAC7C,GAAG,EAAE,KAAK,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,QAA2B,EAC3B,IAAI,EACJ,IAAI,GACL,EAAE,gCAAgC,QA4ClC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleStartupListenError = handleStartupListenError;
7
+ const cluster_1 = __importDefault(require("cluster"));
8
+ const log_js_1 = __importDefault(require("../shared/log.js"));
9
+ const workerMessages_js_1 = require("../shared/workerMessages.js");
10
+ function handleStartupListenError({ err, host, port, isWorker = cluster_1.default.isWorker, send, exit, }) {
11
+ const sendFn = send ?? process.send?.bind(process);
12
+ const exitFn = exit ?? ((code) => process.exit(code));
13
+ log_js_1.default.error({ err, host, port }, 'Node renderer failed to start');
14
+ if (isWorker) {
15
+ if (!sendFn) {
16
+ log_js_1.default.error('Cluster worker has no IPC channel; cannot notify master of startup failure');
17
+ exitFn(1);
18
+ return;
19
+ }
20
+ const startupFailure = {
21
+ type: workerMessages_js_1.WORKER_STARTUP_FAILURE,
22
+ stage: 'listen',
23
+ code: err.code,
24
+ errno: err.errno,
25
+ syscall: err.syscall,
26
+ host,
27
+ port,
28
+ message: err.message,
29
+ };
30
+ try {
31
+ let exited = false;
32
+ const doExit = (sendErr) => {
33
+ if (exited)
34
+ return;
35
+ exited = true;
36
+ if (sendErr)
37
+ log_js_1.default.error({ err: sendErr }, 'Failed to send startup failure message to master');
38
+ exitFn(1);
39
+ };
40
+ sendFn(startupFailure, undefined, undefined, doExit);
41
+ // Safety net: if the IPC channel is half-broken the callback may never
42
+ // fire, leaving this worker alive indefinitely. Force exit after a timeout.
43
+ const IPC_SEND_TIMEOUT_MS = 2000;
44
+ const timer = setTimeout(() => doExit(), IPC_SEND_TIMEOUT_MS);
45
+ if (typeof timer.unref === 'function')
46
+ timer.unref();
47
+ }
48
+ catch (sendErr) {
49
+ log_js_1.default.error({ err: sendErr }, 'Failed to send startup failure message to master');
50
+ exitFn(1);
51
+ }
52
+ }
53
+ else {
54
+ exitFn(1);
55
+ }
56
+ }
57
+ //# sourceMappingURL=startupErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startupErrorHandler.js","sourceRoot":"","sources":["../../src/worker/startupErrorHandler.ts"],"names":[],"mappings":";;;;;AAaA,4DAmDC;AAhED,sDAA8B;AAC9B,8DAAmC;AACnC,mEAAuG;AAWvG,SAAgB,wBAAwB,CAAC,EACvC,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,QAAQ,GAAG,iBAAO,CAAC,QAAQ,EAC3B,IAAI,EACJ,IAAI,GAC6B;IACjC,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,gBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAC;IAEhE,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,gBAAG,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;YACxF,MAAM,CAAC,CAAC,CAAC,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAgC;YAClD,IAAI,EAAE,0CAAsB;YAC5B,KAAK,EAAE,QAAQ;YACf,IAAI,EAAG,GAA6B,CAAC,IAAI;YACzC,KAAK,EAAG,GAA6B,CAAC,KAAK;YAC3C,OAAO,EAAG,GAA6B,CAAC,OAAO;YAC/C,IAAI;YACJ,IAAI;YACJ,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC;QACF,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,MAAM,MAAM,GAAG,CAAC,OAAsB,EAAE,EAAE;gBACxC,IAAI,MAAM;oBAAE,OAAO;gBACnB,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,OAAO;oBAAE,gBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,kDAAkD,CAAC,CAAC;gBAC7F,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC;YACF,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACrD,uEAAuE;YACvE,4EAA4E;YAC5E,MAAM,mBAAmB,GAAG,IAAI,CAAC;YACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC9D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;gBAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACjB,gBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAgB,EAAE,EAAE,kDAAkD,CAAC,CAAC;YACzF,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC"}
package/lib/worker/vm.js CHANGED
@@ -138,7 +138,7 @@ ${(0, utils_js_1.smartTrim)(renderingRequest)}`);
138
138
  });
139
139
  if ((0, utils_js_1.isReadableStream)(result)) {
140
140
  const newStreamAfterHandlingError = (0, utils_js_1.handleStreamError)(result, (error) => {
141
- const msg = (0, utils_js_1.formatExceptionMessage)(renderingRequest, error, 'Error in a rendering stream');
141
+ const msg = (0, utils_js_1.formatExceptionMessage)({ renderingRequest }, error, 'Error in a rendering stream');
142
142
  errorReporter.message(msg);
143
143
  });
144
144
  return newStreamAfterHandlingError;
@@ -157,7 +157,7 @@ ${(0, utils_js_1.smartTrim)(result)}`);
157
157
  return result;
158
158
  }
159
159
  catch (exception) {
160
- const exceptionMessage = (0, utils_js_1.formatExceptionMessage)(renderingRequest, exception);
160
+ const exceptionMessage = (0, utils_js_1.formatExceptionMessage)({ renderingRequest }, exception);
161
161
  log_js_1.default.debug('Caught exception in rendering request: %s', exceptionMessage);
162
162
  return Promise.resolve({ exceptionMessage });
163
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vm.js","sourceRoot":"","sources":["../../src/worker/vm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm.js","sourceRoot":"","sources":["../../src/worker/vm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAe,MAAM,EAAa,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,mBAAmB,CAAC;AASvF,OAAO,EAKL,KAAK,EAEN,MAAM,mBAAmB,CAAC;AAU3B,OAAO,QAAQ,oBAAoB,CAAC;IAClC,UAAU,aAAa;QAErB,KAAK,EAAE,KAAK,CAAC;KACd;CACF;AAED,OAAO,QAAQ,SAAS,CAAC;IAEvB,UAAU,cAAc;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB;CACF;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;AAInE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,qBAAqB,QAErE;AAqED,eAAO,MAAM,YAAY,YAExB,CAAC;AAkBF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;;EAmTlD"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAe,MAAM,EAAa,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,mBAAmB,CAAC;AAUvF,OAAO,EAML,KAAK,EAEN,MAAM,mBAAmB,CAAC;AAU3B,OAAO,QAAQ,oBAAoB,CAAC;IAClC,UAAU,aAAa;QAErB,KAAK,EAAE,KAAK,CAAC;KACd;CACF;AAED,OAAO,QAAQ,SAAS,CAAC;IAEvB,UAAU,cAAc;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB;CACF;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;AAInE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,qBAAqB,QAErE;AAqED,eAAO,MAAM,YAAY,YAExB,CAAC;AAoEF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;;EAsUlD"}
package/lib/worker.js CHANGED
@@ -58,6 +58,7 @@ const checkProtocolVersionHandler_js_1 = __importDefault(require("./worker/check
58
58
  const authHandler_js_1 = __importDefault(require("./worker/authHandler.js"));
59
59
  const handleRenderRequest_js_1 = require("./worker/handleRenderRequest.js");
60
60
  const handleGracefulShutdown_js_1 = __importDefault(require("./worker/handleGracefulShutdown.js"));
61
+ const startupErrorHandler_js_1 = require("./worker/startupErrorHandler.js");
61
62
  const utils_js_1 = require("./shared/utils.js");
62
63
  const tracing_js_1 = require("./shared/tracing.js");
63
64
  const fastifyConfigFunctions = [];
@@ -134,6 +135,49 @@ const disableHttp2 = () => {
134
135
  useHttp2 = false;
135
136
  };
136
137
  exports.disableHttp2 = disableHttp2;
138
+ const INVALID_CONTENT_LENGTH_ERROR_CODE = 'FST_ERR_CTP_INVALID_CONTENT_LENGTH';
139
+ const errorCode = (error) => {
140
+ const code = error?.code;
141
+ return typeof code === 'string' ? code : undefined;
142
+ };
143
+ const isValidRenderingRequest = (value) => typeof value === 'string' && value.length > 0;
144
+ const SENSITIVE_REQUEST_BODY_KEYS = new Set([
145
+ 'password',
146
+ 'token',
147
+ 'secret',
148
+ 'api_key',
149
+ 'api-key',
150
+ 'apikey',
151
+ 'authorization',
152
+ 'auth_token',
153
+ 'auth-token',
154
+ 'authtoken',
155
+ 'access_token',
156
+ 'accesstoken',
157
+ 'bearer',
158
+ 'credentials',
159
+ ]);
160
+ const invalidRenderingRequestMessage = (body) => {
161
+ const { renderingRequest } = body;
162
+ let renderingRequestType = typeof renderingRequest;
163
+ if (renderingRequest === null) {
164
+ renderingRequestType = 'null';
165
+ }
166
+ else if (Array.isArray(renderingRequest)) {
167
+ renderingRequestType = 'array';
168
+ }
169
+ else if (renderingRequest === '') {
170
+ renderingRequestType = 'empty string';
171
+ }
172
+ const bodyKeys = Object.keys(body).filter((key) => key !== 'renderingRequest' && !SENSITIVE_REQUEST_BODY_KEYS.has(key.toLowerCase()));
173
+ return [
174
+ 'Invalid "renderingRequest" field in render request.',
175
+ 'Expected a non-empty string of JavaScript to execute in the SSR VM.',
176
+ `Received type: ${renderingRequestType}.`,
177
+ `Received body keys: ${bodyKeys.length > 0 ? bodyKeys.join(', ') : '(none)'}.`,
178
+ 'Likely causes: request body truncation, malformed multipart form data, or Content-Length mismatch in a proxy/client.',
179
+ ].join('\n');
180
+ };
137
181
  const extractBodyArrayField = (body, key) => {
138
182
  const value = body[key] ?? body[`${key}[]`];
139
183
  if (Array.isArray(value)) {
@@ -162,7 +206,18 @@ function run(config) {
162
206
  // We shouldn't have unhandled errors here, but just in case
163
207
  app.addHook('onError', (req, res, err, done) => {
164
208
  // Not errorReporter.error so that integrations can decide how to log the errors.
165
- app.log.error({ msg: 'Unhandled Fastify error', err, req, res });
209
+ if (errorCode(err) === INVALID_CONTENT_LENGTH_ERROR_CODE) {
210
+ app.log.error({
211
+ msg: 'Invalid request body framing',
212
+ hint: 'Body size did not match Content-Length. Check client/proxy truncation and Content-Length handling.',
213
+ err,
214
+ req,
215
+ res,
216
+ });
217
+ }
218
+ else {
219
+ app.log.error({ msg: 'Unhandled Fastify error', err, req, res });
220
+ }
166
221
  done();
167
222
  });
168
223
  // Each request gets its own upload directory to prevent concurrent requests
@@ -265,11 +320,20 @@ function run(config) {
265
320
  //
266
321
  // await delay(100000);
267
322
  // }
268
- const { renderingRequest } = req.body;
323
+ const { body } = req;
324
+ if (!body || typeof body !== 'object') {
325
+ await setResponse((0, utils_js_1.badRequestResponseResult)('Invalid or missing request body.'), res);
326
+ return;
327
+ }
328
+ const { renderingRequest } = body;
329
+ if (!isValidRenderingRequest(renderingRequest)) {
330
+ await setResponse((0, utils_js_1.badRequestResponseResult)(invalidRenderingRequestMessage(body)), res);
331
+ return;
332
+ }
269
333
  const { bundleTimestamp } = req.params;
270
- const { providedNewBundles, assetsToCopy } = extractBundlesAndAssets(req.body, bundleTimestamp);
334
+ const { providedNewBundles, assetsToCopy } = extractBundlesAndAssets(body, bundleTimestamp);
271
335
  try {
272
- const dependencyBundleTimestamps = extractBodyArrayField(req.body, 'dependencyBundleTimestamps');
336
+ const dependencyBundleTimestamps = extractBodyArrayField(body, 'dependencyBundleTimestamps');
273
337
  await (0, tracing_js_1.trace)(async (context) => {
274
338
  try {
275
339
  const result = await (0, handleRenderRequest_js_1.handleRenderRequest)({
@@ -283,13 +347,13 @@ function run(config) {
283
347
  await setResponse(result, res);
284
348
  }
285
349
  catch (err) {
286
- const exceptionMessage = (0, utils_js_1.formatExceptionMessage)(renderingRequest, err, 'UNHANDLED error in handleRenderRequest');
350
+ const exceptionMessage = (0, utils_js_1.formatExceptionMessage)({ renderingRequest }, err, 'UNHANDLED error in handleRenderRequest');
287
351
  await setResponse((0, utils_js_1.errorResponseResult)(exceptionMessage, context), res);
288
352
  }
289
353
  }, (0, tracing_js_1.startSsrRequestOptions)({ renderingRequest }));
290
354
  }
291
355
  catch (theErr) {
292
- const exceptionMessage = (0, utils_js_1.formatExceptionMessage)(renderingRequest, theErr);
356
+ const exceptionMessage = (0, utils_js_1.formatExceptionMessage)({ renderingRequest }, theErr);
293
357
  await setResponse((0, utils_js_1.errorResponseResult)(`Unhandled top level error: ${exceptionMessage}`), res);
294
358
  }
295
359
  });
@@ -318,7 +382,7 @@ function run(config) {
318
382
  // endpoint so that concurrent /upload-assets and render requests
319
383
  // targeting the same bundle directory are mutually exclusive.
320
384
  // See https://github.com/shakacode/react_on_rails/issues/2463
321
- const result = await (0, handleRenderRequest_js_1.handleNewBundlesProvided)(taskDescription, providedNewBundles, assetsToCopy);
385
+ const result = await (0, handleRenderRequest_js_1.handleNewBundlesProvided)({ label: 'Request:', content: taskDescription }, providedNewBundles, assetsToCopy);
322
386
  if (result) {
323
387
  await setResponse(result, res);
324
388
  return;
@@ -381,8 +445,8 @@ function run(config) {
381
445
  if (workersCount === 0 || cluster_1.default.isWorker) {
382
446
  app.listen({ port, host }, (err, address) => {
383
447
  if (err) {
384
- log_js_1.default.error({ err, host, port }, 'Node renderer failed to start');
385
- process.exit(1);
448
+ (0, startupErrorHandler_js_1.handleStartupListenError)({ err, host, port });
449
+ return;
386
450
  }
387
451
  const workerName = worker ? `worker #${worker.id}` : 'master (single-process)';
388
452
  log_js_1.default.info({ workerName, address }, 'Node renderer listening');
package/lib/worker.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-on-rails-pro-node-renderer",
3
- "version": "16.6.0-rc.0",
3
+ "version": "16.6.0",
4
4
  "protocolVersion": "2.0.0",
5
5
  "description": "React on Rails Pro Node Renderer for server-side rendering",
6
6
  "main": "lib/ReactOnRailsProNodeRenderer.js",
@@ -60,7 +60,7 @@
60
60
  "sentry-testkit": "^5.0.6",
61
61
  "touch": "^3.1.0",
62
62
  "typescript": "^5.4.3",
63
- "react-on-rails": "16.6.0-rc.0"
63
+ "react-on-rails": "16.6.0"
64
64
  },
65
65
  "peerDependencies": {
66
66
  "@honeybadger-io/js": ">=4.0.0",
package/src/master.ts CHANGED
@@ -10,6 +10,7 @@ import { buildConfig, Config, logSanitizedConfig } from './shared/configBuilder.
10
10
  import restartWorkers from './master/restartWorkers.js';
11
11
  import * as errorReporter from './shared/errorReporter.js';
12
12
  import { getLicenseStatus } from './shared/licenseValidator.js';
13
+ import { isWorkerStartupFailureMessage, type WorkerStartupFailureMessage } from './shared/workerMessages.js';
13
14
 
14
15
  const MILLISECONDS_IN_MINUTE = 60000;
15
16
  // How often to scan for orphaned upload directories.
@@ -77,22 +78,81 @@ export default function masterRun(runningConfig?: Partial<Config>) {
77
78
  })();
78
79
  }, ORPHAN_CLEANUP_INTERVAL_MS);
79
80
 
81
+ let isAbortingForStartupFailure = false;
82
+ let fatalStartupFailure: { workerId: number; failure: WorkerStartupFailureMessage } | null = null;
83
+ let hasInitiatedShutdown = false;
84
+
85
+ const abortForStartupFailure = (): boolean => {
86
+ if (!(isAbortingForStartupFailure && fatalStartupFailure)) return false;
87
+
88
+ if (!hasInitiatedShutdown) {
89
+ hasInitiatedShutdown = true;
90
+ // Note: the exiting worker may differ from the one that sent the
91
+ // failure message if multiple workers exit in rapid succession.
92
+ // We always report the first failure received.
93
+ const { failure, workerId: failedWorkerId } = fatalStartupFailure;
94
+ const msg =
95
+ failure.code === 'EADDRINUSE'
96
+ ? `Node renderer startup failed: ${failure.host}:${failure.port} is already in use`
97
+ : `Node renderer startup failed in worker ${failedWorkerId}: ${failure.message}`;
98
+
99
+ errorReporter.message(msg);
100
+ // Disconnect all live workers so they release their ports before the
101
+ // master exits. cluster.disconnect() is async — the callback fires
102
+ // once every worker has disconnected. A hard-deadline timer guarantees
103
+ // the master still exits if a worker is stuck (leaked handle, blocking
104
+ // syscall, etc.), following the same pattern as restartWorkers.ts.
105
+ const MASTER_SHUTDOWN_TIMEOUT_MS = 5000;
106
+ const shutdownTimer = setTimeout(() => process.exit(1), MASTER_SHUTDOWN_TIMEOUT_MS);
107
+ if (typeof shutdownTimer.unref === 'function') shutdownTimer.unref();
108
+ cluster.disconnect(() => {
109
+ clearTimeout(shutdownTimer);
110
+ process.exit(1);
111
+ });
112
+ }
113
+
114
+ return true;
115
+ };
116
+
117
+ cluster.on('message', (worker, message) => {
118
+ // Check the abort flag first to short-circuit the type-guard on every
119
+ // ordinary IPC message once we are already aborting.
120
+ if (isAbortingForStartupFailure || !isWorkerStartupFailureMessage(message)) return;
121
+
122
+ isAbortingForStartupFailure = true;
123
+ fatalStartupFailure = { workerId: worker.id, failure: message };
124
+ });
125
+
80
126
  for (let i = 0; i < workersCount; i += 1) {
81
127
  cluster.fork();
82
128
  }
83
129
 
84
130
  // Listen for dying workers:
85
131
  cluster.on('exit', (worker) => {
132
+ // Once a startup failure has been detected, abort regardless of whether
133
+ // this particular exit was from the failing worker, a scheduled restart,
134
+ // or an unrelated crash. Don't fork any more workers.
135
+ if (abortForStartupFailure()) {
136
+ return;
137
+ }
138
+
86
139
  if (worker.isScheduledRestart) {
87
140
  log.info('Restarting worker #%d on schedule', worker.id);
88
- } else {
141
+ cluster.fork();
142
+ return;
143
+ }
144
+
145
+ // Give in-flight startup-failure IPC messages one event-loop turn to be
146
+ // processed before classifying this as an ordinary runtime crash.
147
+ setImmediate(() => {
148
+ if (abortForStartupFailure()) return;
149
+
89
150
  // TODO: Track last rendering request per worker.id
90
151
  // TODO: Consider blocking a given rendering request if it kills a worker more than X times
91
152
  const msg = `Worker ${worker.id} died UNEXPECTEDLY :(, restarting`;
92
153
  errorReporter.message(msg);
93
- }
94
- // Replace the dead worker:
95
- cluster.fork();
154
+ cluster.fork();
155
+ });
96
156
  });
97
157
 
98
158
  // Schedule regular restarts of workers
@@ -142,6 +142,13 @@ function logLevel(level: string): LevelWithSilent {
142
142
  }
143
143
  }
144
144
 
145
+ function validatePort(port: number): string | null {
146
+ if (!Number.isInteger(port) || !Number.isFinite(port) || port < 0 || port > 65535) {
147
+ return `RENDERER_PORT must be an integer between 0 and 65535. Received: ${String(port)}`;
148
+ }
149
+ return null;
150
+ }
151
+
145
152
  function normalizedRuntimeEnvs() {
146
153
  return [env.RAILS_ENV, env.NODE_ENV]
147
154
  .filter((value): value is string => Boolean(value))
@@ -380,6 +387,17 @@ export function buildConfig(providedUserConfig?: Partial<Config>): Config {
380
387
  }
381
388
  });
382
389
 
390
+ // Coerce port to a number — user configs frequently pass env-derived strings
391
+ // (e.g. `port: env.RENDERER_PORT || 3800` yields the string "3800").
392
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion -- runtime value may be string despite the type
393
+ config.port = Number(config.port);
394
+
395
+ const portValidationError = validatePort(config.port);
396
+ if (portValidationError) {
397
+ log.error(portValidationError);
398
+ process.exit(1);
399
+ }
400
+
383
401
  if (
384
402
  'honeybadgerApiKey' in config ||
385
403
  'sentryDsn' in config ||
@@ -49,25 +49,35 @@ export interface ResponseResult {
49
49
  stream?: Readable;
50
50
  }
51
51
 
52
- export function errorResponseResult(msg: string, tracingContext?: TracingContext): ResponseResult {
53
- errorReporter.message(msg, tracingContext);
52
+ const NO_CACHE_HEADERS = { 'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate' } as const;
53
+
54
+ export function badRequestResponseResult(msg: string): ResponseResult {
54
55
  return {
55
- headers: { 'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate' },
56
+ headers: NO_CACHE_HEADERS,
56
57
  status: 400,
57
58
  data: msg,
58
59
  };
59
60
  }
60
61
 
62
+ export function errorResponseResult(msg: string, tracingContext?: TracingContext): ResponseResult {
63
+ errorReporter.message(msg, tracingContext);
64
+ return badRequestResponseResult(msg);
65
+ }
66
+
67
+ export type RequestInfo = { renderingRequest: string } | { label: string; content: string };
61
68
  /**
62
- * @param renderingRequest The JavaScript code which threw an error
69
+ * @param request Either a rendering request (auto-labeled) or a { label, content } pair
63
70
  * @param error The error that was thrown (typed as `unknown` to minimize casts in `catch`)
64
71
  * @param context Optional context to include in the error message
65
72
  */
66
- export function formatExceptionMessage(renderingRequest: string, error: unknown, context?: string) {
73
+ export function formatExceptionMessage(request: RequestInfo, error: unknown, context?: string) {
74
+ const label = 'renderingRequest' in request ? 'JS code for rendering request was:' : request.label;
75
+ const content = 'renderingRequest' in request ? request.renderingRequest : request.content;
76
+
67
77
  return `${context ? `\nContext:\n${context}\n` : ''}
68
- JS code for rendering request was:
69
- ${smartTrim(renderingRequest)}
70
-
78
+ ${label}
79
+ ${smartTrim(content)}
80
+
71
81
  EXCEPTION MESSAGE:
72
82
  ${(error as Error).message || error}
73
83