Open mgagliardo91 opened 11 months ago
For now, we will pin our docker node version to v18.18.0; however, we hope to resolve this without leaving the pin in place.
Same issue. Pinning to 18.18 (node:18.18-alpine
) solves the issue temporarily as outlined by @mgagliardo91
Hi is this still an issue?
the fix was applied in this PR: https://github.com/DataDog/import-in-the-middle/pull/44
& was released with this release: https://github.com/DataDog/import-in-the-middle/releases/tag/v1.6.0
With the recent release of Node v18.19.0, the dd-trace-js custom ESM loader is loading our application twice, causing it to fail with a port already bound error (this is an express application).
It appears the the v18.19.0 release added some breaking changes that would alter the way the dd-trace-js loader hook works. They indicate that v20 moves loaders to their own thread, which sounds like the culprit, but I'm unsure why that would affect v18. See
I have tried to switch to use the
--import
syntax, as outlined here, however, this still results in duplicate loading.I am unsure whether this is a bug with Node v18.19.0, or if the breaking change is in fact correct and dd-trace-js loader hook needs to be updated to reflect the changes.
Expected behaviour Loading dd-trace-js using the custom ESM loader
node --loader=dd-trace/loader-hook.mjs
properly starts our application, once.Actual behaviour Custom loader loads our application twice, which triggers a port conflict given that its trying to start two threads of the same application.
Steps to reproduce
Environment