grpc / grpc-node

gRPC for Node.js
https://grpc.io
Apache License 2.0
4.39k stars 625 forks source link

Error: 14 UNAVAILABLE: TCP Read failed #1432

Open AbhijitGite4Git opened 4 years ago

AbhijitGite4Git commented 4 years ago

Problem description

The problem happens on a regular basis when the client is ideal after connecting to GRPC sever

Reproduction steps

This error occurs randomly after connecting to grpc server when client is ideal for some time

Environment

Additional context

Error: 14 UNAVAILABLE: TCP Read failed at Object.exports.createStatusError (/Users/grpc-service/project/tracker-grpc/node_modules/grpc/src/common.js:91:15) at ClientDuplexStream._emitStatusIfDone (/Users/grpc-service/project/tracker-grpc/node_modules/grpc/src/client.js:233:26) at ClientDuplexStream._receiveStatus (/Users/grpc-service/project/tracker-grpc/node_modules/grpc/src/client.js:211:8) at Object.onReceiveStatus (/Users/grpc-service/project/tracker-grpc/node_modules/grpc/src/client_interceptors.js:1311:15) at InterceptingListener._callNext (/Users/grpc-service/project/tracker-grpc/node_modules/grpc/src/client_interceptors.js:568:42) at InterceptingListener.onReceiveStatus (/Users/grpc-service/project/tracker-grpc/node_modules/grpc/src/client_interceptors.js:618:8) at /Users/grpc-service/project/tracker-grpc/node_modules/grpc/src/client_interceptors.js:1127:18 { code: 14, metadata: Metadata { _internal_repr: {}, flags: 0 }, details: 'TCP Read failed' }

ming2020 commented 4 years ago

Try reducing grpc to 1.22.2

fooSynaptic commented 3 years ago

same issue after 23days running on production env .

vKolerts commented 3 years ago

same issue I0216 13:16:00.001467594 37 tcp_custom.cc:287] TCP 0x55a64b1317a0 shutdown why={"created":"@1613481360.001345575","description":"Delayed close due to in-progress write","file":"../deps/grpc/src/core/ext/transport/chttp2/transport/chttp2_transport.cc","file_line":592,"referenced_errors":[{"created":"@1613481360.001334133","description":"Endpoint read failed","file":"../deps/grpc/src/core/ext/transport/chttp2/transport/chttp2_transport.cc","file_line":2558,"occurred_during_write":2,"referenced_errors":[{"created":"@1613481360.001277556","description":"TCP Read failed","file":"../deps/grpc/src/core/lib/iomgr/tcp_uv.cc","file_line":72,"grpc_status":14,"os_error":"connection reset by peer"}]},{"created":"@1613481360.001405648","description":"TCP Write failed","file":"../deps/grpc/src/core/lib/iomgr/tcp_uv.cc","file_line":72,"grpc_status":14,"os_error":"broken pipe"}]}

vKolerts commented 3 years ago

I found solution at http://www.longfan.me/post/devops/2020-07-09 I add at nestjs ClientOptions

  options: {
   keepalive: {
      keepaliveTimeMs: 900,
      keepalivePermitWithoutCalls: 1,
      http2MaxPingsWithoutData: 0,
    },
   ...

and it solve this issue