Page MenuHomePhabricator

[keyserver] Ignore promise rejections from websocket message handler
ClosedPublic

Authored by ashoat on Dec 4 2023, 1:21 PM.
Tags
None
Referenced Files
Unknown Object (File)
Nov 22 2024, 1:10 PM
Unknown Object (File)
Nov 22 2024, 7:52 AM
Unknown Object (File)
Nov 22 2024, 2:15 AM
Unknown Object (File)
Nov 8 2024, 3:04 AM
Unknown Object (File)
Nov 7 2024, 5:09 AM
Unknown Object (File)
Nov 4 2024, 6:18 PM
Unknown Object (File)
Nov 2 2024, 2:17 AM
Unknown Object (File)
Oct 16 2024, 2:35 AM
Subscribers

Details

Summary

The unused-promise Lint identified an issue here. onMessage can reject, in which case it doesn't appear to be handled.

To make sure it wasn't handled, I investigated how the redis library handles it. Internally that library extends Node's built-in EventEmitter, and that library explains how it handles things here. Since captureRejections: true is not set by the redis library, that means promise rejections will crash keyserver.

To avoid that, in this diff I wrap the call with ignorePromiseRejections. The conditional is necessary because onMessageCallback returns void | Promise<void>.

Depends on D10182

Test Plan

Flow

Diff Detail

Repository
rCOMM Comm
Lint
No Lint Coverage
Unit
No Test Coverage