ibireme / YYCache

High performance cache framework for iOS.
MIT License
2.37k stars 505 forks source link

YYKVStorage init error: fail to open sqlite db,请问如何解决 #118

Open MrCaiWH opened 6 years ago

MrCaiWH commented 6 years ago

2018-01-25 16:13:45.808 iKaoYan[27454:405585] -[YYKVStorage _dbExecute:] line:166 sqlite exec error (5): database is locked 2018-01-25 16:13:45.816 iKaoYan[27454:405625] -[YYKVStorage _dbExecute:] line:166 sqlite exec error (5): database is locked 2018-01-25 16:13:45.816 iKaoYan[27454:405585] -[YYKVStorage _dbExecute:] line:166 sqlite exec error (5): database is locked 2018-01-25 16:13:45.817 iKaoYan[27454:405585] YYKVStorage init error: fail to open sqlite db.

Aaron0927 commented 6 years ago

我也遇到了同样的问题,请问你是怎么解决的

MrCaiWH commented 6 years ago

@xiaoerlong 没解决,不用了,换别的方式了

Aaron0927 commented 6 years ago

@MrCaiWH 我发现问题了,我是有几个子线程同时访问就会这样

karosLi commented 6 years ago

一个线程访问也会报错

Chengruihh commented 6 years ago

遇到同样的问题-_- 初始化db就报错了。。

Aaron0927 commented 6 years ago

@Chengruihh 你看一下是不是有多个线程访问

Chengruihh commented 6 years ago

@xiaoerlong 貌似没有,只是在登录成功后保存了一下信息,还没有进入后面的逻辑。而且是很偶尔的会出现,大部分时候不出现。

atom2ueki commented 5 years ago

YYKVStorage里面说明了,这个class不是thread safe的

mzying2013 commented 4 years ago

并没有人直接使用 YYKVStorage,都是直接使用的 YYCache。但是 YYDiskCache 封装了 YYKVStorage,任然是会报上面的错误!

youngerbyte commented 3 years ago

多线程同时操作同一张表引起,尝试自己加一个全局锁试一下 https://www.jianshu.com/p/6422ae4e06c2