Mailspring/packages/client-app/package.json
Juan Tejada 0f2896446e [client-sync] Bump sequelize version - Ensure it doesn't halt sync
Summary:
This commit bumps the version of sequelize to point to the latest
version in our fork. This version bump also includes latest updates from
upstream sequelize since the last time we bumped the version.

Notably, it includes a critical fix that will prevent the sync
loop from getting stuck on rare occasions.

Specifically, sequelize's `Query.prototype.run` could in some cases return a
Promise that would /never/ resolve or reject, effectively halting the
execution of any code that was waiting for that promise. This was due to
a lack of error handling inside a the query's `afterExecute` function; if an
error was thrown there, the enclosing Promise would never reject, and
the error would just remain uncaught. An example of such an error that
could cause this scenario is: T7742 - https://sentry.io/nylas/nylas-mail/issues/230016155/

Sync getting halted in this way can produce a variety of user facing
bugs like not being able to send or it taking an absurd amount of time
(hours), tasks never finishing or taking an absurd amount of time to
complete, new mail not arriving, among others

The commit that fixes this is: 0deeda9e1a
The full set of changes introduced by this version bump are: https://github.com/nylas/sequelize/compare/nylas-3.30.0...nylas-3.40.0

**Note:**
It is important to note that sequelize might still halt the sync loop if
there are other places in the code that can return Promises that never
resolve or reject under certain circumstances. I can consistently reproduce this
scenario when an error is thrown inside `afterExecute`, and I've seen it
happen in the wild, but I've also ran into this type of sync loop halting (db
promises never resolve) without any sequelize errors being thrown, which
suggests that there are other places in the sequelize code that might end
up returning a Promise that will halt sync.

Unfortunately, we don't have a good way to detect and report when this
happens yet, but we are adding one in upcoming diffs in order have data
on how many people are running into this, and/or if this patch completely
fixes the issue. Otherwise, we'd need to audit sequelize's code.

Should resolve T7837 and T7767

Test Plan: manual

Reviewers: spang, mark, halla, khamidou, evan

Reviewed By: evan

Subscribers: mg, tomasz

Maniphest Tasks: T7767, T7837

Differential Revision: https://phab.nylas.com/D4152
2017-03-09 08:20:49 -08:00

143 lines
4.1 KiB
JSON

{
"name": "nylas-mail",
"productName": "Nylas Mail",
"version": "1.0.34",
"description": "The best email app for people and teams at work",
"license": "GPL-3.0",
"main": "./src/browser/main.js",
"repository": {
"type": "git",
"url": "https://github.com/nylas/nylas-mail.git"
},
"bugs": {
"url": "https://github.com/nylas/nylas-mail/issues"
},
"dependencies": {
"analytics-node": "2.x.x",
"async": "^0.9",
"babel-core": "6.22.0",
"babel-preset-electron": "1.4.15",
"babel-preset-react": "6.22.0",
"babel-regenerator-runtime": "6.5.0",
"base64-stream": "0.1.3",
"better-sqlite3": "bengotow/better-sqlite3#a888061ad334c76d2db4c06554c90785cc6e7cce",
"bluebird": "3.4.x",
"chromium-net-errors": "1.0.3",
"chrono-node": "^1.1.2",
"classnames": "1.2.1",
"clearbit": "^1.2",
"coffee-react": "^5.0.0",
"coffee-script": "1.10.0",
"coffeestack": "^1.1",
"color": "^0.7.3",
"debug": "2.4.5",
"electron": "1.4.15",
"electron-spellchecker": "1.0.1",
"emissary": "^1.3.1",
"emoji-data": "^0.2.0",
"encoding": "0.1.12",
"enzyme": "2.7.1",
"esdoc": "^0.5.2",
"esdoc-es7-plugin": "0.0.3",
"event-kit": "^1.0.2",
"fs-plus": "^2.3.2",
"getmac": "1.x.x",
"googleapis": "9.0.0",
"guid": "0.0.10",
"hapi": "16.1.0",
"hapi-auth-basic": "^4.2.0",
"hapi-boom-decorators": "2.2.2",
"hapi-plugin-websocket": "^0.9.2",
"hapi-swagger": "7.6.0",
"he": "1.1.0",
"iconv": "2.2.1",
"imap-provider-settings": "nylas/imap-provider-settings",
"immutable": "3.7.5",
"inert": "4.0.0",
"is-online": "6.1.0",
"isomorphic-core": "0.x.x",
"jasmine-json": "~0.0",
"jasmine-react-helpers": "^0.2",
"jasmine-reporters": "1.x.x",
"jasmine-tagged": "^1.1.2",
"joi": "8.4.2",
"jsx-transform": "^2.3.0",
"juice": "^1.4",
"kbpgp": "^2.0.52",
"keytar": "3.0.0",
"less-cache": "0.21",
"lru-cache": "^4.0.1",
"marked": "^0.3",
"mimelib": "0.2.19",
"mkdirp": "^0.5",
"moment": "2.12.0",
"moment-round": "^1.0.1",
"moment-timezone": "0.5.4",
"mousetrap": "^1.5.3",
"nock": "^2",
"node-emoji": "^1.2.1",
"node-uuid": "^1.4",
"nslog": "^3",
"optimist": "0.4.0",
"papaparse": "^4.1.2",
"pathwatcher": "~6.2",
"pick-react-known-prop": "0.x.x",
"promise-queue": "2.1.1",
"property-accessors": "^1",
"proxyquire": "1.3.1",
"q": "^1.0.1",
"raven": "1.1.4",
"react": "15.4.2",
"react-addons-css-transition-group": "15.4.2",
"react-addons-perf": "15.4.2",
"react-addons-test-utils": "15.4.2",
"react-dom": "15.4.2",
"reflux": "0.1.13",
"request": "2.79.x",
"request-progress": "^0.3",
"rimraf": "2.5.2",
"runas": "^3.1",
"rx-lite": "4.0.8",
"rx-lite-testing": "^4.0.7",
"sanitize-html": "1.9.0",
"season": "^5.1",
"semver": "^4.2",
"sequelize": "nylas/sequelize#nylas-3.40.0",
"simplemde": "jstejada/simplemde-markdown-editor#input-style-support",
"source-map-support": "^0.3.2",
"sqlite3": "https://github.com/bengotow/node-sqlite3/archive/bengotow/usleep-v3.1.4.tar.gz",
"temp": "^0.8",
"tld": "^0.0.2",
"underscore": "1.8.x",
"underscore.string": "^3.0",
"vision": "4.1.0",
"windows-shortcuts": "emorikawa/windows-shortcuts#b0a0fc7"
},
"devDependencies": {
"donna": "^1.0.15",
"gitbook": "^3.2.2",
"gitbook-cli": "^2.3.0",
"gitbook-plugin-anchors": "^0.7.1",
"gitbook-plugin-editlink": "^1.0.2",
"gitbook-plugin-favicon": "0.0.2",
"gitbook-plugin-github": "^2.0.0",
"gitbook-plugin-theme-api": "^1.1.2",
"handlebars": "4.0.6",
"joanna": "0.0.8",
"meta-marked": "0.4.2",
"tello": "1.0.6"
},
"optionalDependencies": {
"node-mac-notifier": "0.0.13"
},
"packageDependencies": {},
"scripts": {
"test": "electron . --test --enable-logging",
"test-window": "electron . --test=window --enable-logging",
"test-junit": "electron . --test --enable-logging --junit-xml=junitxml",
"start": "electron . --dev --enable-logging",
"lint": "script/grunt lint",
"build": "script/grunt build"
}
}