Skip to content
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

Error: write EPIPE #3866

Open
dor6-deepcred opened this issue Dec 12, 2023 · 5 comments
Open

Error: write EPIPE #3866

dor6-deepcred opened this issue Dec 12, 2023 · 5 comments
Labels
bug Something isn't working integration-http

Comments

@dor6-deepcred
Copy link

Expected behaviour
no error to be thrown

Actual behaviour
sometimes an uncaught exception is thrown:

Error: write EPIPE
    at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:94:16)
    at WriteWrap.callbackTrampoline (node:internal/async_hooks:130:17)

this is very annoying because it causes the process to die and i cannot catch it because i have no way to check it was emitted by the library

here is an image of the error that is being printed to the console when I do not catch it:
image
you can see the error originated in datadog-instrumentations/src/net

Steps to reproduce
have trace for long running tasks

Environment
PROD

  • Operation system:
    debian
  • Node.js version:
    20.10.0
  • Tracer version:
    4.20
  • Agent version:
    7 (lodatadog-3.38.4)
@dor6-deepcred dor6-deepcred added the bug Something isn't working label Dec 12, 2023
@dor6-deepcred
Copy link
Author

UPDATE:
after upgrading to 4.21
we don't get this error anymore we get a new error:

RangeError: Maximum call stack size exceeded
    at Socket.setStreamTimeout [as setTimeout] (node:internal/stream_base_commons:237:26)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/app/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)

@samwho
Copy link

samwho commented Dec 18, 2023

We're also seeing this error:

RangeError: Maximum call stack size exceeded
    at Readable.removeListener (node:internal/streams/readable:957:45)
    at Socket.setStreamTimeout [as setTimeout] (node:internal/stream_base_commons:253:12)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)
    at socket.setTimeout (/datadog-lib/node_modules/dd-trace/packages/datadog-instrumentations/src/http/client.js:90:41)

We started seeing it out of the blue recently. We were on dd-trace 3.13.2 and updated to 4.20.0 to see if that made the errors go away. Happy to provide any extra debugging information you might need 🙏

@dor6-deepcred
Copy link
Author

i want to update that i also get the error:

Error: write EPIPE 

unlike what i thought at first although less frequent.

you should really add some ability to catch the tracer errors so we can ignore them.
currently ignoring them is ignoring all uncaught exceptions

@dor6-deepcred
Copy link
Author

UPDATE:
after upgrading to 4.22
we don't get the RangeError: Maximum call stack size exceeded anymore but we still get the Error: write EPIPE

can you please add a feature to capture tracer errors?

@yoni-amikam
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working integration-http
Projects
None yet
Development

No branches or pull requests

4 participants