Open Bug 1417270 Opened 7 years ago Updated 1 year ago

Crash: ViewLater: BrowserProfile.BrowserSyncManager.locallyResetCollection(_:) + 352

Categories

(Firefox for iOS :: Data Storage, defect, P3)

All
iOS
defect

Tracking

()

Tracking Status
fxios 11.0 ---

People

(Reporter: st3fan, Unassigned)

Details

(Whiteboard: [Crash][ViewLater])

Attachments

(1 file)

Thread 3 name:
Thread 3 Crashed:
0   libsystem_kernel.dylib        	0x1d6c9acc __pthread_kill + 8
1   libsystem_pthread.dylib       	0x1d782086 pthread_kill + 62 (pthread.c:1366)
2   libsystem_c.dylib             	0x1d65e95a abort + 108 (abort.c:91)
3   libswiftCore.dylib            	0x00cbba50 0x92a000 + 3742288
4   libswiftCore.dylib            	0x00cbbb32 0x92a000 + 3742514
5   libswiftCore.dylib            	0x00cbcd18 0x92a000 + 3747096
6   ViewLater                     	0x00036858 BrowserProfile.BrowserSyncManager.locallyResetCollection(_:) + 352 (Profile.swift:872)
7   ViewLater                     	0x000540fc partial apply + 28 (Profile.swift:0)
8   ViewLater                     	0x00054150 partial apply for thunk for @callee_owned (@owned String) -> (@owned Deferred<Maybe<()>>) + 60 (Profile.swift:0)
9   Shared                        	0x002c3330 specialized closure #1 in closure #1 in walk<A>(_:f:) + 108 (DeferredUtils.swift:82)
10  Shared                        	0x002c54a4 partial apply for closure #1 in closure #1 in walk<A>(_:f:) + 72 (DeferredUtils.swift:0)
11  Shared                        	0x002c2a54 specialized closure #1 in >>> infix<A, B>(_:_:) + 296 (DeferredUtils.swift:40)
12  Shared                        	0x002c551c partial apply for specialized  + 52 (DeferredUtils.swift:0)
13  Deferred                      	0x0007d9fc specialized closure #1 in Deferred.bindQueue<A>(_:f:) + 48 (Deferred.swift:94)
14  Deferred                      	0x0007ecec partial apply for closure #1 in Deferred.bindQueue<A>(_:f:) + 96 (Deferred.swift:0)
15  Deferred                      	0x0007d684 specialized closure #2 in Deferred._fill(_:assertIfFilled:) + 108 (Deferred.swift:44)
16  Deferred                      	0x0007d1fc partial apply for closure #2 in Deferred.uponQueue(_:block:) + 72 (Deferred.swift:0)
17  Deferred                      	0x0007c164 thunk for @callee_owned () -> () + 36 (Deferred.swift:0)
18  libdispatch.dylib             	0x1d5c9796 _dispatch_call_block_and_release + 10 (init.c:963)
19  libdispatch.dylib             	0x1d5d6b1c _dispatch_queue_override_invoke + 536 (inline_internal.h:2431)
20  libdispatch.dylib             	0x1d5d81b4 _dispatch_root_queue_drain + 326 (inline_internal.h:2468)
21  libdispatch.dylib             	0x1d5d800e _dispatch_worker_thread3 + 106 (queue.c:5550)
22  libsystem_pthread.dylib       	0x1d77e87c _pthread_wqthread + 1040 (pthread.c:2196)
23  libsystem_pthread.dylib       	0x1d77e45c start_wqthread + 8
Whiteboard: [Crash][ViewLater][Sync]
We are opening browser.db, finding it unopenable, and recreating it. That causes a notification to be sent and handled, and one of the outcomes is that we call `locallyResetCollections` to make sure that Sync starts over from zero.

There are several bugs here.

1. The extension causes side effects that can outlast the extension. This problem isn't actually limited to the extension! Any time we do asynchronous work in a handler, like after recreating a DB, we should be establishing a background task.

2. We are somehow in a situation where we need to recreate the DB. These days that should _only_ be if SQLite signals file corruption.

3. At a high level, it would be ideal if ViewLater simply didn't open the profile at all. Just write a dead-letter drop somewhere.
This is actually not related to Sync at all, except that it's some of Sync's prefs that are being flipped to zero.
Component: Sync → Data Storage
Hardware: Other → All
Whiteboard: [Crash][ViewLater][Sync] → [Crash][ViewLater]
Priority: -- → P3
Flags: needinfo?(briangustin410)
Severity: normal → S3

Clear a needinfo that is pending on an inactive user.

Inactive users most likely will not respond; if the missing information is essential and cannot be collected another way, the bug maybe should be closed as INCOMPLETE.

For more information, please visit BugBot documentation.

Flags: needinfo?(briangustin410)
You need to log in before you can comment on or make changes to this bug.