Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reliable Storage: Error to the user when IndexedDB gets blown away #9109

Closed
ara4n opened this issue Mar 11, 2019 · 6 comments
Closed

Reliable Storage: Error to the user when IndexedDB gets blown away #9109

ara4n opened this issue Mar 11, 2019 · 6 comments
Assignees
Labels
A-E2EE A-Storage Storage layer of the app, including IndexedDB, local storage, etc. P1 S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Defect

Comments

@ara4n
Copy link
Member

ara4n commented Mar 11, 2019

No description provided.

@ara4n ara4n changed the title "error to the user when indexeddb gets blown away" "rather than failing silentlyl error to the user when indexeddb gets blown away Mar 11, 2019
@ara4n
Copy link
Member Author

ara4n commented Mar 11, 2019

rather than failing silently

@lampholder lampholder added this to Near Future (Unordered) in Platform Attic Mar 12, 2019
@lampholder lampholder moved this from Near Future (Unordered) to Prioritised Next (Ordered) in Platform Attic Mar 12, 2019
@ara4n
Copy link
Member Author

ara4n commented Mar 12, 2019

closely related to #7465

@turt2live
Copy link
Member

Technically a fix for #6120

@lampholder lampholder added this to Raging Inferno in Web App Team Mar 12, 2019
@lampholder lampholder added T-Defect P1 S-Major Severely degrades major functionality or product features, with no satisfactory workaround A-E2EE labels Mar 12, 2019
@jryans jryans self-assigned this Mar 13, 2019
@jryans jryans moved this from Raging Inferno 🔥🔥🔥 to In Progress in Web App Team Mar 13, 2019
@jryans
Copy link
Collaborator

jryans commented Mar 13, 2019

I assume we are fairly confident that people are observing:

  • IndexedDB deleted by browser
  • Local storage remains in place (because they are still logged in)

as the case we want to handle here?

(That's not supposed to be what happens, since browsers are meant to atomically purge all forms of storage for a origin together when you are out of space, but it's hard to be sure about what happens in practice other than testing manually to see.)

@jryans
Copy link
Collaborator

jryans commented Mar 18, 2019

I assume we are fairly confident that people are observing:

* IndexedDB deleted by browser

* Local storage remains in place (because they are still logged in)

as the case we want to handle here?

(That's not supposed to be what happens, since browsers are meant to atomically purge all forms of storage for a origin together when you are out of space, but it's hard to be sure about what happens in practice other than testing manually to see.)

While the Storage Standard says all storage for an origin group should be limited by a single quota, in practice, browsers appear to handle localStorage separately from the others, so it has a separate quota limit and isn't evicted when low on space.

  • Chrome, Firefox
    • IndexedDB for origin deleted
    • Local Storage remains in place

jryans added a commit to jryans/matrix-js-sdk that referenced this issue Mar 20, 2019
This collects my notes from investigating the state of browser storage as part
of element-hq/element-web#9109.
jryans added a commit to jryans/matrix-js-sdk that referenced this issue Mar 20, 2019
This collects my notes from investigating the state of browser storage as part
of element-hq/element-web#9109.
jryans added a commit to jryans/matrix-js-sdk that referenced this issue Mar 20, 2019
This collects my notes from investigating the state of browser storage as part
of element-hq/element-web#9109.
@jryans
Copy link
Collaborator

jryans commented Mar 20, 2019

I have merged some investigation notes with what I've found so far here.

jryans added a commit to jryans/matrix-js-sdk that referenced this issue Mar 25, 2019
This will be useful for future storage diagnostics as part of
element-hq/element-web#9109.
jryans added a commit to jryans/matrix-js-sdk that referenced this issue Mar 25, 2019
This will be useful for future storage diagnostics as part of
element-hq/element-web#9109.
@jryans jryans changed the title error to the user when indexeddb gets blown away Reliable Storage: Error to the user when IndexedDB gets blown away Mar 26, 2019
@jryans jryans removed this from In Progress in Web App Team Mar 28, 2019
jryans added a commit to jryans/matrix-react-sdk that referenced this issue Mar 28, 2019
If we have account data in local storage but nothing in the crypto store, it
generally means the browser has evicted IndexedDB out from under us. This adds a
modal to explain the situation and offer to completely clear storage to get
things back to normal.

Fixes element-hq/element-web#9109
@jryans jryans added this to In Review in Web App Team Mar 28, 2019
jryans added a commit to jryans/element-web that referenced this issue Mar 29, 2019
The new storage consistency work expects a crypto store exist together with
local storage. This updates the loading tests to create them together.

Needed for element-hq#9109
jryans added a commit to jryans/matrix-react-sdk that referenced this issue Mar 29, 2019
If we have account data in local storage but nothing in the crypto store, it
generally means the browser has evicted IndexedDB out from under us. This adds a
modal to explain the situation and offer to completely clear storage to get
things back to normal.

Fixes element-hq/element-web#9109
Web App Team automation moved this from In Review to In Test Apr 1, 2019
@jryans jryans added the A-Storage Storage layer of the app, including IndexedDB, local storage, etc. label Apr 2, 2019
@turt2live turt2live moved this from In Test to Done in Web App Team May 8, 2019
su-ex added a commit to SchildiChat/element-web that referenced this issue Aug 22, 2022
* Improve auth aria attributes and semantics ([\element-hq#22948](element-hq#22948)).
* Device manager - New device tile info design ([\element-hq#9122](matrix-org/matrix-react-sdk#9122)). Contributed by @kerryarchibald.
* Device manager generic settings subsection component ([\element-hq#9147](matrix-org/matrix-react-sdk#9147)). Contributed by @kerryarchibald.
* Migrate the hidden read receipts flag to new "send read receipts" option ([\element-hq#9141](matrix-org/matrix-react-sdk#9141)).
* Live location sharing - share location at most every 5 seconds ([\element-hq#9148](matrix-org/matrix-react-sdk#9148)). Contributed by @kerryarchibald.
* Increase max length of voice messages to 15m ([\element-hq#9133](matrix-org/matrix-react-sdk#9133)). Fixes element-hq#18620.
* Move pin drop out of labs ([\element-hq#9135](matrix-org/matrix-react-sdk#9135)).
* Start DM on first message ([\element-hq#8612](matrix-org/matrix-react-sdk#8612)). Fixes element-hq#14736.
* Remove "Add Space" button from RoomListHeader when user cannot create spaces ([\element-hq#9129](matrix-org/matrix-react-sdk#9129)).
* The Welcome Home Screen: Dedicated Download Apps Dialog ([\element-hq#9120](matrix-org/matrix-react-sdk#9120)). Fixes element-hq#22921. Contributed by @justjanne.
* The Welcome Home Screen: "Submit Feedback" pane ([\element-hq#9090](matrix-org/matrix-react-sdk#9090)). Fixes element-hq#22918. Contributed by @justjanne.
* New User Onboarding Task List ([\element-hq#9083](matrix-org/matrix-react-sdk#9083)). Fixes element-hq#22919. Contributed by @justjanne.
* Add support for disabling spell checking ([\element-hq#8604](matrix-org/matrix-react-sdk#8604)). Fixes element-hq#21901.
* Live location share - leave maximised map open when beacons expire ([\element-hq#9098](matrix-org/matrix-react-sdk#9098)). Contributed by @kerryarchibald.
* Some slash-commands (`/myroomnick`) have temporarily been disabled before the first message in a DM is sent. ([\element-hq#9193](matrix-org/matrix-react-sdk#9193)).
* Use stable reference for active tab in tabbedView ([\#9145](matrix-org/matrix-react-sdk#9145)). Contributed by @kerryarchibald.
* Fix pillification sometimes doubling up ([\element-hq#9152](matrix-org/matrix-react-sdk#9152)). Fixes element-hq#23036.
* Fix highlights not being applied to plaintext messages ([\element-hq#9126](matrix-org/matrix-react-sdk#9126)). Fixes element-hq#22787.
* Fix dismissing edit composer when change was undone ([\element-hq#9109](matrix-org/matrix-react-sdk#9109)). Fixes element-hq#22932.
* 1-to-1 DM rooms with bots now act like DM rooms instead of multi-user-rooms before ([\element-hq#9124](matrix-org/matrix-react-sdk#9124)). Fixes element-hq#22894.
* Apply inline start padding to selected lines on modern layout only ([\element-hq#9006](matrix-org/matrix-react-sdk#9006)). Fixes element-hq#22768. Contributed by @luixxiul.
* Peek into world-readable rooms from spotlight ([\element-hq#9115](matrix-org/matrix-react-sdk#9115)). Fixes element-hq#22862.
* Use default styling on nested numbered lists due to MD being sensitive ([\element-hq#9110](matrix-org/matrix-react-sdk#9110)). Fixes element-hq#22935.
* Fix replying using chat effect commands ([\element-hq#9101](matrix-org/matrix-react-sdk#9101)). Fixes element-hq#22824.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-E2EE A-Storage Storage layer of the app, including IndexedDB, local storage, etc. P1 S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Defect
Projects
None yet
Development

No branches or pull requests

4 participants