Baseflow / Baseflow/flutter_cache_manager

SqfliteDatabaseException attempt to write a readonly database (code 1032 SQLITE_READONLY_DBMOVED[1032]))

オープン
#359 コメント 2 件 リアクション 4 件 担当者 0 名 GitHub で見る
主要言語
Dart
スター
809
フォーク
510
平均マージ
6分
マージ済み PR(30日)
1

説明

## 🐛 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

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start by reproducing the async DefaultCacheManager().getSingleFile calls from initState on iOS and Android with the stated Dart and Flutter versions, then trace the SQLite update that emits SQLITE_READONLY_DBMOVED. Done means the intermittent failure is understood and the cache manager no longer throws in the reported scenario, with regression coverage added.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
dart, flutter, sqlite
領域
databases, mobile-dev
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。