Baseflow / Baseflow/flutter_cache_manager
SqfliteDatabaseException attempt to write a readonly database (code 1032 SQLITE_READONLY_DBMOVED[1032]))
- Ngôn ngữ chính
- Dart
- Star
- 809
- Fork
- 510
- Merge trung bình
- 6 phút
- Pull request đã merge (30 ngày)
- 1
Mô tả
## 🐛 Bug Report
When using the flutter_cache_manager within Dart 2.15 within Flutter 2 I get sometime this Fail with SQLite.
Error:
SqfliteDatabaseException
DatabaseException(attempt to write a readonly database (code 1032 SQLITE_READONLY_DBMOVED[1032])) sql 'UPDATE cacheObject SET url = ?, key = ?, relativePath = ?, eTag = ?, validTill = ?, touched = ?, length = ?, _id = ? WHERE _id = ?' args [https://asdf.de/img/start_aktion-1_mobil-opti...., https://asdf.de/img/start_aktion-1_mobil-opti...., 57dcb0d0-79e7-11ec-bb36-436c12859413.png, W/"16304a-17dc2bf19ff", 1643284306013, 1642679987235, 1454154, 1, 1]
### Expected behavior
I would like to have a non throwing Error behaviour with the Cache Manager.
### Reproduction steps
Call within InitState method something like this (async):
mainProvider.retrieveStartPageData(mta).then((value) async {
if (value != null) {
if (mainProvider.myHi.length > 0) {
for (var headerImage in mainProvider.myHi) {
await DefaultCacheManager().getSingleFile(
'${Env.value!.imgUrl}${headerImage.imageMobile}');
}
}
}
});
### Configuration
Dart: 2.15
Flutter 2.5
**Platform:**
- [x] :iphone: iOS
- [x] :robot: Android
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện các lệnh gọi bất đồng bộ DefaultCacheManager().getSingleFile từ initState trên iOS và Android với các phiên bản Dart và Flutter đã nêu, sau đó truy vết thao tác cập nhật SQLite phát ra SQLITE_READONLY_DBMOVED. Hoàn thành khi đã hiểu được lỗi xảy ra không liên tục, cache manager không còn ném ngoại lệ trong kịch bản được báo cáo và đã bổ sung kiểm thử hồi quy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- dart, flutter, sqlite
- Lĩnh vực
- databases, mobile-dev
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 35/100