Skip to content

Commit

Permalink
Bump node.js from v14.21.3 to v18.15.0
Browse files Browse the repository at this point in the history
Revert "add node fiber to improve performance (opensearch-project#2319)"
Revert "[CVE-2022-25758] Use dart-sass instead of node-sass (opensearch-project#2054)"
Revert back to use node-sass and bump to 8.0.0
Change lmdb-store to lmdb
Bump node.js to 18 and fix errors

Issue Resolved:
opensearch-project#3601

Signed-off-by: Anan Zhuang <ananzh@amazon.com>

Fix async unit test timeout issue

Signed-off-by: Anan Zhuang <ananzh@amazon.com>

[Nodejs 18] fix lmdb and plugins discovery unit tests

Signed-off-by: Anan Zhuang <ananzh@amazon.com>

Fix windows path

Signed-off-by: Anan Zhuang <ananzh@amazon.com>

Increase memory limit for unit test and fix memory leak

Signed-off-by: Anan Zhuang <ananzh@amazon.com>
  • Loading branch information
ananzh committed Mar 21, 2023
1 parent de06344 commit a7bc085
Show file tree
Hide file tree
Showing 40 changed files with 995 additions and 246 deletions.
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
14.21.3
18.15.0
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
14.21.3
18.15.0
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ARG NODE_VERSION=14.20.1
ARG NODE_VERSION=18.15.0
FROM node:${NODE_VERSION} AS base

ENV HOME '.'
Expand Down
1 change: 1 addition & 0 deletions config/node.options
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@

## max size of old space in megabytes
#--max-old-space-size=4096
--openssl-legacy-provider
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"test:jest": "scripts/use_node scripts/jest",
"test:jest:coverage": "scripts/use_node scripts/jest --coverage",
"test:jest:ci": "scripts/use_node scripts/jest --ci --colors --runInBand",
"test:jest:ci:coverage": "scripts/use_node scripts/jest --ci --colors --runInBand --coverage",
"test:jest:ci:coverage": "scripts/use_node scripts/jest --ci --colors --runInBand --coverage --max-old-space-size=5120",
"test:jest_integration": "scripts/use_node scripts/jest_integration",
"test:jest_integration:ci": "scripts/use_node scripts/jest_integration --ci --colors --max-old-space-size=5120",
"test:mocha": "scripts/use_node scripts/mocha",
Expand Down Expand Up @@ -81,7 +81,7 @@
"url": "https://github.com/opensearch-project/opensearch-dashboards.git"
},
"resolutions": {
"**/@types/node": "^14.17.32",
"**/@types/node": "18.11.18",
"**/ansi-regex": "^5.0.1",
"**/async": "^3.2.3",
"**/d3-color": "^3.1.0",
Expand Down Expand Up @@ -165,7 +165,7 @@
"deep-freeze-strict": "^1.1.1",
"del": "^6.1.1",
"dns-sync": "^0.2.1",
"elastic-apm-node": "^3.7.0",
"elastic-apm-node": "^3.43.0",
"elasticsearch": "^16.7.0",
"http-aws-es": "6.0.0",
"execa": "^4.0.2",
Expand Down Expand Up @@ -300,7 +300,7 @@
"@types/mock-fs": "^4.10.0",
"@types/moment-timezone": "^0.5.12",
"@types/mustache": "^0.8.31",
"@types/node": "^14.17.32",
"@types/node": "18.11.18",
"@types/node-forge": "^1.0.1",
"@types/normalize-path": "^3.0.0",
"@types/pegjs": "^0.10.1",
Expand Down Expand Up @@ -467,7 +467,7 @@
"zlib": "^1.0.5"
},
"engines": {
"node": "^14.20.1",
"node": "^18.15.0",
"yarn": "^1.22.10"
}
}
2 changes: 1 addition & 1 deletion packages/osd-ace/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@
"@osd/babel-preset": "1.0.0",
"raw-loader": "^4.0.2",
"typescript": "4.0.2",
"webpack": "^4.41.5"
"webpack": "npm:@amoo-miki/webpack@4.46.0-rc.2"
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions packages/osd-cross-platform/src/path.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import path from 'path';
import fs from 'fs';
import { access, rmdir, mkdir, writeFile, symlink } from 'fs/promises';
import { access, rm, mkdir, writeFile, symlink } from 'fs/promises';

import {
resolveToFullNameSync,
Expand Down Expand Up @@ -43,9 +43,9 @@ describe('Cross Platform', () => {
try {
// If leftover artifacts were found, get rid of them
await access(tmpTestFolder);
await rmdir(tmpTestFolder, { recursive: true });
await rm(tmpTestFolder, { recursive: true });
} catch (ex) {
// Do nothing; if `rmdir` failed, let the `mkdir` below throw the error
// Do nothing; if `rm` failed, let the `mkdir` below throw the error
}

await mkdir(tmpTestFolder);
Expand All @@ -60,7 +60,7 @@ describe('Cross Platform', () => {

afterAll(async () => {
try {
await rmdir(tmpTestFolder, { recursive: true });
await rm(tmpTestFolder, { recursive: true });
} catch (ex) {
// Do nothing
}
Expand Down
4 changes: 2 additions & 2 deletions packages/osd-dev-utils/src/proc_runner/proc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,15 +153,15 @@ export function startProc(name: string, options: ProcOptions, log: ToolingLog) {
await withTimeout(
async () => {
log.debug(`Sending "${signal}" to proc "${name}"`);
await treeKillAsync(childProcess.pid, signal);
await treeKillAsync(childProcess.pid!, signal);
await outcomePromise;
},
STOP_TIMEOUT,
async () => {
log.warning(
`Proc "${name}" was sent "${signal}" didn't emit the "exit" or "error" events after ${STOP_TIMEOUT} ms, sending SIGKILL`
);
await treeKillAsync(childProcess.pid, 'SIGKILL');
await treeKillAsync(childProcess.pid!, 'SIGKILL');
}
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
"glob-all": "^3.2.1",
"lru-cache": "^4.1.5",
"resolve": "^1.7.1",
"webpack": "^4.41.5"
"webpack": "npm:@amoo-miki/webpack@4.46.0-rc.2"
}
}
4 changes: 2 additions & 2 deletions packages/osd-interpreter/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@
"del": "^6.1.1",
"getopts": "^2.2.5",
"pegjs": "0.10.0",
"sass-loader": "^10.2.0",
"sass-loader": "^10.4.1",
"style-loader": "^1.1.3",
"supports-color": "^7.0.0",
"url-loader": "^2.2.0",
"webpack": "^4.41.5",
"webpack": "npm:@amoo-miki/webpack@4.46.0-rc.2",
"webpack-cli": "^4.9.2"
}
}
3 changes: 2 additions & 1 deletion packages/osd-monaco/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"monaco-editor": "~0.17.0"
},
"devDependencies": {
"@node-rs/xxhash": "^1.3.0",
"@osd/babel-preset": "1.0.0",
"@osd/dev-utils": "1.0.0",
"babel-loader": "^8.2.3",
Expand All @@ -21,7 +22,7 @@
"raw-loader": "^4.0.2",
"supports-color": "^7.0.0",
"typescript": "4.0.2",
"webpack": "^4.41.5",
"webpack": "npm:@amoo-miki/webpack@4.46.0-rc.2",
"webpack-cli": "^4.9.2"
}
}
2 changes: 2 additions & 0 deletions packages/osd-monaco/scripts/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ run(

const cwd = ROOT_DIR;
const env = { ...process.env, dev: !!flags.dev, prod: !flags.dev };
env.NODE_OPTIONS = '--openssl-legacy-provider';

if (supportsColor.stdout) {
env.FORCE_COLOR = 'true';
}
Expand Down
1 change: 1 addition & 0 deletions packages/osd-monaco/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ const createLangWorkerConfig = (lang) => ({
output: {
path: path.resolve(__dirname, 'target/public'),
filename: `${lang}.editor.worker.js`,
hashFunction: 'Xxh64',
},
resolve: {
modules: ['node_modules'],
Expand Down
11 changes: 5 additions & 6 deletions packages/osd-optimizer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,21 @@
"@osd/ui-shared-deps": "1.0.0",
"autoprefixer": "^10.4.1",
"clean-webpack-plugin": "^3.0.0",
"compression-webpack-plugin": "^4.0.0",
"compression-webpack-plugin": "npm:@amoo-miki/compression-webpack-plugin@4.0.1-rc.1",
"cpy": "^8.0.0",
"core-js": "^3.6.5",
"dedent": "^0.7.0",
"del": "^6.1.1",
"execa": "^4.0.2",
"fibers": "^5.0.3",
"jest-diff": "^27.5.1",
"js-yaml": "^3.14.0",
"json-stable-stringify": "^1.0.1",
"lmdb-store": "^1.6.11",
"lmdb": "2.6.9",
"node-sass": "^8.0.0",
"normalize-path": "^3.0.0",
"pirates": "^4.0.1",
"postcss": "^8.4.5",
"rxjs": "^6.5.5",
"sass": "~1.26.11",
"source-map-support": "^0.5.19",
"terser-webpack-plugin": "^2.1.2",
"tinymath": "1.2.1",
Expand All @@ -54,10 +53,10 @@
"loader-utils": "^2.0.4",
"postcss-loader": "^4.2.0",
"raw-loader": "^4.0.2",
"sass-loader": "^10.2.0",
"sass-loader": "^10.4.1",
"style-loader": "^1.1.3",
"url-loader": "^2.2.0",
"val-loader": "^2.1.2",
"webpack": "^4.41.5"
"webpack": "npm:@amoo-miki/webpack@4.46.0-rc.2"
}
}

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions packages/osd-optimizer/src/node/cache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import Path from 'path';
import { Writable } from 'stream';

import chalk from 'chalk';
import * as LmdbStore from 'lmdb-store';
import * as LmdbStore from 'lmdb';
import { getMatchingRoot } from '@osd/cross-platform';

const GLOBAL_ATIME = `${Date.now()}`;
Expand Down Expand Up @@ -96,8 +96,8 @@ export class Cache {
// keys which haven't been used in 30 days. We use `unref()` to
// make sure this timer doesn't hold other processes open
// unexpectedly
this.timer = setTimeout(() => {
this.pruneOldKeys();
this.timer = setTimeout(async () => {
await this.pruneOldKeys();
}, 30 * MINUTE);

// timer.unref is not defined in jest which emulates the dom by default
Expand Down Expand Up @@ -134,12 +134,13 @@ export class Cache {
async update(path: string, file: { mtime: string; code: string; map: any }) {
const key = this.getKey(path);

await Promise.all([
this.safePut(this.atimes, key, GLOBAL_ATIME),
this.safePut(this.mtimes, key, file.mtime),
this.safePut(this.codes, key, file.code),
this.safePut(this.sourceMaps, key, JSON.stringify(file.map)),
]);
this.safePut(this.atimes, key, GLOBAL_ATIME);
this.safePut(this.mtimes, key, file.mtime);
this.safePut(this.codes, key, file.code);

if (file.map != null) {
this.safePut(this.sourceMaps, key, JSON.stringify(file.map));
}
}

close() {
Expand Down Expand Up @@ -172,9 +173,9 @@ export class Cache {
}
}

private async safePut<V>(db: LmdbStore.Database<V, string>, key: string, value: V) {
private safePut<V>(db: LmdbStore.Database<V, string>, key: string, value: V) {
try {
await db.put(key, value);
db.putSync(key, value);
this.debug('PUT', db, key);
} catch (error) {
this.logError('PUT', db, key, error);
Expand Down Expand Up @@ -204,7 +205,6 @@ export class Cache {
const validKeys: string[] = [];
const invalidKeys: string[] = [];

// @ts-expect-error See https://github.com/DoctorEvidence/lmdb-store/pull/18
for (const { key, value } of this.atimes.getRange()) {
const atime = parseInt(`${value}`, 10);
if (Number.isNaN(atime) || atime < ATIME_LIMIT) {
Expand Down
1 change: 1 addition & 0 deletions packages/osd-optimizer/src/optimizer/observe_worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ function usingWorkerProc<T>(
? [`${inspectFlag}=${inspectPortCounter++}`]
: []),
...(config.maxWorkerCount <= 3 ? ['--max-old-space-size=2048'] : []),
'--openssl-legacy-provider',
],
buffer: false,
stderr: 'pipe',
Expand Down
Loading

0 comments on commit a7bc085

Please sign in to comment.