gristlabs_grist-core/app/client/models
Paul Fitzpatrick cf23a2d1ee (core) add GVISOR_LIMIT_MEMORY to cap memory available in sandbox
Summary:
This allows limiting the memory available to documents in the sandbox when gvisor is used. If memory limit is exceeded, we offer to open doc in recovery mode. Recovery mode is tweaked to open docs with tables in "ondemand" mode, which will generally take less memory and allow for deleting rows.

The limit is on the size of the virtual address space available to the sandbox (`RLIMIT_AS`), which in practice appears to function as one would want, and is the only practical option. There is a documented `RLIMIT_RSS` limit to `specifies the limit (in bytes) of the process's resident set (the number of virtual pages resident in RAM)` but this is no longer enforced by the kernel (neither the host nor gvisor).

When the sandbox runs out of memory, there are many ways it can fail. This diff catches all the ones I saw, but there could be more.

Test Plan: added tests

Reviewers: alexmojaki

Reviewed By: alexmojaki

Subscribers: alexmojaki

Differential Revision: https://phab.getgrist.com/D3398
2022-05-18 14:26:27 -04:00
..
entities (core) Raw renames 2022-04-27 22:21:55 +02:00
AppModel.ts (core) Record new user sign-ups 2022-03-12 14:34:46 -08:00
BaseRowModel.js (core) Update ACL resources/rules when tables/columns get renamed 2021-01-04 22:03:01 -05:00
BillingModel.ts (core) Migrate to Stripe v8 + implement discount codes 2021-10-20 12:34:03 -07:00
ClientColumnGetters.ts (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
ColumnACIndexes.ts (core) Use visibleCol instead of displayCol with createFormatter 2021-12-16 22:19:36 +02:00
ColumnCache.ts (core) Show count of formula errors in the column config in the right-side panel. 2021-04-20 21:26:17 -04:00
ColumnFilter.ts (core) Makes filter counts take other column filters into account 2021-06-23 09:01:41 +02:00
ColumnFilterMenuModel.ts (core) Makes filter counts take other column filters into account 2021-06-23 09:01:41 +02:00
ColumnToMap.ts (core) Custom Widget column mapping feature. 2022-02-08 17:41:04 +01:00
ConnectState.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DataRowModel.ts (core) Fix JS error when scrolling with a column of hyperlinks, and use stricter types. 2021-05-12 17:31:56 -04:00
DataTableModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
DataTableModelWithDiff.ts (core) Restoring context menu when comparing documents 2022-04-26 21:31:36 +02:00
DocData.ts (core) Wait for transform column before finalizing 2022-03-01 13:59:14 -08:00
DocModel.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
DocPageModel.ts (core) add GVISOR_LIMIT_MEMORY to cap memory available in sandbox 2022-05-18 14:26:27 -04:00
errors.ts (core) Improve debug logging related for client-side errors and sandbox crashes. 2022-04-11 17:54:40 -04:00
gristConfigCache.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
gristUrlState.ts (core) Include hash/fragment in post-login redirect URLs 2022-04-13 09:16:29 -07:00
HomeModel.ts (core) Removing error styles from user messages 2021-10-07 17:20:52 +02:00
MetaRowModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
MetaTableModel.js (core) Raw renames 2022-04-27 22:21:55 +02:00
modelUtil.js (core) move client code to core 2020-10-02 13:24:21 -04:00
NotifyModel.ts (core) Error message on Duplicate Document 2021-11-09 19:12:57 +01:00
QuerySet.ts (core) Add other direction of linking by reflist 2021-08-30 17:39:15 +02:00
rowset.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
rowuid.js (core) move client code to core 2020-10-02 13:24:21 -04:00
SearchModel.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
SectionFilter.ts (core) Allow filtering hidden columns 2021-11-22 10:26:08 -08:00
Styles.ts (core) Adding font options to the style picker 2022-04-07 20:35:03 +02:00
TableData.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
TableModel.js (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
TreeModel.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
UserManagerModel.ts (core) allow non-owners to remove themselves from sites/workspaces/docs 2022-04-13 10:04:32 -04:00
UserPrefs.ts (core) Fix bugs when both welcomeTour and docTour are available 2022-03-22 16:51:05 -04:00
WorkspaceInfo.ts (core) move client code to core 2020-10-02 13:24:21 -04:00