浏览器IndexedDB模块损坏及解决办法
表现
提示错误码:
UnknownError Internal error opening backing store for indexedDB.open.
indexedDB
无法展开。
复现方式
进入以下路径
Mac
C:\用户\xxx\AppData\Local\Google\Chrome\User Data\Default\IndexedDB
Windows
/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/
可以看到很多带域名的文件夹
进入某个要测试的域名下的leveldb,将里面的MANIFEST-000001 改成其他名字即可复现
解决方案
- 通过按F12或者右键检查的方式打开控制台
- 找到应用(Application),找到存储(Storage)
- 按图中步骤操作
原因
直接原因
CURRENT文件里面的内容与当前文件夹包含的MANIFEST-000001 文件名称不匹配所致
底层原因
一些未知原因导致浏览器的levelDB在处理这个MANIFEST的读写过程中出现异常,属于浏览器行为。
参考文章
LevelDB源码解析11.文件序号
【深入浅出leveldb】文件类型与文件名