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
F3342867: D10183.diff
Fri, Nov 22, 2:15 AM
Unknown Object (File)
Fri, Nov 8, 3:04 AM
Unknown Object (File)
Thu, Nov 7, 5:09 AM
Unknown Object (File)
Mon, Nov 4, 6:18 PM
Unknown Object (File)
Sat, Nov 2, 2:17 AM
Unknown Object (File)
Oct 16 2024, 2:35 AM
Unknown Object (File)
Oct 16 2024, 2:35 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
Lint Not Applicable
Unit
Tests Not Applicable