Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Getting a DatabaseException on startup: (database is locked (code 5 SQLITE_BUSY[5]))

Aperta
#429 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
dart, flutter, sqlite

Direzione di ricerca

Riproduci il fallimento del primo caricamento su Android con la versione 3.3.1, quindi parti da CacheObjectProvider.open in package:flutter_cache_manager/src/storage/cache_info_repositories/cache_object_provider.dart e da CacheStore._getCacheDataFromDatabase in cache_store.dart. Segui il percorso BEGIN EXCLUSIVE attraverso sqflite e determina perché il database della cache è bloccato durante l’avvio; il lavoro è completato quando il primo caricamento apre la cache senza un’eccezione SQLITE_BUSY non gestita.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

🐛 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

Lingua principale
Dart
Stelle
810
Fork
510
Merge medio
2g 2h
PR unite (30g)
11

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Baseflow/flutter_cache_manager

Tutte le issue di Baseflow/flutter_cache_manager

Issue simili

Altre issue su Dart

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.