You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
...
[2022-02-23T08:05:13.285Z] node_tests_1 | running test: cd . && node --unhandled-rejections=strict test/sourcemaps/index.test.js > test_output/test-sourcemaps-index.test.js.tap 2&>1
[2022-02-23T08:05:14.225Z] node_tests_1 |
[2022-02-23T08:05:14.225Z] node_tests_1 | TAP version 13
[2022-02-23T08:05:14.225Z] node_tests_1 | # source map inlined
[2022-02-23T08:05:14.225Z] node_tests_1 | ok 1 should be strictly equal
[2022-02-23T08:05:14.225Z] node_tests_1 | ok 2 should be strictly equal
[2022-02-23T08:05:14.225Z] node_tests_1 | not ok 3 should be strictly equal
[2022-02-23T08:05:14.225Z] node_tests_1 | ---
[2022-02-23T08:05:14.225Z] node_tests_1 | operator: equal
[2022-02-23T08:05:14.225Z] node_tests_1 | expected: |-
[2022-02-23T08:05:14.225Z] node_tests_1 | 'generateError (test/sourcemaps/fixtures/src/error.js)'
[2022-02-23T08:05:14.226Z] node_tests_1 | actual: |-
[2022-02-23T08:05:14.226Z] node_tests_1 | 'generateError (test/sourcemaps/fixtures/lib/error-inline.js)'
[2022-02-23T08:05:14.226Z] node_tests_1 | at: assertSourceFound (/app/test/sourcemaps/index.test.js:105:5)
[2022-02-23T08:05:14.226Z] node_tests_1 | stack: |-
[2022-02-23T08:05:14.226Z] node_tests_1 | Error: should be strictly equal
[2022-02-23T08:05:14.226Z] node_tests_1 | at Test.assert [as _assert] (/app/node_modules/tape/lib/test.js:314:54)
[2022-02-23T08:05:14.226Z] node_tests_1 | at Test.bound [as _assert] (/app/node_modules/tape/lib/test.js:99:32)
[2022-02-23T08:05:14.226Z] node_tests_1 | at Test.strictEqual (/app/node_modules/tape/lib/test.js:478:10)
[2022-02-23T08:05:14.226Z] node_tests_1 | at Test.bound [as strictEqual] (/app/node_modules/tape/lib/test.js:99:32)
[2022-02-23T08:05:14.226Z] node_tests_1 | at assertSourceFound (/app/test/sourcemaps/index.test.js:105:5)
[2022-02-23T08:05:14.226Z] node_tests_1 | at Object.sendError (/app/test/sourcemaps/index.test.js:96:7)
[2022-02-23T08:05:14.226Z] node_tests_1 | at filterAndSendError (/app/lib/agent.js:108:639)
[2022-02-23T08:05:14.226Z] node_tests_1 | at finish (/app/lib/errors.js:72:617)
[2022-02-23T08:05:14.226Z] node_tests_1 | at /app/lib/errors.js:66:158
[2022-02-23T08:05:14.226Z] node_tests_1 | at finish (/app/lib/stacktraces.js:89:191)
[2022-02-23T08:05:14.226Z] node_tests_1 | at /app/node_modules/after-all-results/index.js:20:25
[2022-02-23T08:05:14.226Z] node_tests_1 | at processTicksAndRejections (node:internal/process/task_queues:77:11)
[2022-02-23T08:05:14.226Z] node_tests_1 | ...
...
With verbose logging, the issue in the APM agent's usage of the source-map package is this:
[2022-02-28T18:48:02.800Z] DEBUG (elastic-apm-node): could not process file source map
filename: "/Users/trentm/el/apm-agent-nodejs12/test/sourcemaps/fixtures/lib/error-inline.js"
error: {
"type": "Error",
"message":
Error parsing sourcemap for file "/Users/trentm/el/apm-agent-nodejs12/test/sourcemaps/fixtures/lib/error-inline.js":
You must provide the URL of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer,
"stack_trace":
Error: Error parsing sourcemap for file "/Users/trentm/el/apm-agent-nodejs12/test/sourcemaps/fixtures/lib/error-inline.js":
You must provide the URL of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer
at readWasm (/Users/trentm/el/apm-agent-nodejs12/node_modules/source-map/lib/read-wasm.js:8:13)
at wasm (/Users/trentm/el/apm-agent-nodejs12/node_modules/source-map/lib/wasm.js:25:16)
at /Users/trentm/el/apm-agent-nodejs12/node_modules/source-map/lib/source-map-consumer.js:264:14
}
The same issue (broken source-map support) happened with early builds of node v18 when using the --experimental-fetch CLI option. The issue can be worked around in recent node v18 nightly builds by using the --no-experimental-fetch CLI option.
The same issue happens if fetch() is polyfilled, e.g. as Next.js does (according to discussion at GoogleChrome/workbox#2712).
source-map hasn't had a release since May 2018, before mozilla/source-map#349 was fixed. There is a beta release that could be considered:
The node v18.0.0-nightly20220222c071bd581a release from a few days ago started breaking nightly tests (https://apm-ci.elastic.co/job/apm-agent-nodejs/job/apm-agent-nodejs-mbp/job/main/53/):
With verbose logging, the issue in the APM agent's usage of the
source-mappackage is this:This is due to:
if (typeof fetch === "function")to differentiate between browser and node.js environments: if (typeof fetch === "function") misidentifies node environment mozilla/source-map#349fetchby default: lib: enable fetch by default nodejs/node#41811The same issue (broken source-map support) happened with early builds of node v18 when using the
--experimental-fetchCLI option. The issue can be worked around in recent node v18 nightly builds by using the--no-experimental-fetchCLI option.The same issue happens if
fetch()is polyfilled, e.g. as Next.js does (according to discussion at GoogleChrome/workbox#2712).source-maphasn't had a release since May 2018, before mozilla/source-map#349 was fixed. There is a beta release that could be considered: