Baseflow / Baseflow/flutter_cache_manager

DatabaseException(attempt to re-open an already-closed object)

未关闭
#427 0 条评论 3 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Dart
星标
809
派生
510
平均合并
6 分钟
30 天内合并 PR
1

描述

## 🐛 Bug Report
Getting DatabaseException(attempt to re-open an already-closed object
flutter_cache_manager(v3.3.0) is indirectly used in our app because we use CachedNetworkImageProvider to display images in our app

We get the following exception in our app from some of our customer devices. We do not have repro steps. We are using v3.3.0. flutter_cache_manager is indirectly used in our app because we use CachedNetworkImageProvider

`DatabaseException(attempt to re-open an already-closed object: SQLiteDatabase: /data/user/0/ourapp_bundle_removed/files/libCachedImageData.db) sql 'SELECT * FROM cacheObject WHERE key = ?' args [https://cdnimages.ourappdomain_removed.com/3fe587d7369f7f0784881...]
Stack trace:
#0 wrapDatabaseException (package:sqflite/src/exception_impl.dart:11)

#1 SqfliteDatabaseMixin.txnRawQuery. (package:sqflite_common/src/database_mixin.dart:559)

#2 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:33)

#3 SqfliteDatabaseMixin.txnSynchronized (package:sqflite_common/src/database_mixin.dart:490)

#4 CacheObjectProvider.get (package:flutter_cache_manager/src/storage/cache_info_repositories/cache_object_provider.dart:110)

#5 CacheStore._getCacheDataFromDatabase (package:flutter_cache_manager/src/cache_store.dart:116)
`
### Expected behavior
This alert does not occur
### Reproduction steps
N/A
### Configuration
v3.3.0 of flutter_cache_manager
**Flutter Version:** 3.3.10

**Platform:**
- [ ] :iphone: iOS
- [ X] :robot: Android

贡献指南

打开贡献指南

调研方向

首先从 package:flutter_cache_manager/src/storage/cache_info_repositories/cache_object_provider.dart:110 中的 CacheObjectProvider.get 开始,沿着 cache_store.dart:116 中的 CacheStore._getCacheDataFromDatabase 和 sqflite 堆栈追踪 Android 失败。尽管报告没有复现步骤,也要复现或隔离数据库已关闭的情况;完成标准是缓存查找期间不再发生异常。

由索引模型根据 Issue 内容生成。

评估

技术栈
android, dart, sqlite
领域
databases, mobile-dev
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。