socketio / socket.io

Realtime application framework (Node.JS server)
https://socket.io
MIT License
61.2k stars 10.11k forks source link

Upgrade 6.5.2 but the error of uWebsocket aborted write failed still appear #5069

Closed dangerous1990 closed 3 weeks ago

dangerous1990 commented 11 months ago

Describe the bug

https://github.com/socketio/engine.io/commit/3144d274584ae3b96cca4e609c66c56d534f1715 This is commit has fixed the bug, but some times will still appear.

image

To Reproduce There is no reproduce path , in my production env has appeared 2~3 times per month.

Please fill the following code example: the server code

const app = App();
  const io = new Server({
    path: cfg['path'],
    cors: { origin: cfg['origin'] || '*' },
    pingTimeout: cfg['pingtimeout'] || 25000,
    pingInterval: cfg['pinginterval'] || 20000
  });
  io.attachApp(app);

Engine.IO server version: 6.5.2

engine.io@~6.5.2:
  version "6.5.3"
  resolved "https://registry.npmmirror.com/engine.io/-/engine.io-6.5.3.tgz"
  integrity sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==
  dependencies:
    "@types/cookie" "^0.4.1"
    "@types/cors" "^2.8.12"
    "@types/node" ">=10.0.0"
    accepts "~1.3.4"
    base64id "2.0.0"
    cookie "~0.4.1"
    cors "~2.8.5"
    debug "~4.3.1"
    engine.io-parser "~5.2.1"
    ws "~8.11.0"

uwebsocket version

uWebSockets.js@uNetworking/uWebSockets.js#v20.31.0:
  version "20.31.0"
  resolved "https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/809b99d2d7d12e2cbf89b7135041e9b41ff84084"
  integrity sha512-7+v4bdbU346UF5h8yP0f9SpP1kvMMRSzBqlgOpKylznFV0360HqNlcYglZcLyPWeXXQpbJFnt2CegiWyDXrJsA==
dangerous1990 commented 11 months ago

This is error will terminate process. if it can not resolve , there is another way to catch the error avoid the process terminate?

darrachequesne commented 3 weeks ago

For future readers:

This should be fixed by https://github.com/socketio/socket.io/commit/d5095fe98c3976673c19f433c0114d06dbd8de1b, included in engine.io@6.6.1 and socket.io@4.8.0.