test(oracledb): retry stalled ESM subprocesses - #10096
Conversation
Overall package sizeSelf size: 8.85 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.4.0 | 127.33 kB | 447.04 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #10096 +/- ##
===========================================
+ Coverage 87.76% 98.67% +10.91%
===========================================
Files 996 1006 +10
Lines 153294 158039 +4745
Branches 74 74
===========================================
+ Hits 134535 155952 +21417
+ Misses 18759 2087 -16672
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
BenchmarksBenchmark execution time: 2026-09-08 16:36:58 Comparing candidate commit 883c71c in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 2308 metrics, 5 unstable metrics.
|
d7ea788 to
1215cb9
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1215cb907f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
1215cb9 to
14c01ba
Compare
An Oracle ESM subprocess can stall before exit. The old completion-only result kept its child handle from teardown, so the test hit the outer Mocha timeout. Each attempt now stops its child at its deadline. Oracle retries only that timeout with a fresh subprocess. Refs: oracle/node-oracledb#1592
Oracle needs the child handle before completion for teardown, while existing integration tests rely on awaiting the helper directly.
A retry could combine telemetry from one child with a clean exit from another, so the test could pass without one complete instrumented run. Shorter Oracle phase limits keep their failures attributable before the process deadline.
The process deadline must remain above Oracle's 15-second connect and 10-second query limits, so slow but valid operations retain their existing budget. Telemetry and Mocha deadlines follow the process deadline so subprocess failures stay attributable.
14c01ba to
883c71c
Compare
* test(oracledb): retry stalled ESM subprocesses An Oracle ESM subprocess can stall before exit. The old completion-only result kept its child handle from teardown, so the test hit the outer Mocha timeout. Each attempt now stops its child at its deadline. Oracle retries only that timeout with a fresh subprocess. Refs: oracle/node-oracledb#1592 * refactor(test): preserve subprocess helper awaitability Oracle needs the child handle before completion for teardown, while existing integration tests rely on awaiting the helper directly. * test(oracledb): remove stalled subprocess retry A retry could combine telemetry from one child with a clean exit from another, so the test could pass without one complete instrumented run. Shorter Oracle phase limits keep their failures attributable before the process deadline. * test(oracledb): preserve Oracle operation timeouts The process deadline must remain above Oracle's 15-second connect and 10-second query limits, so slow but valid operations retain their existing budget. Telemetry and Mocha deadlines follow the process deadline so subprocess failures stay attributable.
* test(oracledb): retry stalled ESM subprocesses An Oracle ESM subprocess can stall before exit. The old completion-only result kept its child handle from teardown, so the test hit the outer Mocha timeout. Each attempt now stops its child at its deadline. Oracle retries only that timeout with a fresh subprocess. Refs: oracle/node-oracledb#1592 * refactor(test): preserve subprocess helper awaitability Oracle needs the child handle before completion for teardown, while existing integration tests rely on awaiting the helper directly. * test(oracledb): remove stalled subprocess retry A retry could combine telemetry from one child with a clean exit from another, so the test could pass without one complete instrumented run. Shorter Oracle phase limits keep their failures attributable before the process deadline. * test(oracledb): preserve Oracle operation timeouts The process deadline must remain above Oracle's 15-second connect and 10-second query limits, so slow but valid operations retain their existing budget. Telemetry and Mocha deadlines follow the process deadline so subprocess failures stay attributable.
An Oracle ESM subprocess can stall before exit. The completion-only helper did not expose its child, so teardown could not stop it before Mocha's timeout.
Short-lived subprocess helpers now expose the child before completion. Each bounded Oracle attempt stops its child before one fresh-process retry, and other failures remain terminal.
Refs: oracle/node-oracledb#1592