Dmitry S
526a5df157
(core) Manage memory used for websocket responses to reduce the risk of server crashes.
...
Summary:
- Implements MemoryPool for waiting on memory reservations.
- Uses MemoryPool to control memory used for stringifying JSON responses in Client.ts
- Limits total size of _missedMessages that may be queued for a particular client.
- Upgrades ws library, which may reduce memory usage, and allows pausing the websocket for testing.
- The upgrade changed subtle behavior corners, requiring various fixes to code and tests.
- dos.ts:
- Includes Paul's fixes and updates to the dos.ts script for manual stress-testing.
- Logging tweaks, to avoid excessive dumps on uncaughtError, and include timestamps.
Test Plan:
- Includes a test that measures heap size, and fails without memory management.
- Includes a unittest for MemoryPool
- Some cleanup and additions to TestServer helper; in particular adds makeUserApi() helper used in multiple tests.
- Some fixes related to ws upgrade.
Reviewers: paulfitz
Reviewed By: paulfitz
Differential Revision: https://phab.getgrist.com/D3974
2023-08-07 11:28:31 -04:00
..
2022-07-19 11:55:18 -04:00
2021-03-19 18:20:33 -04:00
2023-07-01 21:07:39 -04:00
2023-05-23 15:17:28 -04:00
2023-07-31 16:10:59 -04:00
2023-07-12 15:57:02 +02:00
2023-07-31 16:10:59 -04:00
2022-12-21 11:41:31 -05:00
2023-08-04 01:31:31 -07:00
2023-06-07 12:00:51 -04:00
2022-07-04 10:42:40 -04:00
2020-07-21 20:39:10 -04:00
2023-08-07 11:28:31 -04:00
2023-08-07 11:28:31 -04:00
2023-07-10 06:24:55 -04:00
2023-03-01 17:02:47 -05:00
2022-05-18 20:28:25 +02:00
2023-07-18 11:46:10 +02:00
2022-07-14 12:00:30 -04:00
2023-04-12 13:00:53 -04:00
2020-07-21 20:39:10 -04:00
2022-07-19 11:55:18 -04:00
2023-01-26 09:47:14 +01:00
2023-05-12 11:38:29 -04:00
2023-07-11 05:52:06 -04:00
2022-07-29 11:19:26 -04:00
2020-07-21 20:39:10 -04:00
2022-02-19 09:46:49 +00:00
2023-07-10 13:24:08 +02:00
2022-08-15 13:04:55 -07:00
2023-05-08 10:39:01 +02:00
2022-02-19 09:46:49 +00:00
2023-07-26 21:49:52 +02:00
2023-07-26 21:49:52 +02:00
2023-05-02 10:28:14 -04:00
2023-07-26 21:49:52 +02:00
2023-06-01 12:06:48 -04:00
2022-07-04 10:42:40 -04:00
2022-09-02 15:34:21 -04:00
2020-07-21 20:39:10 -04:00
2021-04-29 08:56:54 -04:00
2023-07-13 02:44:46 -04:00
2022-06-15 13:06:12 -04:00
2022-07-04 10:42:40 -04:00
2023-06-01 12:06:48 -04:00
2022-12-01 12:23:19 +01:00
2023-05-23 15:17:28 -04:00
2023-07-04 17:36:59 -04:00
2022-07-04 10:42:40 -04:00
2023-07-31 16:10:59 -04:00
2022-05-12 14:43:21 +02:00
2023-07-04 17:36:59 -04:00
2020-09-18 16:31:29 -04:00
2022-07-04 10:42:40 -04:00
2023-02-20 22:46:36 -05:00
2022-06-17 21:53:20 +02:00
2022-08-23 10:30:52 -07:00
2020-10-30 13:52:46 -04:00
2023-07-13 02:44:46 -04:00
2022-07-14 12:00:30 -04:00
2023-02-20 22:46:36 -05:00
2020-07-23 11:29:05 -04:00
2023-05-15 11:56:15 -04:00
2022-06-27 16:10:10 -04:00
2022-07-04 10:42:40 -04:00
2022-07-29 11:19:26 -04:00
2023-08-07 11:28:31 -04:00
2023-08-07 11:28:31 -04:00
2023-04-03 13:29:35 -04:00
2022-07-04 10:42:40 -04:00
2020-07-21 20:39:10 -04:00
2023-08-07 11:28:31 -04:00
2023-02-13 15:52:17 -05:00
2023-07-20 06:16:58 -04:00
2023-08-05 11:24:01 -04:00
2023-05-23 15:50:15 -04:00
2023-05-08 18:25:27 -04:00
2022-07-04 10:42:40 -04:00
2022-04-01 15:24:19 -07:00
2023-02-13 15:52:17 -05:00
2022-07-04 10:42:40 -04:00
2022-07-04 10:42:40 -04:00
2023-06-07 12:00:51 -04:00
2023-05-17 10:21:53 -04:00
2022-07-04 10:42:40 -04:00
2023-07-30 15:13:43 -04:00
2023-07-04 17:36:59 -04:00
2022-12-22 09:10:30 -05:00
2022-09-02 16:27:34 +02:00
2022-07-04 10:42:40 -04:00
2022-07-04 10:42:40 -04:00
2023-07-18 11:21:25 -04:00
2023-07-31 16:10:59 -04:00
2023-07-26 21:49:52 +02:00
2022-06-07 15:47:17 -04:00
2023-06-07 12:00:51 -04:00
2022-06-07 15:47:17 -04:00
2023-04-12 13:00:53 -04:00
2020-07-21 20:39:10 -04:00
2023-05-23 15:17:28 -04:00
2023-05-23 15:17:28 -04:00
2023-05-23 15:17:28 -04:00
2023-05-23 15:17:28 -04:00
2021-10-01 10:18:56 -04:00
2020-07-21 20:39:10 -04:00
2023-07-20 12:50:26 -04:00
2023-08-07 11:28:31 -04:00
2022-10-14 14:23:59 -04:00
2022-08-25 12:38:36 -07:00
2023-05-08 18:25:27 -04:00
2023-07-26 11:36:24 +02:00
2022-07-04 10:42:40 -04:00
2022-09-20 15:26:04 -04:00
2023-01-09 23:31:04 -05:00
2023-05-23 15:17:28 -04:00
2023-07-26 21:49:52 +02:00