@harperfast/harper 5.2.5 → 5.2.7
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.
- package/bin/restart.ts +48 -23
- package/bin/restartExitWatchdog.ts +99 -0
- package/bin/run.ts +16 -10
- package/dist/bin/restart.js +39 -21
- package/dist/bin/restart.js.map +1 -1
- package/dist/bin/restartExitWatchdog.d.ts +5 -0
- package/dist/bin/restartExitWatchdog.js +100 -0
- package/dist/bin/restartExitWatchdog.js.map +1 -0
- package/dist/bin/run.d.ts +2 -0
- package/dist/bin/run.js +17 -10
- package/dist/bin/run.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +18 -1
- package/dist/resources/DatabaseTransaction.js +63 -1
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +2 -0
- package/dist/resources/LMDBTransaction.js +7 -1
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.js +2 -3
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +16 -0
- package/dist/resources/RecordEncoder.js +93 -3
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/Resource.js +5 -4
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +5 -0
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Table.js +106 -9
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/graphql.js +1 -1
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/tracked.js +5 -0
- package/dist/resources/tracked.js.map +1 -1
- package/dist/resources/transaction.js +1 -1
- package/dist/resources/transaction.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +1 -0
- package/dist/server/threads/manageThreads.js +20 -3
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/utility/processManagement/processManagement.js +21 -3
- package/dist/utility/processManagement/processManagement.js.map +1 -1
- package/npm-shrinkwrap.json +6 -6
- package/package.json +2 -2
- package/resources/DESIGN.md +24 -19
- package/resources/DatabaseTransaction.ts +63 -2
- package/resources/LMDBTransaction.ts +7 -1
- package/resources/PrimaryRocksDatabase.ts +3 -3
- package/resources/RecordEncoder.ts +85 -3
- package/resources/Resource.ts +6 -5
- package/resources/ResourceInterface.ts +5 -0
- package/resources/Table.ts +117 -9
- package/resources/graphql.ts +1 -1
- package/resources/tracked.ts +4 -0
- package/resources/transaction.ts +2 -2
- package/server/DESIGN.md +6 -0
- package/server/threads/manageThreads.js +17 -3
- package/studio/web/assets/{Chat-Lgj1d-8d.js → Chat-etJeJv4a.js} +71 -95
- package/studio/web/assets/FloatingChat-BvmHsuVo.js +23 -0
- package/studio/web/assets/abnfDiagram-VCTEODGH-C0_BAZyO.js +1 -0
- package/studio/web/assets/{alertDialog-BaBrZQ4M.js → alertDialog-DIHt7Z0r.js} +1 -1
- package/studio/web/assets/apiToken-Bl5LC8EH.js +1 -0
- package/studio/web/assets/applications-Dta6Y0Rg.js +296 -0
- package/studio/web/assets/arc-CVRByUzA.js +1 -0
- package/studio/web/assets/architecture-7GRP2DOG-DNdx5tEU.js +1 -0
- package/studio/web/assets/architectureDiagram-5GKGNRK7-BWzrASgm.js +36 -0
- package/studio/web/assets/authStore-qKmCZcaf.js +3 -0
- package/studio/web/assets/blockDiagram-NRAW4CY4-BdJX9Khj.js +129 -0
- package/studio/web/assets/{button-DfBmT4rc.js → button-DhiX-njv.js} +1 -1
- package/studio/web/assets/c4Diagram-UCG6FXSJ-CI6MzGmQ.js +38 -0
- package/studio/web/assets/channel-DtCV8PTL.js +1 -0
- package/studio/web/assets/chevron-up-Df2c8uoU.js +1 -0
- package/studio/web/assets/chunk-75Z2AOVW-BT8tVmks.js +2 -0
- package/studio/web/assets/chunk-DU6HZSFF-9kAOOmI6.js +127 -0
- package/studio/web/assets/{chunk-2GRJ4B5K-DtwG__pv.js → chunk-F27PBJKO-BW7ao8AY.js} +1 -1
- package/studio/web/assets/{chunk-KEIR6QF5-BICK3FdT.js → chunk-FOHPRMQF-DHwB1DNv.js} +2 -2
- package/studio/web/assets/{chunk-5RXB4S5H-D3c7okHC.js → chunk-G27WJ6UU-COyLMcgK.js} +2 -2
- package/studio/web/assets/chunk-GMAD6QVW-BNyXpoQO.js +72 -0
- package/studio/web/assets/chunk-JQ64N6SF-Cyz1IeLf.js +1 -0
- package/studio/web/assets/{chunk-GF5L2VYU-DreJ7Snz.js → chunk-LCL6LL3I-HOzK_ppE.js} +3 -3
- package/studio/web/assets/chunk-OBVCFTLP-D4wWOqDQ.js +1 -0
- package/studio/web/assets/chunk-P2QGCYS3-DmIFY4d7.js +1 -0
- package/studio/web/assets/{chunk-KBJHAD2P-CLDPbAA-.js → chunk-POPQ4Y6H-BPrvMyKz.js} +1 -1
- package/studio/web/assets/{chunk-4I5QYGJK-D1FhvtQq.js → chunk-PWAF6VOD-2zB6IW9i.js} +1 -1
- package/studio/web/assets/chunk-R7TYR2AO-Irip67yr.js +10 -0
- package/studio/web/assets/chunk-RHFEMEQ7-2FgyI8YU.js +168 -0
- package/studio/web/assets/{chunk-6Q2QTUOP-QviMM6bR.js → chunk-SVP7TREG-FwtbH2QC.js} +1 -1
- package/studio/web/assets/chunk-TEH6E4GO-P87k5mNi.js +62 -0
- package/studio/web/assets/{chunk-XXDRQBXY-CaP_jixK.js → chunk-XXDRQBXY-BoGZu3HH.js} +1 -1
- package/studio/web/assets/classDiagram-DTDB5LWJ-DbO_dCNE.js +1 -0
- package/studio/web/assets/classDiagram-v2-JRS7N3AN-DbO_dCNE.js +1 -0
- package/studio/web/assets/{cose-bilkent-JH36ORCC-BVTNhTKD.js → cose-bilkent-JH36ORCC-Cuuf67Bh.js} +1 -1
- package/studio/web/assets/{createLucideIcon-BMkDbMrz.js → createLucideIcon-BKGPfjm2.js} +1 -1
- package/studio/web/assets/cssMode-IAbO_2KK.js +1 -0
- package/studio/web/assets/cynefin-OW5HDTMX-BRkpLFQV.js +1 -0
- package/studio/web/assets/cynefinDiagram-5FMLGOSQ-CHT1DaX6.js +62 -0
- package/studio/web/assets/cytoscape.esm-C2x7inlt.js +321 -0
- package/studio/web/assets/dagre-3AP2YEHR-DpUXBh63.js +4 -0
- package/studio/web/assets/dagre-PrKaheQc.js +1 -0
- package/studio/web/assets/diagram-S7CK7UJ4-BuymVFZT.js +30 -0
- package/studio/web/assets/diagram-UQ7AKVKN-CyP148RM.js +41 -0
- package/studio/web/assets/diagram-VSXAHHWV-CoCAg3M9.js +3 -0
- package/studio/web/assets/diagram-VX7I27RA-BpOqCFca.js +24 -0
- package/studio/web/assets/diagram-Z3DM3KII-Bfpw7Vbj.js +24 -0
- package/studio/web/assets/dialog-CBf0Mr1d.js +1 -0
- package/studio/web/assets/{dist-CeoU7cfW.js → dist-kYfyPZP9.js} +1 -1
- package/studio/web/assets/{dist-cY0BPcz0.js → dist-lkA3O3eM.js} +1 -1
- package/studio/web/assets/download-BtTOBem-.js +1 -0
- package/studio/web/assets/ebnfDiagram-PWID7BFC-DS_6aWqL.js +1 -0
- package/studio/web/assets/editor-CeRXEhRl.js +1 -0
- package/studio/web/assets/erDiagram-SSCWMZ5O-DJNk6Fgw.js +99 -0
- package/studio/web/assets/eventmodeling-NTZA5JFV-5jbe4A5P.js +1 -0
- package/studio/web/assets/flowDiagram-A5DVABFB-Dp9Ezlow.js +1 -0
- package/studio/web/assets/{ganttDiagram-PKOTCBZU-Cit41Zp3.js → ganttDiagram-EL5Y4UJY-2pOExxMY.js} +2 -2
- package/studio/web/assets/{getAnalytics-rTxZLIM5.js → getAnalytics-D4LKGeVy.js} +1 -1
- package/studio/web/assets/gitGraph-4MIJSDKK-CH5ZxwzF.js +1 -0
- package/studio/web/assets/gitGraphDiagram-WWUBYQGX-DVIsIhbO.js +106 -0
- package/studio/web/assets/html-DOV4s_YT.js +1 -0
- package/studio/web/assets/htmlMode-CdqjnAh4.js +1 -0
- package/studio/web/assets/index-CTqasm6g.js +824 -0
- package/studio/web/assets/index-Cxj2_wsl.css +1 -0
- package/studio/web/assets/index.lazy-VmcKgiEy.js +2 -0
- package/studio/web/assets/info-A6RAGUB7-CPQfTnaG.js +1 -0
- package/studio/web/assets/infoDiagram-RXCK75RN-DlwLYlwm.js +2 -0
- package/studio/web/assets/{ishikawaDiagram-WSZJBQD7-BJYRB-hU.js → ishikawaDiagram-5VMMS53U-BRXRp29U.js} +2 -2
- package/studio/web/assets/{javascript-CGzSV8Sd.js → javascript-Dj7yXfx5.js} +1 -1
- package/studio/web/assets/{journeyDiagram-NVQOT4AX-B8K4wuMz.js → journeyDiagram-EYS64GPL-B0ou8k0n.js} +1 -1
- package/studio/web/assets/jsonMode-khk65qzx.js +1 -0
- package/studio/web/assets/{kanban-definition-27J2QSJJ-DKFV1ovM.js → kanban-definition-3QL26DDD-uYg7iYzp.js} +11 -11
- package/studio/web/assets/languageServices-D_06p7dw.js +1 -0
- package/studio/web/assets/linear-Cnt8506Q.js +1 -0
- package/studio/web/assets/lspLanguageFeatures-DTA6wyQw.js +4 -0
- package/studio/web/assets/mermaid-parser.core-Ck-fC8b7.js +7 -0
- package/studio/web/assets/mermaid.core-CP8aNNYm.js +44 -0
- package/studio/web/assets/{mindmap-definition-FAOFIHXS-CKL4PdAv.js → mindmap-definition-FBJOCRG2-CgTZ-rit.js} +25 -25
- package/studio/web/assets/notifications-Bah46LXX.js +1 -0
- package/studio/web/assets/notifications-CBZXgxVc.js +1 -0
- package/studio/web/assets/packet-AYTQ26CC-DEyoPtPb.js +1 -0
- package/studio/web/assets/pegDiagram-XKGWAZYB-DrD-7sD9.js +1 -0
- package/studio/web/assets/pie-WAS4IAKB-wjj-EI1d.js +1 -0
- package/studio/web/assets/pieDiagram-E7YTZNPT-GntqDCzv.js +39 -0
- package/studio/web/assets/profile-QspOun_j.js +1 -0
- package/studio/web/assets/{quadrantDiagram-CIZ2JOQS-CSbsuWtH.js → quadrantDiagram-AXDQQJYC-0UeqXQGd.js} +1 -1
- package/studio/web/assets/radar-RG4KPBEZ-DFSA5h7k.js +1 -0
- package/studio/web/assets/railroad-74A4TZTK-CaOUG9wR.js +1 -0
- package/studio/web/assets/railroad-abnf-HS5TGJTU-Bc0Qi0WH.js +1 -0
- package/studio/web/assets/railroad-ebnf-LZEXJU2U-G8rVVZ2C.js +1 -0
- package/studio/web/assets/railroad-peg-WCYAUIDC-CrehKBhC.js +1 -0
- package/studio/web/assets/railroadDiagram-O6MQD6OU-yHUELZaV.js +1 -0
- package/studio/web/assets/regions-QdUi7bQ9.js +1 -0
- package/studio/web/assets/{editor.api-eUd8PqEu.js → register-Buvoxmb8.js} +139 -138
- package/studio/web/assets/{requirementDiagram-LRYGKXZP-ZIF0Wlho.js → requirementDiagram-EFPCY7ZU-DNEGFjuW.js} +2 -2
- package/studio/web/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/studio/web/assets/safeParse-DeaoCCWH.js +1 -0
- package/studio/web/assets/{sankeyDiagram-W5VNT64P-BcRESt9x.js → sankeyDiagram-P5KCCOFB-DpyAmSVR.js} +1 -1
- package/studio/web/assets/{sequenceDiagram-SI44F4Z6-OpgTeJNU.js → sequenceDiagram-WJ2MYXX4-TyaT7xNk.js} +1 -1
- package/studio/web/assets/setComponentFile-BI4E_iDe.js +1 -0
- package/studio/web/assets/setLocalStorage-D_kflv4U.js +1 -0
- package/studio/web/assets/setSessionStorage-B0bf71m4.js +1 -0
- package/studio/web/assets/setup-Cop6LBQN.js +2 -0
- package/studio/web/assets/src-CMc7m_Ut.js +1 -0
- package/studio/web/assets/stateDiagram-HBIQ2CUA-CeEdTArZ.js +1 -0
- package/studio/web/assets/stateDiagram-v2-4QOOHH4V-D4tuw9Su.js +1 -0
- package/studio/web/assets/status-DRu3zRgl.js +61 -0
- package/studio/web/assets/step-vX8bovaY.js +1 -0
- package/studio/web/assets/swimlanes-XN3QIQJK-B54FmF46.js +1 -0
- package/studio/web/assets/swimlanesDiagram-VK2B7HYN-XOhmNEvq.js +8 -0
- package/studio/web/assets/tabs-B_G5zscN.js +1 -0
- package/studio/web/assets/{time-D55sDum-.js → time-Cclkb7kQ.js} +1 -1
- package/studio/web/assets/{timeline-definition-Z64GVDOM-Dy5A_tK2.js → timeline-definition-24CTP7MA-D-a9ujbo.js} +5 -5
- package/studio/web/assets/toggleHighContrast-C0dJLmZ0.js +49 -0
- package/studio/web/assets/treeView-Q6P3EWNA-CrW_6JnS.js +1 -0
- package/studio/web/assets/treemap-WGGIJYW6-BxyYLdP_.js +1 -0
- package/studio/web/assets/tsMode-dbDiapTA.js +11 -0
- package/studio/web/assets/typescript-CT1826cL.js +1 -0
- package/studio/web/assets/useEntityRestURL-D1u1X_gE.js +1 -0
- package/studio/web/assets/useLocalStorage-Dtj1QS8_.js +1 -0
- package/studio/web/assets/{vendor-core-CddkYGh5.js → vendor-core-RCcadM3e.js} +1 -1
- package/studio/web/assets/vendor-datadog-BRv-mOv1.js +6 -0
- package/studio/web/assets/{vendor-react-BhazFIp8.js → vendor-react-Dyj4O3HE.js} +1 -1
- package/studio/web/assets/vendor-tanstack-BiFWSB3W.js +1 -0
- package/studio/web/assets/{vendor-ui-BLIveqaL.js → vendor-ui-vhu-UHhF.js} +11 -11
- package/studio/web/assets/{vennDiagram-T6HMQDX7-DRvMIiSo.js → vennDiagram-4TSXK5OY-Cy7s7Mpy.js} +3 -3
- package/studio/web/assets/wardley-WFR3VGLG-BeBL35g2.js +1 -0
- package/studio/web/assets/{wardleyDiagram-T6FBY63Y-B04FSA0i.js → wardleyDiagram-VM6X3IG4-BylmIGSg.js} +3 -3
- package/studio/web/assets/workers-FpR9_D2K.js +3 -0
- package/studio/web/assets/x-B9o9hsep.js +1 -0
- package/studio/web/assets/xml-ZjKUMjth.js +1 -0
- package/studio/web/assets/{xychartDiagram-ELKLHX3M-BE0X7RA7.js → xychartDiagram-S5SC5T6Z-CoKALMXr.js} +3 -3
- package/studio/web/assets/yaml-B6gXbZU6.js +1 -0
- package/studio/web/assets/{yaml.worker-Iyy2Pf1T.js → yaml.worker-BDL8_iuk.js} +153 -153
- package/studio/web/harper-studio_black.png +0 -0
- package/studio/web/index.html +18 -24
- package/utility/processManagement/processManagement.js +19 -3
- package/studio/web/assets/FloatingChat-jLWvR4kI.js +0 -23
- package/studio/web/assets/abnfDiagram-N423BO3Z-BRuH0ywn.js +0 -1
- package/studio/web/assets/apiToken-DYI4DqWa.js +0 -1
- package/studio/web/assets/applications-DCmc9-lk.js +0 -296
- package/studio/web/assets/arc-3Xw6uabx.js +0 -1
- package/studio/web/assets/architecture-TIHT7OUA-CsHfPErM.js +0 -1
- package/studio/web/assets/architectureDiagram-T3A2C74G-DrwbS7Gp.js +0 -36
- package/studio/web/assets/array-BifhSqXX.js +0 -1
- package/studio/web/assets/authStore-B3IhXrn6.js +0 -3
- package/studio/web/assets/blockDiagram-VBNYF7ZC-DKN1mht5.js +0 -132
- package/studio/web/assets/c4Diagram-5PPSVZJV-CT9bmjm_.js +0 -10
- package/studio/web/assets/card-ByrPS_wa.js +0 -1
- package/studio/web/assets/channel-mnKBfsP-.js +0 -1
- package/studio/web/assets/chevron-right-CY-tr2sG.js +0 -1
- package/studio/web/assets/chunk-3NCLNEKW-BVj72ixc.js +0 -1
- package/studio/web/assets/chunk-5FCAYU7R-Dh5nylU8.js +0 -1
- package/studio/web/assets/chunk-5HE753X5-Bw-yg4kO.js +0 -1
- package/studio/web/assets/chunk-5JV3BV7I-Cy5pj3QY.js +0 -1
- package/studio/web/assets/chunk-5TONJI2A-DQOY3q1H.js +0 -2
- package/studio/web/assets/chunk-7BUUIJ7U-Bb538aSH.js +0 -1
- package/studio/web/assets/chunk-7Z6QIM7H-BJhESwQK.js +0 -10
- package/studio/web/assets/chunk-BIQX33UG-DZEsGuSn.js +0 -1
- package/studio/web/assets/chunk-CQNSW5MT-B8S09OIh.js +0 -1
- package/studio/web/assets/chunk-CYSBUYHQ-C1Rf4art.js +0 -1
- package/studio/web/assets/chunk-EMLP6XTP-RLD4nXpI.js +0 -1
- package/studio/web/assets/chunk-I66GZJ75-DHPYnKNr.js +0 -125
- package/studio/web/assets/chunk-J7OUQ5F2-DcY_kb6i.js +0 -2
- package/studio/web/assets/chunk-JG7HCLWE-BYfiSaVt.js +0 -2
- package/studio/web/assets/chunk-JQJVKLGR-DtEmbHZj.js +0 -156
- package/studio/web/assets/chunk-MOZMSUNE-XVucA-n6.js +0 -1
- package/studio/web/assets/chunk-NSK5VX7P-DDFNzCU_.js +0 -2
- package/studio/web/assets/chunk-OSBZ3O6U-CrKZOUOr.js +0 -1
- package/studio/web/assets/chunk-QBLGF6JB-CxAyS2mW.js +0 -1
- package/studio/web/assets/chunk-QR6OTTB3-Df7OCENk.js +0 -62
- package/studio/web/assets/chunk-R7FJI6CG-Cnn3gE-Y.js +0 -1
- package/studio/web/assets/chunk-RYQCIY6F-N0MDKk5G.js +0 -1
- package/studio/web/assets/chunk-U6XO7XAA-BFxjP5U3.js +0 -2
- package/studio/web/assets/chunk-UBXNYLIW-rn0yw1mp.js +0 -1
- package/studio/web/assets/chunk-W5SLKNZC-DKMlAWZk.js +0 -1
- package/studio/web/assets/chunk-WRU74C26-Dg10j8Pf.js +0 -70
- package/studio/web/assets/chunk-YOTPTUD7-D0vRKqYp.js +0 -1
- package/studio/web/assets/chunk-ZIRB5QZD-O39ZBUk3.js +0 -32
- package/studio/web/assets/classDiagram-JCYQIIEL-BrXNP4fl.js +0 -1
- package/studio/web/assets/classDiagram-v2-OCEON4UE-BrXNP4fl.js +0 -1
- package/studio/web/assets/cssMode-DipmMR_-.js +0 -1
- package/studio/web/assets/cynefin-VYW2F7L2-Ds2Fw2Y0.js +0 -1
- package/studio/web/assets/cynefinDiagram-MW4NZA55-DcTzrsC5.js +0 -62
- package/studio/web/assets/cytoscape.esm-B-NFISlW.js +0 -321
- package/studio/web/assets/dagre-Buvkdvvj.js +0 -1
- package/studio/web/assets/dagre-VZM6K2ZE-CMyJ9QPU.js +0 -4
- package/studio/web/assets/diagram-7IWD3JNH-jEGuzdp3.js +0 -30
- package/studio/web/assets/diagram-B4RE2ZJO-Ba7wC7iw.js +0 -3
- package/studio/web/assets/diagram-LBJQPF4R-Bm7Wj_dF.js +0 -24
- package/studio/web/assets/diagram-Q27KOJAE-C-gdktLC.js +0 -24
- package/studio/web/assets/diagram-UB23O5K3-COBVIEEk.js +0 -41
- package/studio/web/assets/ebnfDiagram-BXEA7PRR-G-t56mVV.js +0 -1
- package/studio/web/assets/editor-BDfNodZS.js +0 -1
- package/studio/web/assets/erDiagram-JOGREHBK-DpHzpqx1.js +0 -85
- package/studio/web/assets/eventmodeling-45OFAUF4-CLEiVx5s.js +0 -1
- package/studio/web/assets/flowDiagram-UKHOOZJN-CIxxUUxn.js +0 -1
- package/studio/web/assets/getRegistrationInfo--NLLrics.js +0 -1
- package/studio/web/assets/gitGraph-TEB2WS4Q-CZFBqwW-.js +0 -1
- package/studio/web/assets/gitGraphDiagram-DS77QQ5N-DuGnRv2R.js +0 -106
- package/studio/web/assets/html-DmSSmgE8.js +0 -1
- package/studio/web/assets/htmlMode-B2LqJw1z.js +0 -1
- package/studio/web/assets/index-BO3NaEw8.css +0 -1
- package/studio/web/assets/index-BnYZFLIB.css +0 -1
- package/studio/web/assets/index-CqbCnqsT.js +0 -810
- package/studio/web/assets/index.lazy-BNqr3j0f.js +0 -13
- package/studio/web/assets/info-DKCQHKI2--1InqQeT.js +0 -1
- package/studio/web/assets/infoDiagram-6WML65LV-DliK38kp.js +0 -2
- package/studio/web/assets/isArrayLikeObject-BHDnhloL.js +0 -1
- package/studio/web/assets/jsonMode-BVS6P5Xk.js +0 -1
- package/studio/web/assets/languageServices-Bl-BvoAb.js +0 -1
- package/studio/web/assets/line-Bom3IjHi.js +0 -1
- package/studio/web/assets/linear-DwB_ruUT.js +0 -1
- package/studio/web/assets/lspLanguageFeatures-C7XtZA_w.js +0 -4
- package/studio/web/assets/map-BaFkSB1l.js +0 -1
- package/studio/web/assets/math-Bi_r_ZWc.js +0 -1
- package/studio/web/assets/mermaid-parser.core-Dd4RYr9Q.js +0 -4
- package/studio/web/assets/mermaid.core-Bbo24DGo.js +0 -11
- package/studio/web/assets/notifications-Bb2cj14_.js +0 -1
- package/studio/web/assets/notifications-DVlKonbI.js +0 -1
- package/studio/web/assets/packet-7NZHBO7P-BGMXB0XL.js +0 -1
- package/studio/web/assets/path-fybaL0A-.js +0 -1
- package/studio/web/assets/pegDiagram-VL7TDLO6-CWEktcBB.js +0 -1
- package/studio/web/assets/pie-RZYD4A2V-DgYg3tCt.js +0 -1
- package/studio/web/assets/pieDiagram-7S7Q4E2Y-DEAmZOqY.js +0 -39
- package/studio/web/assets/pollUnlessForbidden-DIDXGBc5.js +0 -1
- package/studio/web/assets/profile-BSQWfYfq.js +0 -1
- package/studio/web/assets/purify.es-DrVcFY1Q.js +0 -3
- package/studio/web/assets/queryClient-BLhQvmWC.js +0 -1
- package/studio/web/assets/radar-I7S5WNFK-Ag-zp_Rq.js +0 -1
- package/studio/web/assets/railroad-3IZDKUUU-aibJDIDV.js +0 -1
- package/studio/web/assets/railroad-abnf-AHOZXSZD-BBMEuvIl.js +0 -1
- package/studio/web/assets/railroad-ebnf-EBAXGLYW-Be1nseej.js +0 -1
- package/studio/web/assets/railroad-peg-LSFZ7HO6-DIvD-Eyb.js +0 -1
- package/studio/web/assets/railroadDiagram-AXF67PYL-BJWrgR10.js +0 -1
- package/studio/web/assets/react-VeAY02s6.js +0 -1
- package/studio/web/assets/react-redux-Ds7wf7Ax.js +0 -5
- package/studio/web/assets/regions-Dk3g8bBF.js +0 -1
- package/studio/web/assets/register-3F1Tje_F.js +0 -2
- package/studio/web/assets/register-S_PdXsoi.js +0 -2
- package/studio/web/assets/rolldown-runtime-B0Z9INg1.js +0 -1
- package/studio/web/assets/select-CKgJgpkn.js +0 -1
- package/studio/web/assets/setComponentFile-DoITgNLb.js +0 -1
- package/studio/web/assets/setLocalStorage-CD_L8p_D.js +0 -1
- package/studio/web/assets/setup-CiEALLa7.js +0 -2
- package/studio/web/assets/src-DUvBCJIr.js +0 -1
- package/studio/web/assets/stateDiagram-OKZ733FA-D9oPLTjO.js +0 -1
- package/studio/web/assets/stateDiagram-v2-UEYNNEHI-CSD1wbuZ.js +0 -1
- package/studio/web/assets/status-CK9tD-Nd.js +0 -61
- package/studio/web/assets/string-f6JzSHaO.js +0 -1
- package/studio/web/assets/swagger-ui-react-CxjCDFB-.js +0 -240
- package/studio/web/assets/swimlanes-SLNWSIFB-BpeoNE9k.js +0 -2
- package/studio/web/assets/swimlanesDiagram-ULZ7WXOC-DHxwzxpp.js +0 -8
- package/studio/web/assets/table-BvFflPWi.js +0 -1
- package/studio/web/assets/tabs-Dd_ElZ36.js +0 -1
- package/studio/web/assets/textarea-a3RnTY31.js +0 -9
- package/studio/web/assets/toggleHighContrast-CyNC3SCQ.js +0 -49
- package/studio/web/assets/tokenization-CWuvR2gh.js +0 -7
- package/studio/web/assets/treeView-QDETBFTQ-uHZ-3Fz8.js +0 -1
- package/studio/web/assets/treemap-6X3UGDF4-BnUKyy3l.js +0 -1
- package/studio/web/assets/tsMode-CslzhcVk.js +0 -11
- package/studio/web/assets/typescript-Dtnury3t.js +0 -1
- package/studio/web/assets/useAuth-DiJUZS1C.js +0 -1
- package/studio/web/assets/useEntityRestURL-Cy-0i1UZ.js +0 -1
- package/studio/web/assets/useLocalStorage-DetQlhBe.js +0 -1
- package/studio/web/assets/vendor-datadog-XDrpA25D.js +0 -6
- package/studio/web/assets/vendor-tanstack-FsM5XZNE.js +0 -1
- package/studio/web/assets/wardley-OPB4EBWU-Da7TLC2F.js +0 -1
- package/studio/web/assets/workers-BtibQGyk.js +0 -3
- package/studio/web/assets/x-D39AGKMb.js +0 -1
- package/studio/web/assets/xml-D41zWqPl.js +0 -1
- package/studio/web/assets/yaml-BFQ3mF1U.js +0 -1
- /package/studio/web/assets/{editor-jjEx9u7D.css → register-jjEx9u7D.css} +0 -0
package/bin/restart.ts
CHANGED
|
@@ -6,13 +6,19 @@ import * as hdbTerms from '../utility/hdbTerms.ts';
|
|
|
6
6
|
import hdbLogger from '../utility/logging/harper_logger.ts';
|
|
7
7
|
import * as processMan from '../utility/processManagement/processManagement.js';
|
|
8
8
|
import { compactOnStart } from './copyDb.ts';
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
beginProcessShutdown,
|
|
11
|
+
restartWorkers,
|
|
12
|
+
onMessageByType,
|
|
13
|
+
shutdownWorkersNow,
|
|
14
|
+
} from '../server/threads/manageThreads.js';
|
|
10
15
|
import { handleHDBError, hdbErrors } from '../utility/errors/hdbError.ts';
|
|
11
16
|
const { HTTP_STATUS_CODES } = hdbErrors;
|
|
12
17
|
import * as envMgr from '../utility/environment/environmentManager.ts';
|
|
13
18
|
import * as path from 'node:path';
|
|
14
|
-
import {
|
|
19
|
+
import { rmSync } from 'node:fs';
|
|
15
20
|
import { getThisNodeName } from '../server/nodeName.ts';
|
|
21
|
+
import { armRestartExitWatchdog } from './restartExitWatchdog.ts';
|
|
16
22
|
envMgr.initSync();
|
|
17
23
|
|
|
18
24
|
const RESTART_RESPONSE = `Restarting Harper. This may take up to ${hdbTerms.RESTART_TIMEOUT_MS / 1000} seconds.`;
|
|
@@ -56,30 +62,49 @@ async function restart(req: any) {
|
|
|
56
62
|
if (isMainThread) {
|
|
57
63
|
hdbLogger.notify(RESTART_RESPONSE);
|
|
58
64
|
|
|
59
|
-
if (envMgr.get(hdbTerms.CONFIG_PARAMS.STORAGE_COMPACTONSTART))
|
|
65
|
+
if (envMgr.get(hdbTerms.CONFIG_PARAMS.STORAGE_COMPACTONSTART)) {
|
|
66
|
+
hdbLogger.info('Compacting storage before restart; the restart timeout begins after compaction completes');
|
|
67
|
+
await compactOnStart();
|
|
68
|
+
}
|
|
60
69
|
|
|
61
70
|
setTimeout(async () => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
//
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
|
|
71
|
+
try {
|
|
72
|
+
// Latch before the watchdog handshake, not at shutdownWorkersNow() below: a component's
|
|
73
|
+
// debounced requestRestart() landing in between would otherwise reload root components and
|
|
74
|
+
// pre-start an HTTP replacement into a process that is already exiting.
|
|
75
|
+
beginProcessShutdown();
|
|
76
|
+
// Off Linux the watchdog can never arm, and armRestartExitWatchdog() has already warned.
|
|
77
|
+
if (
|
|
78
|
+
process.env.HARPER_EXIT_ON_RESTART &&
|
|
79
|
+
!(await armRestartExitWatchdog(hdbTerms.RESTART_TIMEOUT_MS)) &&
|
|
80
|
+
process.platform === 'linux'
|
|
81
|
+
)
|
|
82
|
+
hdbLogger.error('Restart exit watchdog is unavailable; restart teardown is unbounded');
|
|
83
|
+
// It seems like you should just be able to start the other process and kill this process and everything should
|
|
84
|
+
// be cleaned up, however that doesn't work for some reason; the socket listening fds somehow get transferred to the
|
|
85
|
+
// child process if they are not explicitly closed. And when transferred they are orphaned listening, accepting
|
|
86
|
+
// connections and hanging. So we need to explicitly close down all the workers and then start the new process
|
|
87
|
+
// and shut down.
|
|
88
|
+
hdbLogger.debug('Shutdown workers');
|
|
89
|
+
await shutdownWorkersNow();
|
|
90
|
+
const { closeServers } = require('../server/threads/threadServer.js');
|
|
91
|
+
await closeServers();
|
|
92
|
+
await processMan.cleanupChildrenProcesses(false);
|
|
93
|
+
// remove pid file so it doesn't trip up the launch
|
|
94
|
+
rmSync(path.join(envMgr.get(hdbTerms.CONFIG_PARAMS.ROOTPATH), hdbTerms.HDB_PID_FILE), { force: true });
|
|
95
|
+
hdbLogger.debug('Starting new process...');
|
|
96
|
+
if (process.env.HARPER_EXIT_ON_RESTART) {
|
|
97
|
+
// use this to exit the process so that it will be restarted by the
|
|
98
|
+
// PM/container/orchestrator.
|
|
99
|
+
hdbLogger.warn('Exiting Harper process to trigger a container restart');
|
|
100
|
+
process.exit(0);
|
|
101
|
+
}
|
|
102
|
+
// now launch the new process and exit this process
|
|
103
|
+
await require('./run').launch(true);
|
|
104
|
+
} catch (error) {
|
|
105
|
+
hdbLogger.fatal('Restart teardown failed; exiting Harper', error);
|
|
106
|
+
process.exit(1);
|
|
80
107
|
}
|
|
81
|
-
// now launch the new process and exit this process
|
|
82
|
-
require('./run').launch(true);
|
|
83
108
|
}, 50); // can't await this because it is going to do an exit(), but wait for 50ms so we give the HTTP thread a
|
|
84
109
|
// chance to return a response
|
|
85
110
|
} else {
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { spawn, type ChildProcess } from 'node:child_process';
|
|
2
|
+
|
|
3
|
+
import hdbLogger from '../utility/logging/harper_logger.ts';
|
|
4
|
+
|
|
5
|
+
// Every way the script below can give up is a silent `exit 0` — an unreadable procfs (a sandbox that
|
|
6
|
+
// does not mount /proc) or a base image without `sleep`. Reporting the watchdog armed in exactly
|
|
7
|
+
// those environments would replace the operator's one signal that teardown is unbounded with a claim
|
|
8
|
+
// that it is not, so arming waits for the script to prove both facilities before it says so.
|
|
9
|
+
export const WATCHDOG_READY_TOKEN = 'harper-restart-exit-watchdog-ready';
|
|
10
|
+
const WATCHDOG_READY_TIMEOUT_MS = 5000;
|
|
11
|
+
|
|
12
|
+
export const WATCHDOG_SCRIPT = `
|
|
13
|
+
parent_pid=$1
|
|
14
|
+
delay_seconds=$2
|
|
15
|
+
[ "$parent_pid" -gt 1 ] || exit 0
|
|
16
|
+
command -v sleep > /dev/null 2>&1 || exit 0
|
|
17
|
+
# Shell PPID variables are snapshots; procfs reflects reparenting after Harper exits.
|
|
18
|
+
read -r _ _ _ current_parent _ < "/proc/$$/stat" || exit 0
|
|
19
|
+
[ "$current_parent" = "$parent_pid" ] || exit 0
|
|
20
|
+
echo "${WATCHDOG_READY_TOKEN}"
|
|
21
|
+
sleep "$delay_seconds" || exit 0
|
|
22
|
+
read -r _ _ _ current_parent _ < "/proc/$$/stat" || exit 0
|
|
23
|
+
[ "$current_parent" = "$parent_pid" ] || exit 0
|
|
24
|
+
echo "harper: restart exit watchdog force-killing pid $parent_pid after $delay_seconds seconds" >&2
|
|
25
|
+
kill -KILL "$parent_pid"
|
|
26
|
+
`;
|
|
27
|
+
|
|
28
|
+
export async function armRestartExitWatchdog(timeoutMs: number) {
|
|
29
|
+
if (process.platform !== 'linux') {
|
|
30
|
+
hdbLogger.warn('Restart exit watchdog is only available on Linux');
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (process.pid <= 1) {
|
|
34
|
+
hdbLogger.warn('Restart exit watchdog requires Harper to run below a container init process');
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
38
|
+
hdbLogger.warn('Restart exit watchdog requires a positive finite timeout');
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
const timeoutSeconds = Math.max(1, Math.ceil(timeoutMs / 1000));
|
|
44
|
+
const watchdogPath = ['/usr/bin', '/bin', process.env.PATH].filter(Boolean).join(':');
|
|
45
|
+
const watchdog = spawn(
|
|
46
|
+
'/bin/sh',
|
|
47
|
+
['-c', WATCHDOG_SCRIPT, 'harper-restart-exit-watchdog', String(process.pid), String(timeoutSeconds)],
|
|
48
|
+
{
|
|
49
|
+
env: { PATH: watchdogPath },
|
|
50
|
+
stdio: ['ignore', 'pipe', 'inherit'],
|
|
51
|
+
windowsHide: true,
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
// Before the pid check: a spawn failure (EMFILE on the very wedged process this bounds) emits
|
|
55
|
+
// 'error' asynchronously, and an unhandled one becomes an uncaughtException mid-teardown.
|
|
56
|
+
watchdog.once('error', (error) => hdbLogger.warn('Restart exit watchdog failed', error));
|
|
57
|
+
if (watchdog.pid === undefined) {
|
|
58
|
+
hdbLogger.warn('Restart exit watchdog failed to start');
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
watchdog.unref();
|
|
62
|
+
|
|
63
|
+
const ready = await waitForWatchdogReady(watchdog);
|
|
64
|
+
// The token is the last thing the script writes to stdout; the force-kill diagnostic goes to the
|
|
65
|
+
// inherited stderr so it survives a wedged Harper event loop.
|
|
66
|
+
watchdog.stdout.destroy();
|
|
67
|
+
if (!ready) {
|
|
68
|
+
watchdog.kill('SIGKILL');
|
|
69
|
+
hdbLogger.warn('Restart exit watchdog could not confirm it was armed');
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
hdbLogger.info(`Restart exit watchdog armed for ${timeoutSeconds} seconds`);
|
|
73
|
+
return true;
|
|
74
|
+
} catch (error) {
|
|
75
|
+
hdbLogger.warn('Restart exit watchdog failed to start', error);
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function waitForWatchdogReady(watchdog: ChildProcess, timeoutMs = WATCHDOG_READY_TIMEOUT_MS) {
|
|
81
|
+
return new Promise<boolean>((resolve) => {
|
|
82
|
+
let settled = false;
|
|
83
|
+
const settle = (value: boolean) => {
|
|
84
|
+
if (settled) return;
|
|
85
|
+
settled = true;
|
|
86
|
+
clearTimeout(readyTimer);
|
|
87
|
+
resolve(value);
|
|
88
|
+
};
|
|
89
|
+
const readyTimer = setTimeout(() => settle(false), timeoutMs);
|
|
90
|
+
readyTimer.unref();
|
|
91
|
+
let output = '';
|
|
92
|
+
watchdog.stdout?.on('data', (chunk) => {
|
|
93
|
+
output += chunk;
|
|
94
|
+
if (output.includes(WATCHDOG_READY_TOKEN)) settle(true);
|
|
95
|
+
});
|
|
96
|
+
watchdog.once('error', () => settle(false));
|
|
97
|
+
watchdog.once('exit', () => settle(false));
|
|
98
|
+
});
|
|
99
|
+
}
|
package/bin/run.ts
CHANGED
|
@@ -23,6 +23,7 @@ import { compactOnStart, migrateOnStart } from './copyDb.ts';
|
|
|
23
23
|
import minimist from 'minimist';
|
|
24
24
|
import * as keys from '../security/keys.ts';
|
|
25
25
|
import { startHTTPThreads } from '../server/threads/socketRouter.ts';
|
|
26
|
+
import { beginProcessShutdown } from '../server/threads/manageThreads.js';
|
|
26
27
|
import * as hdbInfoController from '../dataLayer/hdbInfoController.ts';
|
|
27
28
|
import { isReadOnlyMode } from '../resources/databases.ts';
|
|
28
29
|
import { getThisNodeName } from '../server/nodeName.ts';
|
|
@@ -51,21 +52,25 @@ function addUnhandleRejectionListener() {
|
|
|
51
52
|
function addExitListeners() {
|
|
52
53
|
if (!skipExitListeners) {
|
|
53
54
|
const removeHdbPid = () => {
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
try {
|
|
56
|
+
fs.removeSync(path.join(env.get(terms.CONFIG_PARAMS.ROOTPATH), terms.HDB_PID_FILE));
|
|
57
|
+
} catch (error) {
|
|
58
|
+
hdbLogger.error('Unable to remove the Harper pid file during shutdown', error);
|
|
59
|
+
}
|
|
56
60
|
};
|
|
61
|
+
// Forward defence, not load-bearing today: nothing below can reach a worker start.
|
|
57
62
|
process.on('exit', () => {
|
|
63
|
+
beginProcessShutdown();
|
|
58
64
|
removeHdbPid();
|
|
59
65
|
});
|
|
60
|
-
|
|
66
|
+
const exit = () => {
|
|
67
|
+
beginProcessShutdown();
|
|
61
68
|
removeHdbPid();
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
process.on('SIGTERM',
|
|
67
|
-
removeHdbPid();
|
|
68
|
-
});
|
|
69
|
+
process.exit(0);
|
|
70
|
+
};
|
|
71
|
+
process.on('SIGINT', exit);
|
|
72
|
+
process.on('SIGQUIT', exit);
|
|
73
|
+
process.on('SIGTERM', exit);
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
|
|
@@ -262,6 +267,7 @@ async function launch(exit = true) {
|
|
|
262
267
|
}
|
|
263
268
|
}
|
|
264
269
|
|
|
270
|
+
export { addExitListeners };
|
|
265
271
|
export { launch };
|
|
266
272
|
export { main };
|
|
267
273
|
export { startupLog };
|
package/dist/bin/restart.js
CHANGED
|
@@ -51,6 +51,7 @@ const envMgr = __importStar(require("../utility/environment/environmentManager.j
|
|
|
51
51
|
const path = __importStar(require("node:path"));
|
|
52
52
|
const node_fs_1 = require("node:fs");
|
|
53
53
|
const nodeName_ts_1 = require("../server/nodeName.js");
|
|
54
|
+
const restartExitWatchdog_ts_1 = require("./restartExitWatchdog.js");
|
|
54
55
|
envMgr.initSync();
|
|
55
56
|
const RESTART_RESPONSE = `Restarting Harper. This may take up to ${hdbTerms.RESTART_TIMEOUT_MS / 1000} seconds.`;
|
|
56
57
|
const INVALID_SERVICE_ERR = 'Invalid service';
|
|
@@ -86,30 +87,47 @@ async function restart(req) {
|
|
|
86
87
|
}
|
|
87
88
|
if (worker_threads_1.isMainThread) {
|
|
88
89
|
harper_logger_ts_1.default.notify(RESTART_RESPONSE);
|
|
89
|
-
if (envMgr.get(hdbTerms.CONFIG_PARAMS.STORAGE_COMPACTONSTART))
|
|
90
|
+
if (envMgr.get(hdbTerms.CONFIG_PARAMS.STORAGE_COMPACTONSTART)) {
|
|
91
|
+
harper_logger_ts_1.default.info('Compacting storage before restart; the restart timeout begins after compaction completes');
|
|
90
92
|
await (0, copyDb_ts_1.compactOnStart)();
|
|
93
|
+
}
|
|
91
94
|
setTimeout(async () => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
95
|
+
try {
|
|
96
|
+
// Latch before the watchdog handshake, not at shutdownWorkersNow() below: a component's
|
|
97
|
+
// debounced requestRestart() landing in between would otherwise reload root components and
|
|
98
|
+
// pre-start an HTTP replacement into a process that is already exiting.
|
|
99
|
+
(0, manageThreads_js_1.beginProcessShutdown)();
|
|
100
|
+
// Off Linux the watchdog can never arm, and armRestartExitWatchdog() has already warned.
|
|
101
|
+
if (process.env.HARPER_EXIT_ON_RESTART &&
|
|
102
|
+
!(await (0, restartExitWatchdog_ts_1.armRestartExitWatchdog)(hdbTerms.RESTART_TIMEOUT_MS)) &&
|
|
103
|
+
process.platform === 'linux')
|
|
104
|
+
harper_logger_ts_1.default.error('Restart exit watchdog is unavailable; restart teardown is unbounded');
|
|
105
|
+
// It seems like you should just be able to start the other process and kill this process and everything should
|
|
106
|
+
// be cleaned up, however that doesn't work for some reason; the socket listening fds somehow get transferred to the
|
|
107
|
+
// child process if they are not explicitly closed. And when transferred they are orphaned listening, accepting
|
|
108
|
+
// connections and hanging. So we need to explicitly close down all the workers and then start the new process
|
|
109
|
+
// and shut down.
|
|
110
|
+
harper_logger_ts_1.default.debug('Shutdown workers');
|
|
111
|
+
await (0, manageThreads_js_1.shutdownWorkersNow)();
|
|
112
|
+
const { closeServers } = require('../server/threads/threadServer.js');
|
|
113
|
+
await closeServers();
|
|
114
|
+
await processMan.cleanupChildrenProcesses(false);
|
|
115
|
+
// remove pid file so it doesn't trip up the launch
|
|
116
|
+
(0, node_fs_1.rmSync)(path.join(envMgr.get(hdbTerms.CONFIG_PARAMS.ROOTPATH), hdbTerms.HDB_PID_FILE), { force: true });
|
|
117
|
+
harper_logger_ts_1.default.debug('Starting new process...');
|
|
118
|
+
if (process.env.HARPER_EXIT_ON_RESTART) {
|
|
119
|
+
// use this to exit the process so that it will be restarted by the
|
|
120
|
+
// PM/container/orchestrator.
|
|
121
|
+
harper_logger_ts_1.default.warn('Exiting Harper process to trigger a container restart');
|
|
122
|
+
process.exit(0);
|
|
123
|
+
}
|
|
124
|
+
// now launch the new process and exit this process
|
|
125
|
+
await require('./run').launch(true);
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
harper_logger_ts_1.default.fatal('Restart teardown failed; exiting Harper', error);
|
|
129
|
+
process.exit(1);
|
|
110
130
|
}
|
|
111
|
-
// now launch the new process and exit this process
|
|
112
|
-
require('./run').launch(true);
|
|
113
131
|
}, 50); // can't await this because it is going to do an exit(), but wait for 50ms so we give the HTTP thread a
|
|
114
132
|
// chance to return a response
|
|
115
133
|
}
|
package/dist/bin/restart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restart.js","sourceRoot":"","sources":["../../bin/restart.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"restart.js","sourceRoot":"","sources":["../../bin/restart.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ChildProcess } from 'node:child_process';
|
|
2
|
+
export declare const WATCHDOG_READY_TOKEN = "harper-restart-exit-watchdog-ready";
|
|
3
|
+
export declare const WATCHDOG_SCRIPT = "\nparent_pid=$1\ndelay_seconds=$2\n[ \"$parent_pid\" -gt 1 ] || exit 0\ncommand -v sleep > /dev/null 2>&1 || exit 0\n# Shell PPID variables are snapshots; procfs reflects reparenting after Harper exits.\nread -r _ _ _ current_parent _ < \"/proc/$$/stat\" || exit 0\n[ \"$current_parent\" = \"$parent_pid\" ] || exit 0\necho \"harper-restart-exit-watchdog-ready\"\nsleep \"$delay_seconds\" || exit 0\nread -r _ _ _ current_parent _ < \"/proc/$$/stat\" || exit 0\n[ \"$current_parent\" = \"$parent_pid\" ] || exit 0\necho \"harper: restart exit watchdog force-killing pid $parent_pid after $delay_seconds seconds\" >&2\nkill -KILL \"$parent_pid\"\n";
|
|
4
|
+
export declare function armRestartExitWatchdog(timeoutMs: number): Promise<boolean>;
|
|
5
|
+
export declare function waitForWatchdogReady(watchdog: ChildProcess, timeoutMs?: number): Promise<boolean>;
|
|
@@ -0,0 +1,100 @@
|
|
|
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.WATCHDOG_SCRIPT = exports.WATCHDOG_READY_TOKEN = void 0;
|
|
7
|
+
exports.armRestartExitWatchdog = armRestartExitWatchdog;
|
|
8
|
+
exports.waitForWatchdogReady = waitForWatchdogReady;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const harper_logger_ts_1 = __importDefault(require("../utility/logging/harper_logger.js"));
|
|
11
|
+
// Every way the script below can give up is a silent `exit 0` — an unreadable procfs (a sandbox that
|
|
12
|
+
// does not mount /proc) or a base image without `sleep`. Reporting the watchdog armed in exactly
|
|
13
|
+
// those environments would replace the operator's one signal that teardown is unbounded with a claim
|
|
14
|
+
// that it is not, so arming waits for the script to prove both facilities before it says so.
|
|
15
|
+
exports.WATCHDOG_READY_TOKEN = 'harper-restart-exit-watchdog-ready';
|
|
16
|
+
const WATCHDOG_READY_TIMEOUT_MS = 5000;
|
|
17
|
+
exports.WATCHDOG_SCRIPT = `
|
|
18
|
+
parent_pid=$1
|
|
19
|
+
delay_seconds=$2
|
|
20
|
+
[ "$parent_pid" -gt 1 ] || exit 0
|
|
21
|
+
command -v sleep > /dev/null 2>&1 || exit 0
|
|
22
|
+
# Shell PPID variables are snapshots; procfs reflects reparenting after Harper exits.
|
|
23
|
+
read -r _ _ _ current_parent _ < "/proc/$$/stat" || exit 0
|
|
24
|
+
[ "$current_parent" = "$parent_pid" ] || exit 0
|
|
25
|
+
echo "${exports.WATCHDOG_READY_TOKEN}"
|
|
26
|
+
sleep "$delay_seconds" || exit 0
|
|
27
|
+
read -r _ _ _ current_parent _ < "/proc/$$/stat" || exit 0
|
|
28
|
+
[ "$current_parent" = "$parent_pid" ] || exit 0
|
|
29
|
+
echo "harper: restart exit watchdog force-killing pid $parent_pid after $delay_seconds seconds" >&2
|
|
30
|
+
kill -KILL "$parent_pid"
|
|
31
|
+
`;
|
|
32
|
+
async function armRestartExitWatchdog(timeoutMs) {
|
|
33
|
+
if (process.platform !== 'linux') {
|
|
34
|
+
harper_logger_ts_1.default.warn('Restart exit watchdog is only available on Linux');
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (process.pid <= 1) {
|
|
38
|
+
harper_logger_ts_1.default.warn('Restart exit watchdog requires Harper to run below a container init process');
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
42
|
+
harper_logger_ts_1.default.warn('Restart exit watchdog requires a positive finite timeout');
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const timeoutSeconds = Math.max(1, Math.ceil(timeoutMs / 1000));
|
|
47
|
+
const watchdogPath = ['/usr/bin', '/bin', process.env.PATH].filter(Boolean).join(':');
|
|
48
|
+
const watchdog = (0, node_child_process_1.spawn)('/bin/sh', ['-c', exports.WATCHDOG_SCRIPT, 'harper-restart-exit-watchdog', String(process.pid), String(timeoutSeconds)], {
|
|
49
|
+
env: { PATH: watchdogPath },
|
|
50
|
+
stdio: ['ignore', 'pipe', 'inherit'],
|
|
51
|
+
windowsHide: true,
|
|
52
|
+
});
|
|
53
|
+
// Before the pid check: a spawn failure (EMFILE on the very wedged process this bounds) emits
|
|
54
|
+
// 'error' asynchronously, and an unhandled one becomes an uncaughtException mid-teardown.
|
|
55
|
+
watchdog.once('error', (error) => harper_logger_ts_1.default.warn('Restart exit watchdog failed', error));
|
|
56
|
+
if (watchdog.pid === undefined) {
|
|
57
|
+
harper_logger_ts_1.default.warn('Restart exit watchdog failed to start');
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
watchdog.unref();
|
|
61
|
+
const ready = await waitForWatchdogReady(watchdog);
|
|
62
|
+
// The token is the last thing the script writes to stdout; the force-kill diagnostic goes to the
|
|
63
|
+
// inherited stderr so it survives a wedged Harper event loop.
|
|
64
|
+
watchdog.stdout.destroy();
|
|
65
|
+
if (!ready) {
|
|
66
|
+
watchdog.kill('SIGKILL');
|
|
67
|
+
harper_logger_ts_1.default.warn('Restart exit watchdog could not confirm it was armed');
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
harper_logger_ts_1.default.info(`Restart exit watchdog armed for ${timeoutSeconds} seconds`);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
harper_logger_ts_1.default.warn('Restart exit watchdog failed to start', error);
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function waitForWatchdogReady(watchdog, timeoutMs = WATCHDOG_READY_TIMEOUT_MS) {
|
|
79
|
+
return new Promise((resolve) => {
|
|
80
|
+
let settled = false;
|
|
81
|
+
const settle = (value) => {
|
|
82
|
+
if (settled)
|
|
83
|
+
return;
|
|
84
|
+
settled = true;
|
|
85
|
+
clearTimeout(readyTimer);
|
|
86
|
+
resolve(value);
|
|
87
|
+
};
|
|
88
|
+
const readyTimer = setTimeout(() => settle(false), timeoutMs);
|
|
89
|
+
readyTimer.unref();
|
|
90
|
+
let output = '';
|
|
91
|
+
watchdog.stdout?.on('data', (chunk) => {
|
|
92
|
+
output += chunk;
|
|
93
|
+
if (output.includes(exports.WATCHDOG_READY_TOKEN))
|
|
94
|
+
settle(true);
|
|
95
|
+
});
|
|
96
|
+
watchdog.once('error', () => settle(false));
|
|
97
|
+
watchdog.once('exit', () => settle(false));
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=restartExitWatchdog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restartExitWatchdog.js","sourceRoot":"","sources":["../../bin/restartExitWatchdog.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/run.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import './restart.ts';
|
|
2
|
+
declare function addExitListeners(): void;
|
|
2
3
|
/**
|
|
3
4
|
* Starts Harper DB threads
|
|
4
5
|
* If the hdbBootProps file is not found, it is assumed an install needs to be performed.
|
|
@@ -14,6 +15,7 @@ declare function main(calledByInstall?: boolean): Promise<void>;
|
|
|
14
15
|
* @returns {Promise<void>} // ha ha, it doesn't!
|
|
15
16
|
*/
|
|
16
17
|
declare function launch(exit?: boolean): Promise<void>;
|
|
18
|
+
export { addExitListeners };
|
|
17
19
|
export { launch };
|
|
18
20
|
export { main };
|
|
19
21
|
export { startupLog };
|
package/dist/bin/run.js
CHANGED
|
@@ -36,6 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.addExitListeners = addExitListeners;
|
|
39
40
|
exports.launch = launch;
|
|
40
41
|
exports.main = main;
|
|
41
42
|
exports.startupLog = startupLog;
|
|
@@ -61,6 +62,7 @@ const copyDb_ts_1 = require("./copyDb.js");
|
|
|
61
62
|
const minimist_1 = __importDefault(require("minimist"));
|
|
62
63
|
const keys = __importStar(require("../security/keys.js"));
|
|
63
64
|
const socketRouter_ts_1 = require("../server/threads/socketRouter.js");
|
|
65
|
+
const manageThreads_js_1 = require("../server/threads/manageThreads.js");
|
|
64
66
|
const hdbInfoController = __importStar(require("../dataLayer/hdbInfoController.js"));
|
|
65
67
|
const databases_ts_1 = require("../resources/databases.js");
|
|
66
68
|
const nodeName_ts_1 = require("../server/nodeName.js");
|
|
@@ -84,21 +86,26 @@ function addUnhandleRejectionListener() {
|
|
|
84
86
|
function addExitListeners() {
|
|
85
87
|
if (!skipExitListeners) {
|
|
86
88
|
const removeHdbPid = () => {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
try {
|
|
90
|
+
fs.removeSync(path.join(env.get(terms.CONFIG_PARAMS.ROOTPATH), terms.HDB_PID_FILE));
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
harper_logger_ts_1.default.error('Unable to remove the Harper pid file during shutdown', error);
|
|
94
|
+
}
|
|
89
95
|
};
|
|
96
|
+
// Forward defence, not load-bearing today: nothing below can reach a worker start.
|
|
90
97
|
process.on('exit', () => {
|
|
98
|
+
(0, manageThreads_js_1.beginProcessShutdown)();
|
|
91
99
|
removeHdbPid();
|
|
92
100
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
});
|
|
96
|
-
process.on('SIGQUIT', () => {
|
|
101
|
+
const exit = () => {
|
|
102
|
+
(0, manageThreads_js_1.beginProcessShutdown)();
|
|
97
103
|
removeHdbPid();
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
104
|
+
process.exit(0);
|
|
105
|
+
};
|
|
106
|
+
process.on('SIGINT', exit);
|
|
107
|
+
process.on('SIGQUIT', exit);
|
|
108
|
+
process.on('SIGTERM', exit);
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
111
|
/**
|
package/dist/bin/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../bin/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../bin/run.ts"],"names":[],"mappings":"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"}
|