mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-22 08:16:09 +08:00
[client-app] Prevent database malformed
error restart loop
Summary: This error is can flood Sentry pretty badly: https://sentry.io/nylas/nylas-mail/issues/230629801/ My initial thought was to rate limit it, but rate limiting wouldn't do any good because when we get that error we destroy the databases and restart the app, and we will loose the in-memory rate limiting data. The real fix, and reason why Sentry is being flooded with this error by a single user, is that once you encounter this error the app will enter a restart loop that constantly throws this error. The reason being that we weren't properly awaiting for the K2 account databases to be dropped before closing the app, so on restart, the database would still be malformed. The fix is to properly `await` for the database drops Test Plan: manual Reviewers: spang, mark, halla, evan Reviewed By: evan Differential Revision: https://phab.nylas.com/D4127
This commit is contained in:
parent
6a17073fe5
commit
521ca86efc
|
@ -49,7 +49,7 @@ class SyncProcessManager {
|
|||
// DB
|
||||
fs.unlinkSync(`${NylasEnv.getConfigDirPath()}/edgehill.db`)
|
||||
for (const account of this.accounts()) {
|
||||
LocalDatabaseConnector.destroyAccountDatabase(account.id)
|
||||
await LocalDatabaseConnector.destroyAccountDatabase(account.id)
|
||||
}
|
||||
remote.app.relaunch()
|
||||
remote.app.quit()
|
||||
|
|
|
@ -64,7 +64,7 @@ class LocalDatabaseConnector {
|
|||
});
|
||||
}
|
||||
|
||||
destroyAccountDatabase(accountId) {
|
||||
async destroyAccountDatabase(accountId) {
|
||||
if (NylasEnv.inSpecMode()) {
|
||||
// The db is in memory, so we don't have to unlink it. Just drop the data.
|
||||
return this.forAccount(accountId).then(db => {
|
||||
|
|
Loading…
Reference in a new issue