signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.52k stars 2.63k forks source link

Signal Stuck in Optimization "SQLITE_CORRUPT: database disk image is malformed" #2972

Closed wikiblue closed 5 years ago

wikiblue commented 5 years ago

Bug description

I updated to the newest version of Signal, and it gets stuck in "Optimizing Application"

Steps to reproduce

1) Delete old version on Mac 2) download new version on mac

Actual result:

It starts up, but won't leave the "Optimizing Application" page.

Expected result:

I should be able to read my messages.

Screenshots

Platform info

Signal version:

Operating System:

Linked device version:

Link to debug log

scottnonnenberg-signal commented 5 years ago

Hey there. We can't do anything about this without a debug log. Please go to View -> Debug Log and then provide the resultant URL here.

wikiblue commented 5 years ago

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Signal/1.19.0 Chrome/66.0.3359.181 Electron/3.0.9 Safari/537.36 node/10.2.0 env/production INFO 2018-12-12T19:51:28.501Z app ready INFO 2018-12-12T19:51:28.509Z updateSchema: Current schema version: 7; Most recent schema version: 7; SQLite version: 3.20.1; SQLCipher version: 3.4.2; INFO 2018-12-12T19:51:28.511Z Ensure attachments directory exists INFO 2018-12-12T19:51:28.557Z Initializing BrowserWindow config: {"show":true,"width":892,"height":857,"minWidth":640,"minHeight":360,"autoHideMenuBar":false,"webPreferences":{"nodeIntegration":false,"nodeIntegrationInWorker":false,"preload":"[REDACTED]/app.asar/preload.js","nativeWindowOpen":true},"icon":"[REDACTED]/app.asar/images/icon_256.png","maximized":false,"x":35,"y":23} INFO 2018-12-12T19:51:29.902Z Using OS-level spell check API with locale en_US INFO 2018-12-12T19:51:30.107Z pre-main prep time: 2 ms INFO 2018-12-12T19:51:30.126Z Build expires: 2019-03-10T23:12:07.000Z INFO 2018-12-12T19:51:30.144Z background page reloaded INFO 2018-12-12T19:51:30.144Z environment: production INFO 2018-12-12T19:51:30.272Z Storage fetch INFO 2018-12-12T19:51:30.278Z New version detected: 1.19.0; previous: undefined INFO 2018-12-12T19:51:30.278Z Cleanup: starting... INFO 2018-12-12T19:51:30.279Z sql channel error with call getOutgoingWithoutExpiresAt: Error: SQLITE_CORRUPT: database disk image is malformed INFO 2018-12-12T19:51:30.282Z SQL channel job 3 (getOutgoingWithoutExpiresAt) failed in 3ms ERROR 2018-12-12T19:51:30.282Z Top-level unhandled promise rejection: Error: Error received from SQL channel job 3 (getOutgoingWithoutExpiresAt): Error: SQLITE_CORRUPT: database disk image is malformed INFO 2018-12-12T19:52:24.472Z Loaded this list of log files from logPath: log.log

scottnonnenberg-signal commented 5 years ago

Did your computer crash? Did you need to force exit Signal Desktop at any point? Can you think of anything that would have caused the Signal Desktop database to become corrupted?

wikiblue commented 5 years ago

No! I also uninstalled and installed several times, but to no avail.

On 12/12/18 6:25 PM, Scott Nonnenberg wrote:

Did your computer crash? Did you need to force exit Signal Desktop at any point? Can you think of anything that would have caused the Signal Desktop database to become corrupted?

wikiblue commented 5 years ago

Is there anyway to delete the database so it can create a new one? If so, do you know where that file is located/

scottnonnenberg-signal commented 5 years ago

~/Library/Application Support/Signal. Delete or rename it and the application will start up as a fresh installation. It would be useful if you could provide us the logs directory inside that folder (perhaps send it to support@signal.org) so we can see if there are any hints as to what caused the database corruption.

foss- commented 5 years ago

Just another data point, sorry no logs right now as I am in a hurry: Ran into the same issue, 1.19.0 update macOS 10.13.6. In my case I was on a choppy mobile network (german mobile network) and assume that the download or update process may have been corrupted. Renaming ~/Library/Application Support/Signal to ~/Library/Application Support/Signal_backup solved the problem and went through the steps of a fresh installation.

marcinwasilewski commented 5 years ago

Had the same issue. Cleaning ~/Library/Application Support/Signal solved it.

scottnonnenberg-signal commented 5 years ago

@foss- @marcinwasilewski I'm glad that you were able to find workarounds, but what we need is debug logs which include the history of the install, which might give us some insight into how this corruption is happening in the first place.

@foss- You might be able to salvage the /logs directory from inside your Signal_backup directory.

foss- commented 5 years ago

@scottnonnenberg Sorry removed that folder since I was back to working state. Obviously that was a mistake. Will keep it next time :/ Maybe someone else can provide proper logs to help you understand what went wrong with that update.

TheRoarkster commented 5 years ago

I am having the same problem (stuck at Optimizing Application), but on Fedora (Linux). I did recently have a complete crash where I had to restart, but it worked after that. Rather, it seems to have corrupted after the most recent Fedora incremental updates (01.26.2019).

To force Signal to reset and re-link to your phone (on Fedora, installed via Flatpak), do this:

Ctl+T (open terminal) mv ~/.var/app/org.signal.Signal/config/Signal/sql ~/.var/app/org.signal.Signal/config/Signal/sql.bak Restart Signal

Not sure this will help, but here are my latest Signal logs:

{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"close event {\"shouldQuit\":false}","time":"2019-01-28T16:30:17.408Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"requestShutdown: Requesting close of mainWindow...","time":"2019-01-28T16:30:17.515Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":50,"msg":"preload shutdown handler: shutdown method not found","time":"2019-01-28T16:30:17.772Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"requestShutdown: Response received","time":"2019-01-28T16:30:17.773Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"before-quit event {\"readyForShutdown\":true,\"shouldQuit\":false}","time":"2019-01-28T16:30:17.781Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"close event {\"readyForShutdown\":true,\"shouldQuit\":true}","time":"2019-01-28T16:30:17.781Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"app ready","time":"2019-01-28T16:30:25.932Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"updateSchema: Current schema version: 8; Most recent schema version: 8; SQLite version: 3.20.1; SQLCipher version: 3.4.2;","time":"2019-01-28T16:30:26.009Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"(ready event handler) error deleting IndexedDB: Error: SQLITE_IOERR: disk I/O error","time":"2019-01-28T16:30:32.345Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Ensure attachments directory exists","time":"2019-01-28T16:30:32.346Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Initializing BrowserWindow config: {\"show\":true,\"width\":1280,\"height\":669,\"minWidth\":640,\"minHeight\":360,\"autoHideMenuBar\":true,\"webPreferences\":{\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"preload\":\"/app/Signal/resources/app.asar/preload.js\",\"nativeWindowOpen\":true},\"icon\":\"/app/Signal/resources/app.asar/images/icon_256.png\",\"maximized\":false,\"x\":1280,\"y\":64}","time":"2019-01-28T16:30:32.349Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Updating BrowserWindow config: {\"maximized\":false,\"autoHideMenuBar\":true,\"width\":1280,\"height\":669,\"x\":1280,\"y\":64}","time":"2019-01-28T16:30:33.235Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"config/set: Saving ephemeral config to disk","time":"2019-01-28T16:30:33.236Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Detected Linux. Using default en_US spell check dictionary","time":"2019-01-28T16:30:37.015Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"pre-main prep time: 4 ms","time":"2019-01-28T16:30:37.462Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Build expires:  2019-04-17T18:23:53.000Z","time":"2019-01-28T16:30:37.489Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"background page reloaded","time":"2019-01-28T16:30:37.589Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"environment: production","time":"2019-01-28T16:30:37.589Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Storage fetch","time":"2019-01-28T16:30:38.307Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"sql channel error with call getAllItems: Error: SQLITE_IOERR: disk I/O error","time":"2019-01-28T16:30:41.206Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"SQL channel job 1 (getAllItems) failed in 2900ms","time":"2019-01-28T16:30:41.207Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":50,"msg":"Top-level unhandled promise rejection: Error: Error received from SQL channel job 1 (getAllItems): Error: SQLITE_IOERR: disk I/O error","time":"2019-01-28T16:30:41.208Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"close event {\"shouldQuit\":false}","time":"2019-01-28T17:28:05.156Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"requestShutdown: Requesting close of mainWindow...","time":"2019-01-28T17:28:05.157Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":50,"msg":"preload shutdown handler: shutdown method not found","time":"2019-01-28T17:28:05.158Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"requestShutdown: Response received","time":"2019-01-28T17:28:05.158Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"before-quit event {\"readyForShutdown\":true,\"shouldQuit\":false}","time":"2019-01-28T17:28:05.159Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"close event {\"readyForShutdown\":true,\"shouldQuit\":true}","time":"2019-01-28T17:28:05.159Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"app ready","time":"2019-01-28T23:26:53.149Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"updateSchema: Current schema version: 8; Most recent schema version: 8; SQLite version: 3.20.1; SQLCipher version: 3.4.2;","time":"2019-01-28T23:26:53.165Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"(ready event handler) error deleting IndexedDB: Error: SQLITE_IOERR: disk I/O error","time":"2019-01-28T23:26:59.196Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Ensure attachments directory exists","time":"2019-01-28T23:26:59.197Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Initializing BrowserWindow config: {\"show\":true,\"width\":1280,\"height\":669,\"minWidth\":640,\"minHeight\":360,\"autoHideMenuBar\":true,\"webPreferences\":{\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"preload\":\"/app/Signal/resources/app.asar/preload.js\",\"nativeWindowOpen\":true},\"icon\":\"/app/Signal/resources/app.asar/images/icon_256.png\",\"maximized\":false,\"x\":1280,\"y\":64}","time":"2019-01-28T23:26:59.202Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Updating BrowserWindow config: {\"maximized\":false,\"autoHideMenuBar\":true,\"width\":1280,\"height\":669,\"x\":1280,\"y\":64}","time":"2019-01-28T23:26:59.989Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"config/set: Saving ephemeral config to disk","time":"2019-01-28T23:26:59.989Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Detected Linux. Using default en_US spell check dictionary","time":"2019-01-28T23:27:00.638Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"pre-main prep time: 4 ms","time":"2019-01-28T23:27:00.971Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Build expires:  2019-04-17T18:23:53.000Z","time":"2019-01-28T23:27:00.997Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"background page reloaded","time":"2019-01-28T23:27:01.025Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"environment: production","time":"2019-01-28T23:27:01.026Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"Storage fetch","time":"2019-01-28T23:27:01.390Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"sql channel error with call getAllItems: Error: SQLITE_IOERR: disk I/O error","time":"2019-01-28T23:27:04.209Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":30,"msg":"SQL channel job 1 (getAllItems) failed in 2821ms","time":"2019-01-28T23:27:04.211Z","v":0}
{"name":"log","hostname":"fedora29","pid":2,"level":50,"msg":"Top-level unhandled promise rejection: Error: Error received from SQL channel job 1 (getAllItems): Error: SQLITE_IOERR: disk I/O error","time":"2019-01-28T23:27:04.211Z","v":0}
Garoth commented 5 years ago

Hello, I've had this same "stuck on optimizing" bug for several weeks on OSX. I've been tryna find the database to delete, since reinstalling didn't work. I have logs:

From corrupt database:

log.log

From Signal UI:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Signal/1.21.2 Chrome/66.0.3359.181 Electron/3.0.14 Safari/537.36 node/10.2.0 env/production
INFO  2019-02-13T20:50:07.481Z app ready
INFO  2019-02-13T20:50:07.491Z updateSchema: Current schema version: 8; Most recent schema version: 8; SQLite version: 3.20.1; SQLCipher version: 3.4.2;
INFO  2019-02-13T20:50:07.493Z Ensure attachments directory exists
INFO  2019-02-13T20:50:07.554Z Initializing BrowserWindow config: {"show":true,"width":1536,"height":792,"minWidth":640,"minHeight":360,"autoHideMenuBar":false,"backgroundColor":"#2090EA","webPreferences":{"nodeIntegration":false,"nodeIntegrationInWorker":false,"preload":"[REDACTED]/app.asar/preload.js","nativeWindowOpen":true},"icon":"[REDACTED]/app.asar/images/icon_256.png","maximized":false,"x":-3648,"y":-25}
INFO  2019-02-13T20:50:08.572Z Using OS-level spell check API with locale en_US
INFO  2019-02-13T20:50:08.777Z pre-main prep time: 1 ms
INFO  2019-02-13T20:50:08.796Z Build expires:  2019-05-13T22:57:04.000Z
INFO  2019-02-13T20:50:08.814Z background page reloaded
INFO  2019-02-13T20:50:08.814Z environment: production
INFO  2019-02-13T20:50:09.005Z Storage fetch
INFO  2019-02-13T20:50:09.013Z New version detected: 1.21.2; previous: undefined
INFO  2019-02-13T20:50:09.013Z Cleanup: starting...
INFO  2019-02-13T20:50:09.014Z sql channel error with call getOutgoingWithoutExpiresAt: Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:50:09.016Z SQL channel job 3 (getOutgoingWithoutExpiresAt) failed in 2ms
ERROR 2019-02-13T20:50:09.016Z Top-level unhandled promise rejection: Error: Error received from SQL channel job 3 (getOutgoingWithoutExpiresAt): Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:50:51.237Z Updating BrowserWindow config: {"maximized":false,"autoHideMenuBar":false,"width":1536,"height":792,"x":-3715,"y":-48}
INFO  2019-02-13T20:50:51.238Z config/set: Saving ephemeral config to disk
INFO  2019-02-13T20:50:51.250Z before-quit event {"shouldQuit":false}
INFO  2019-02-13T20:50:51.251Z close event {"shouldQuit":true}
INFO  2019-02-13T20:50:51.257Z requestShutdown: Requesting close of mainWindow...
INFO  2019-02-13T20:50:51.259Z data.shutdown: starting process. 0 jobs outstanding
INFO  2019-02-13T20:50:51.261Z requestShutdown: Response received
INFO  2019-02-13T20:50:51.261Z before-quit event {"readyForShutdown":true,"shouldQuit":true}
INFO  2019-02-13T20:50:51.262Z close event {"readyForShutdown":true,"shouldQuit":true}
INFO  2019-02-13T20:52:46.354Z app ready
INFO  2019-02-13T20:52:46.363Z updateSchema: Current schema version: 8; Most recent schema version: 8; SQLite version: 3.20.1; SQLCipher version: 3.4.2;
INFO  2019-02-13T20:52:46.365Z Ensure attachments directory exists
INFO  2019-02-13T20:52:46.423Z Initializing BrowserWindow config: {"show":true,"width":1536,"height":792,"minWidth":640,"minHeight":360,"autoHideMenuBar":false,"backgroundColor":"#2090EA","webPreferences":{"nodeIntegration":false,"nodeIntegrationInWorker":false,"preload":"[REDACTED]/app.asar/preload.js","nativeWindowOpen":true},"icon":"[REDACTED]/app.asar/images/icon_256.png","maximized":false,"x":-3715,"y":-48}
INFO  2019-02-13T20:52:47.372Z Using OS-level spell check API with locale en_US
INFO  2019-02-13T20:52:47.577Z pre-main prep time: 1 ms
INFO  2019-02-13T20:52:47.597Z Build expires:  2019-05-13T22:57:04.000Z
INFO  2019-02-13T20:52:47.615Z background page reloaded
INFO  2019-02-13T20:52:47.616Z environment: production
INFO  2019-02-13T20:52:47.795Z Storage fetch
INFO  2019-02-13T20:52:47.804Z Cleanup: starting...
INFO  2019-02-13T20:52:47.805Z sql channel error with call getOutgoingWithoutExpiresAt: Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:52:47.807Z SQL channel job 3 (getOutgoingWithoutExpiresAt) failed in 2ms
ERROR 2019-02-13T20:52:47.807Z Top-level unhandled promise rejection: Error: Error received from SQL channel job 3 (getOutgoingWithoutExpiresAt): Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:53:13.919Z Updating BrowserWindow config: {"maximized":false,"autoHideMenuBar":false,"width":1536,"height":792,"x":-3619,"y":-50}
INFO  2019-02-13T20:53:13.919Z config/set: Saving ephemeral config to disk
INFO  2019-02-13T20:53:13.932Z before-quit event {"shouldQuit":false}
INFO  2019-02-13T20:53:13.934Z close event {"shouldQuit":true}
INFO  2019-02-13T20:53:13.939Z requestShutdown: Requesting close of mainWindow...
INFO  2019-02-13T20:53:13.944Z data.shutdown: starting process. 0 jobs outstanding
INFO  2019-02-13T20:53:13.948Z requestShutdown: Response received
INFO  2019-02-13T20:53:13.948Z before-quit event {"readyForShutdown":true,"shouldQuit":true}
INFO  2019-02-13T20:53:13.949Z close event {"readyForShutdown":true,"shouldQuit":true}
INFO  2019-02-13T20:54:43.623Z app ready
INFO  2019-02-13T20:54:43.632Z updateSchema: Current schema version: 8; Most recent schema version: 8; SQLite version: 3.20.1; SQLCipher version: 3.4.2;
INFO  2019-02-13T20:54:43.634Z Ensure attachments directory exists
INFO  2019-02-13T20:54:43.697Z Initializing BrowserWindow config: {"show":true,"width":1536,"height":792,"minWidth":640,"minHeight":360,"autoHideMenuBar":false,"backgroundColor":"#2090EA","webPreferences":{"nodeIntegration":false,"nodeIntegrationInWorker":false,"preload":"[REDACTED]/app.asar/preload.js","nativeWindowOpen":true},"icon":"[REDACTED]/app.asar/images/icon_256.png","maximized":false,"x":-3619,"y":-50}
INFO  2019-02-13T20:54:44.720Z Using OS-level spell check API with locale en_US
INFO  2019-02-13T20:54:44.930Z pre-main prep time: 1 ms
INFO  2019-02-13T20:54:44.949Z Build expires:  2019-05-13T22:57:04.000Z
INFO  2019-02-13T20:54:44.969Z background page reloaded
INFO  2019-02-13T20:54:44.969Z environment: production
INFO  2019-02-13T20:54:45.180Z Storage fetch
INFO  2019-02-13T20:54:45.187Z Cleanup: starting...
INFO  2019-02-13T20:54:45.188Z sql channel error with call getOutgoingWithoutExpiresAt: Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:54:45.190Z SQL channel job 3 (getOutgoingWithoutExpiresAt) failed in 2ms
ERROR 2019-02-13T20:54:45.190Z Top-level unhandled promise rejection: Error: Error received from SQL channel job 3 (getOutgoingWithoutExpiresAt): Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:56:06.739Z Updating BrowserWindow config: {"maximized":false,"autoHideMenuBar":false,"width":1536,"height":792,"x":-3583,"y":-51}
INFO  2019-02-13T20:56:06.740Z config/set: Saving ephemeral config to disk
INFO  2019-02-13T20:56:06.820Z before-quit event {"shouldQuit":false}
INFO  2019-02-13T20:56:06.821Z close event {"shouldQuit":true}
INFO  2019-02-13T20:56:06.827Z requestShutdown: Requesting close of mainWindow...
INFO  2019-02-13T20:56:06.829Z data.shutdown: starting process. 0 jobs outstanding
INFO  2019-02-13T20:56:06.831Z requestShutdown: Response received
INFO  2019-02-13T20:56:06.831Z before-quit event {"readyForShutdown":true,"shouldQuit":true}
INFO  2019-02-13T20:56:06.831Z close event {"readyForShutdown":true,"shouldQuit":true}
INFO  2019-02-13T20:58:00.416Z app ready
INFO  2019-02-13T20:58:00.425Z updateSchema: Current schema version: 8; Most recent schema version: 8; SQLite version: 3.20.1; SQLCipher version: 3.4.2;
INFO  2019-02-13T20:58:00.427Z Ensure attachments directory exists
INFO  2019-02-13T20:58:00.488Z Initializing BrowserWindow config: {"show":true,"width":1536,"height":792,"minWidth":640,"minHeight":360,"autoHideMenuBar":false,"backgroundColor":"#2090EA","webPreferences":{"nodeIntegration":false,"nodeIntegrationInWorker":false,"preload":"[REDACTED]/app.asar/preload.js","nativeWindowOpen":true},"icon":"[REDACTED]/app.asar/images/icon_256.png","maximized":false,"x":-3583,"y":-51}
INFO  2019-02-13T20:58:01.493Z Using OS-level spell check API with locale en_US
INFO  2019-02-13T20:58:01.732Z pre-main prep time: 2 ms
INFO  2019-02-13T20:58:01.754Z Build expires:  2019-05-13T22:57:04.000Z
INFO  2019-02-13T20:58:01.778Z background page reloaded
INFO  2019-02-13T20:58:01.779Z environment: production
INFO  2019-02-13T20:58:01.969Z Storage fetch
INFO  2019-02-13T20:58:01.981Z Cleanup: starting...
INFO  2019-02-13T20:58:01.982Z sql channel error with call getOutgoingWithoutExpiresAt: Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:58:01.984Z SQL channel job 3 (getOutgoingWithoutExpiresAt) failed in 4ms
ERROR 2019-02-13T20:58:01.985Z Top-level unhandled promise rejection: Error: Error received from SQL channel job 3 (getOutgoingWithoutExpiresAt): Error: SQLITE_CORRUPT: database disk image is malformed
INFO  2019-02-13T20:58:06.394Z Loaded this list of log files from logPath: log.log
scottnonnenberg-signal commented 5 years ago

On macOS, the database is at ~/Library/Application Support/Signal. Can you think of anything that could have caused that database corruption? Did you Force Quit Signal? Or did your computer crash? Did you restore from a backup?

Garoth commented 5 years ago

My computer has been experiencing some kind of weird OS bug that causes it to reboot coming out of suspend sometimes. That might be the culprit.

Either way, I think it'd be nice if Signal had a graceful "o fuck do you wanna delete your db and reset from scratch?" kind of popup. This was quite a frustrating issue, because (a) using the menus to delete the database did nothing (b) reinstalling the app twice did nothing (c) no real feedback that a serious crash had occurred in the UI (d) took like 30 min for me to find where the actual database file is because I'm bad at Mac

But I love you guys and Signal #1

scottnonnenberg-signal commented 5 years ago

@Garoth Please enter a feature request for that. Though it should be really really uncommon, it would be nice to have a clear set of next steps for people who have found themselves in that situation.

deutrino commented 5 years ago

It's not very uncommon for heavy users.

scottnonnenberg-signal commented 5 years ago

@deutrino Please reach out to support@signal.org and we can work with you to figure out exactly what can cause the corruption to happen.

Either way, we have a new dialog that pops up on startup if there appears to be a database error.

scottnonnenberg-signal commented 5 years ago

I'm going to close this, since that new dialog prevents you from being stuck in that 'Optimizing...' stage.