-
Notifications
You must be signed in to change notification settings - Fork 303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESM custom loader loading code twice #3845
Labels
bug
Something isn't working
Comments
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 ( |
Hi is this still an issue? the fix was applied in this PR: nodejs/import-in-the-middle#44 & was released with this release: https://github.com/DataDog/import-in-the-middle/releases/tag/v1.6.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
The text was updated successfully, but these errors were encountered: