[QM_TRY] Add propagation path for FATAL errors
Categories
(Core :: Storage: Quota Manager, enhancement)
Tracking
()
People
(Reporter: jstutte, Unassigned)
References
(Blocks 21 open bugs)
Details
The monitoring of failures confirms, that there are some error conditions we cannot meaningful recover from and should inform the user about.
As a first step towards this direction, we want to introduce a FATAL
failure level, that should let fall through the associated error along the propagation path up to our highest level of abstraction without further mitigation attempts.
To motivate this better, we will also collect here error conditions encountered so far that most probably need this.
Reporter | ||
Comment 1•4 years ago
|
||
Clients | Sessions | Hits | Anchor | Stack |
---|---|---|---|---|
1 | 1 | 1 | dom/quota/ActorsParent.cpp:QuotaManager::InitializeRepository | dom/quota/ActorsParent.cpp#4735:NS_ERROR_FILE_FS_CORRUPTED <- dom/quota/ActorsParent.cpp#4758:NS_ERROR_FILE_FS_CORRUPTED <- dom/quota/ActorsParent.cpp#4222:NS_ERROR_FILE_FS_CORRUPTED <- dom/quota/ActorsParent.cpp#6221:NS_ERROR_FILE_FS_CORRUPTED |
Reporter | ||
Comment 2•4 years ago
|
||
Clients | Sessions | Hits | Anchor | Stack |
---|---|---|---|---|
3 | 5 | 5 | dom/quota/ActorsParent.cpp:GetBinaryInputStream | dom/quota/ActorsParent.cpp#2582:WIN32(0x570) <- dom/quota/ActorsParent.cpp#4555:WIN32(0x570) <- dom/quota/ActorsParent.cpp#4628:WIN32(0x570) |
Reporter | ||
Comment 4•4 years ago
|
||
Clients | Sessions | Hits | Anchor | Stack |
---|---|---|---|---|
1 | 1 | 1 | QuotaCommon.h#1379:NS_ERROR_FILE_FS_CORRUPTED <- ... |
Reporter | ||
Comment 6•4 years ago
|
||
Clients | Sessions | Hits | Anchor | Stack |
---|---|---|---|---|
30 | 85 | 287 | dom/quota/QuotaCommon.h:CollectEachFile | QuotaCommon.h#1177:WIN32(0x570) |
Now mapped to NS_ERROR_FILE_FS_CORRUPTED
.
Reporter | ||
Comment 7•4 years ago
|
||
Now mapped to NS_ERROR_FILE_FS_CORRUPTED
.
Reporter | ||
Comment 8•4 years ago
|
||
Another NS_ERROR_FILE_FS_CORRUPTED
Reporter | ||
Comment 9•4 years ago
|
||
Clients | Sessions | Hits | Anchor | Stack |
---|---|---|---|---|
1 | 1 | 1 | dom/quota/ActorsParent.cpp:QuotaManager::CopyLocalStorageArchiveFromWebAppsStore | dom/quota/ActorsParent.cpp#5556:NS_ERROR_FILE_NO_DEVICE_SPACE <- dom/quota/ActorsParent.cpp#5844:NS_ERROR_FILE_NO_DEVICE_SPACE <- dom/quota/ActorsParent.cpp#5848:NS_ERROR_FILE_NO_DEVICE_SPACE |
Reporter | ||
Comment 10•4 years ago
|
||
Clients | Sessions | Hits | Anchor | Stack |
---|---|---|---|---|
2 | 2 | 2 | dom/quota/ActorsParent.cpp:EnsureDirectory | dom/quota/ActorsParent.cpp#2401:WIN32(0x70) <- dom/quota/ActorsParent.cpp#4634:WIN32(0x70) <- dom/quota/ActorsParent.cpp#4224:WIN32(0x70) <- dom/quota/ActorsParent.cpp#6223:WIN32(0x70) |
Reporter | ||
Comment 11•4 years ago
|
||
We should consider all NS_ERROR_FILE_FS_CORRUPTED
instances, as those in D113518.
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Updated•4 years ago
|
Comment 12•4 years ago
•
|
||
One thing that would be great to have here is a list of impacted public web platform APIs and then for each of those APIs detail:
- What the respective specification says a fatal I/O error should mean for this API. (If it doesn't say anything, let's file an issue to discuss with others and link that instead.)
- What our implementation will do. (It might take a while for the specification to be updated and it seems useful to capture what we do in the interim or in case we decide not to prioritize aligment.)
(One example that came up (unsure if theoretical) is that the window.indexedDB
getter might have to handle a fatal I/O error in a special way whereby it still returns an object, but operations on that object end up failing. As the getter itself ought not to throw per the specification and always return the same object, but if an implementation lazily creates that object it might erroneously decide to surface a fatal I/O error during creation.)
Updated•3 years ago
|
Updated•2 years ago
|
Description
•