fix: cleanup logger DB in isolates (#20730)

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
shenlong 2025-08-07 03:27:17 +05:30 committed by GitHub
parent 68b617130a
commit 9c8c52874a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 25 additions and 28 deletions

View file

@ -47,14 +47,11 @@ abstract final class Bootstrap {
);
}
static Future<void> initDomain(Isar db, {bool shouldBufferLogs = true}) async {
// load drift dbs
final loggerDb = DriftLogger();
static Future<void> initDomain(Isar db, DriftLogger logDb, {bool shouldBufferLogs = true}) async {
await StoreService.init(storeRepository: IsarStoreRepository(db));
await LogService.init(
logRepository: LogRepository(loggerDb),
logRepository: LogRepository(logDb),
storeRepository: IsarStoreRepository(db),
shouldBuffer: shouldBufferLogs,
);

View file

@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/services/log.service.dart';
import 'package:immich_mobile/infrastructure/repositories/logger_db.repository.dart';
import 'package:immich_mobile/providers/db.provider.dart';
import 'package:immich_mobile/providers/infrastructure/cancel.provider.dart';
import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
@ -35,7 +36,8 @@ Cancelable<T?> runInIsolateGentle<T>({
DartPluginRegistrant.ensureInitialized();
final db = await Bootstrap.initIsar();
await Bootstrap.initDomain(db, shouldBufferLogs: false);
final logDb = DriftLogger();
await Bootstrap.initDomain(db, logDb, shouldBufferLogs: false);
final ref = ProviderContainer(
overrides: [
// TODO: Remove once isar is removed
@ -57,6 +59,7 @@ Cancelable<T?> runInIsolateGentle<T>({
} finally {
try {
await LogService.I.flush();
await logDb.close();
await ref.read(driftProvider).close();
// Close Isar safely