gristlabs_grist-core/app/client/ui
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
..
AccountPage.ts (core) Migrate to SRP and add change password dialog 2022-03-16 21:35:06 -07:00
AccountWidget.ts (core) allow non-owners to remove themselves from sites/workspaces/docs 2022-04-13 10:04:32 -04:00
AddNewButton.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
ApiKey.ts (core) Hide API key when it's not selected 2022-02-21 17:26:45 -08:00
App.css (core) Cleanup removing some old unused files, fixing logo.css, and removing #grist-app. 2020-10-09 17:04:09 -04:00
App.ts (core) add GVISOR_LIMIT_MEMORY to cap memory available in sandbox 2022-05-18 14:26:27 -04:00
AppHeader.ts (core) Add config to include custom CSS 2022-05-12 11:13:52 -07:00
AppUI.ts (core) add GVISOR_LIMIT_MEMORY to cap memory available in sandbox 2022-05-18 14:26:27 -04:00
BillingForm.ts (core) Add some polish to the billing page, particularly for sign-up. 2021-11-04 14:23:53 -04:00
BillingPage.ts (core) add users.options.isConsultant flag, and omit such users from billing 2022-04-11 10:26:31 -04:00
BillingPageCss.ts (core) add a way to change subdomain in billing pages 2021-08-19 21:22:41 -04:00
BillingPlanManagers.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
BottomBar.ts (core) Making side bars a bit more usable for narrow screen 2021-01-19 15:22:01 +01:00
buttons.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
CellContextMenu.ts (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
CodeHighlight.ts (core) Update UI for formula and column label/id in the right-side panel. 2021-03-17 01:35:56 -04:00
ColumnFilterMenu.ts (core) Allow filtering by selected cell value in cell context menu 2022-04-19 11:51:47 +02:00
contextMenu.ts (core) Show default context menu on link 2022-02-18 10:09:36 +01:00
CustomSectionConfig.ts (core) Custom Widget column mapping feature. 2022-02-08 17:41:04 +01:00
CustomThemes.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DocHistory.ts (core) Fix JS error when switching from DocHistory to ActionLog too quickly. 2020-12-11 14:33:29 -05:00
DocMenu.ts (core) allow non-owners to remove themselves from sites/workspaces/docs 2022-04-13 10:04:32 -04:00
DocMenuCss.ts (core) List 'Other Sites' all one line; fix style ordering issue for sort button. 2022-04-28 23:00:40 -04:00
DocTour.ts (core) Use auto popup placement for DocTour on mobile 2021-12-16 16:06:15 +02:00
DocumentSettings.ts (core) add gvisor-based sandboxing to core 2022-03-24 17:04:49 -04:00
errorPages.ts (core) Add new Grist sign-up page 2022-02-14 10:32:47 -08:00
ExampleCard.ts (core) Polish UI/UX of onboarding popups 2021-07-30 15:44:18 +02:00
ExampleInfo.ts (core) Redesign examples and templates UI 2021-07-28 12:29:03 -07:00
FieldConfig.ts (core) Conditional formatting rules 2022-03-23 13:15:02 +01:00
FieldMenus.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
FileDialog.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
FilterBar.ts (core) Allow filtering hidden columns 2021-11-22 10:26:08 -08:00
forms.ts (core) In Welcome questionnaire, add 'School' option, ask to enter company or school 2020-11-02 14:05:31 -05:00
googleAuth.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
GridOptions.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
GridViewMenus.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
HomeImports.ts (core) Adding import from google drive to the home screen 2021-08-05 20:46:11 +02:00
HomeIntro.ts (core) Redesign examples and templates UI 2021-07-28 12:29:03 -07:00
HomeLeftPane.ts (core) allow non-owners to remove themselves from sites/workspaces/docs 2022-04-13 10:04:32 -04:00
LeftPanelCommon.ts (core) Add button for removing doc tours 2022-01-05 08:19:46 -08:00
MakeCopyMenu.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
MenuToggle.ts (core) Context menu for cards. 2021-06-29 15:29:56 +02:00
modals.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
mouseDrag.ts (core) Add our very own implementation of tokenfield (aka pillbox, tag list) 2021-05-03 17:16:24 -04:00
MultiSelector.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
NotifyUI.ts (core) Update HelpScout beacon to work with embedded documentation articles. 2021-12-09 22:22:55 -05:00
OnBoardingPopups.ts (core) Fix bugs when both welcomeTour and docTour are available 2022-03-22 16:51:05 -04:00
PagePanels.ts (core) Add document usage banners 2022-04-25 08:14:52 -07:00
Pages.ts (core) Updating RawData views 2022-05-04 21:41:42 +02:00
PageWidgetPicker.ts (core) Updating RawData views 2022-05-04 21:41:42 +02:00
PinnedDocs.ts (core) Fix staging test and tweak template line height 2021-07-29 08:16:19 -07:00
resizeHandle.ts Initial config with a few files that build on client and server side. 2020-05-20 00:50:46 -04:00
RightPanel.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
RowContextMenu.ts (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
selectBy.ts (core) Allow linking summary tables based on ref/reflist columns (except group) 2022-05-12 15:59:12 +02:00
sendToDrive.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
setupPage.ts (core) Enable MFA configuration (and add SMS) 2022-01-19 13:55:54 -08:00
shadowScroll.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
ShareMenu.ts (core) allow non-owners to remove themselves from sites/workspaces/docs 2022-04-13 10:04:32 -04:00
SiteSwitcher.ts (core) make Grist easier to run with a single server 2022-03-05 13:30:45 -05:00
TemplateDocs.ts (core) Redesign examples and templates UI 2021-07-28 12:29:03 -07:00
Tools.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
tooltips.ts (core) Draft cells 2021-05-25 21:14:49 +02:00
TopBar.ts (core) Hide workspace in breadcrumbs if doc is unsaved 2021-08-05 15:57:03 -07:00
TopBarCss.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
transientInput.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
transitions.ts (core) Show a welcome card when a user opens an example for the first time. 2020-09-09 23:08:50 -04:00
TreeViewComponent.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
TreeViewComponentCss.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
TriggerFormulas.ts (core) Formula UI redesign 2021-11-05 13:07:30 +01:00
UserImage.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
UserItem.ts (core) annotate shares listed in UserManager for documents 2021-10-25 14:29:19 -04:00
UserManager.ts (core) allow non-owners to remove themselves from sites/workspaces/docs 2022-04-13 10:04:32 -04:00
ViewLayoutMenu.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
viewport.ts (core) Make mobile the default mode. 2021-02-25 11:31:43 -05:00
ViewSectionMenu.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
VisibleFieldsConfig.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
WelcomePage.ts (core) Add new Grist login page 2022-04-01 15:24:19 -07:00
WelcomeQuestions.ts (core) Remove code for unused welcome flows 2022-02-28 13:21:28 -08:00
welcomeTour.ts (core) Fix bugs when both welcomeTour and docTour are available 2022-03-22 16:51:05 -04:00
WidgetTitle.ts (core) Updating RawData views 2022-05-04 21:41:42 +02:00
widgetTypes.ts (core) move client code to core 2020-10-02 13:24:21 -04:00