Getting a DatabaseException on startup: (database is locked (code 5 SQLITE_BUSY[5]))
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- dart, flutter, sqlite
- 領域
- databases, mobile-dev
調査の方向性
Android でバージョン 3.3.1 を使用して初回ロード時の失敗を再現し、その後 package:flutter_cache_manager/src/storage/cache_info_repositories/cache_object_provider.dart の CacheObjectProvider.open と cache_store.dart の CacheStore._getCacheDataFromDatabase から調査を開始してください。sqflite を通る BEGIN EXCLUSIVE の経路を追跡し、起動中にキャッシュデータベースがロックされる理由を特定してください。初回ロードで、未処理の SQLITE_BUSY 例外なしにキャッシュを開ければ完了です。
索引モデルが issue の本文から書いたものです。
説明
🐛 Bug Report
Hi, I'm having a DatabaseException on the application's first load, when it tries to setup the database for the cache. The cache stays unusable for this first load, but the second time the application is opened it can work this out and then it will continue working every time.
This is a logcat output from Android:
09-05 16:18:26.154 19280 19371 I flutter : error DatabaseException(database is locked (code 5 SQLITE_BUSY[5])) sql 'BEGIN EXCLUSIVE' args [] during open, closing...
09-05 16:18:26.165 19280 19371 E flutter : [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DatabaseException(database is locked (code 5 SQLITE_BUSY[5])) sql 'BEGIN EXCLUSIVE' args []
09-05 16:18:26.165 19280 19371 E flutter : #0 wrapDatabaseException (package:sqflite/src/exception_impl.dart:11)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #1 SqfliteDatabaseMixin.txnSynchronized (package:sqflite_common/src/database_mixin.dart:465)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #2 SqfliteDatabaseMixinExt.txnBeginTransaction (package:sqflite_common/src/database_mixin.dart:353)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #3 SqfliteDatabaseMixin.beginTransaction (package:sqflite_common/src/database_mixin.dart:719)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #4 SqfliteDatabaseMixinExt._txnTransaction (package:sqflite_common/src/database_mixin.dart:330)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #5 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:33)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #6 SqfliteDatabaseMixin.txnSynchronized (package:sqflite_common/src/database_mixin.dart:490)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #7 SqfliteDatabaseMixin.doOpen (package:sqflite_common/src/database_mixin.dart:939)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #8 SqfliteDatabaseOpenHelper.openDatabase (package:sqflite_common/src/database.dart:46)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #9 SqfliteDatabaseFactoryMixin.openDatabase.<anonymous closure> (package:sqflite_common/src/factory_mixin.dart:110)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #10 ReentrantLock.synchronized.<anonymous closure> (package:synchronized/src/reentrant_lock.dart:37)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #11 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:33)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #12 CacheObjectProvider.open (package:flutter_cache_manager/src/storage/cache_info_repositories/cache_object_provider.dart:30)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
09-05 16:18:26.165 19280 19371 E flutter : #13 CacheStore._getCacheDataFromDatabase (package:flutter_cache_manager/src/cache_store.dart:112)
09-05 16:18:26.165 19280 19371 E flutter : <asynchronous suspension>
At the moment I only tried this on Android, and I'm using version 3.3.1.
My first guess is that some other library may be using Sqlite at the same time, or some other thing like that, but anyways that doesn't seems to be a good reason to crash. Is this issue known?
Thank you
- 主要言語
- Dart
- スター
- 810
- フォーク
- 510
- 平均マージ
- 2日 2時間
- マージ済み PR(30日)
- 11
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Baseflow/flutter_cache_manager のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Baseflow/flutter_cache_manager#450 · コメント 9 件 · リアクション 8 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 48/100
Baseflow/flutter_cache_manager#507 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 30/100
Baseflow/flutter_cache_manager#501 · コメント 1 件 · リアクション 3 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
Baseflow/flutter_cache_manager#500 · コメント 1 件 · リアクション 3 件 ·
Baseflow/flutter_cache_manager の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
AOSSIE-Org/Ell-ena#332 ·
-
ui/ux
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
HemantKArya/BloomeeTunes#489 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
AppFlowy-IO/appflowy-editor#1241 ·
-
error オープン
難易度 1/5 1時間未満 初心者へのやさしさ 85/100