Description
Version
17.5
Platform
Linux aras-Lenovo-Legion-5-17ARH05H 5.13.0-21-generic #21-Ubuntu SMP Tue Oct 19 08:59:28 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
No response
What steps will reproduce the bug?
We maintain the mongoose-project. Devs reported that node 17.5 is throwing a TypeError when using the package.
I tested it with node 17.5 and run the unit tests, and could reproduce the Error. When I test with node 17.4, there is no TypeError.
I checked the Changelog and there is no remark regarding a breaking change, nor does the changes implicate a breaking change in nodes behaviour.
So I assume that there is a Regression in node 17.5.
Maybe something with the attribute "map" is special?
Also is reported that adding "engines": { "node": ">=12.0.0 <17.5.0" }, to package.json fixes the issue.
Is there some nodejs quirk mode? Do we have to change something in our codebase to not raise this Error?
Just checkout mongoose-project, install dependencies, and run the tests under node 17.5
See also:
Automattic/mongoose#11377
How often does it reproduce? Is there a required condition?
Happens always.
What is the expected behavior?
Should not throw a TypeError like it did not throw in node <= 17.4 and unit tests should pass as usual.
What do you see instead?
When running the tests we get:
TypeError: Cannot assign to read only property 'map' of object '#<QueryCursor>'
at Object.<anonymous> (/home/aras/Workspace/mongoose/lib/cursor/QueryCursor.js:144:27)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/aras/Workspace/mongoose/lib/query.js:12:21)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/aras/Workspace/mongoose/lib/index.js:18:15)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/aras/Workspace/mongoose/index.js:9:18)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/aras/Workspace/mongoose/test/common.js:7:18)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/aras/Workspace/mongoose/test/aggregate.test.js:7:15)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:168:29)
at ModuleJob.run (node:internal/modules/esm/module_job:197:25)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:337:24)
at async importModuleDynamicallyWrapper (node:internal/vm/module:437:15)
at async formattedImport (/home/aras/Workspace/mongoose/node_modules/mocha/lib/nodejs/esm-utils.js:7:14)
at async Object.exports.requireOrImport (/home/aras/Workspace/mongoose/node_modules/mocha/lib/nodejs/esm-utils.js:48:32)
at async Object.exports.loadFilesAsync (/home/aras/Workspace/mongoose/node_modules/mocha/lib/nodejs/esm-utils.js:103:20)
at async singleRun (/home/aras/Workspace/mongoose/node_modules/mocha/lib/cli/run-helpers.js:125:3)
at async Object.exports.handler (/home/aras/Workspace/mongoose/node_modules/mocha/lib/cli/run.js:374:5)
Additional information
No response