From 173bee600173c366ba79bb87f9deb004eef910b0 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Mon, 11 Dec 2023 22:30:11 +0530 Subject: [PATCH 1/3] fix localOnly stuck in loop --- apps/photos/src/services/download/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/photos/src/services/download/index.ts b/apps/photos/src/services/download/index.ts index 5a7c93672..a25f1ab67 100644 --- a/apps/photos/src/services/download/index.ts +++ b/apps/photos/src/services/download/index.ts @@ -211,7 +211,7 @@ class DownloadManagerImpl { this.thumbnailObjectURLPromises.set(file.id, thumbURLPromise); } let thumb = await this.thumbnailObjectURLPromises.get(file.id); - if (!thumb) { + if (!thumb && !localOnly) { this.thumbnailObjectURLPromises.delete(file.id); thumb = await this.getThumbnailForPreview(file, localOnly); } From 1ff0de34a4d94f46a67c46e4aba360830c947cc3 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Wed, 13 Dec 2023 12:24:50 +0530 Subject: [PATCH 2/3] add runMLSyncJob error logging --- .../services/machineLearning/mlWorkManager.ts | 58 ++++++++++--------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/apps/photos/src/services/machineLearning/mlWorkManager.ts b/apps/photos/src/services/machineLearning/mlWorkManager.ts index 98a21984c..f6910f8a4 100644 --- a/apps/photos/src/services/machineLearning/mlWorkManager.ts +++ b/apps/photos/src/services/machineLearning/mlWorkManager.ts @@ -201,35 +201,39 @@ class MLWorkManager { } private async runMLSyncJob(): Promise { - // TODO: skipping is not required if we are caching chunks through service worker - // currently worker chunk itself is not loaded when network is not there - if (!navigator.onLine) { - addLogLine( - 'Skipping ml-sync job run as not connected to internet.' - ); - return { - shouldBackoff: true, - mlSyncResult: undefined, + try { + // TODO: skipping is not required if we are caching chunks through service worker + // currently worker chunk itself is not loaded when network is not there + if (!navigator.onLine) { + addLogLine( + 'Skipping ml-sync job run as not connected to internet.' + ); + return { + shouldBackoff: true, + mlSyncResult: undefined, + }; + } + + const token = getToken(); + const userID = getUserID(); + const jobWorkerProxy = await this.getSyncJobWorker(); + + const mlSyncResult = await jobWorkerProxy.sync(token, userID); + + // this.terminateSyncJobWorker(); + const jobResult: MLSyncJobResult = { + shouldBackoff: + !!mlSyncResult.error || mlSyncResult.nOutOfSyncFiles < 1, + mlSyncResult, }; + addLogLine('ML Sync Job result: ', JSON.stringify(jobResult)); + + // TODO: redirect/refresh to gallery in case of session_expired, stop ml sync job + + return jobResult; + } catch (e) { + logError(e, 'Failed to run MLSync Job'); } - - const token = getToken(); - const userID = getUserID(); - const jobWorkerProxy = await this.getSyncJobWorker(); - - const mlSyncResult = await jobWorkerProxy.sync(token, userID); - - // this.terminateSyncJobWorker(); - const jobResult: MLSyncJobResult = { - shouldBackoff: - !!mlSyncResult.error || mlSyncResult.nOutOfSyncFiles < 1, - mlSyncResult, - }; - addLogLine('ML Sync Job result: ', JSON.stringify(jobResult)); - - // TODO: redirect/refresh to gallery in case of session_expired, stop ml sync job - - return jobResult; } public async startSyncJob() { From de5b0438c04b80b0656ad22b78739e1fc0afa596 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Wed, 13 Dec 2023 12:26:23 +0530 Subject: [PATCH 3/3] log worker error --- packages/shared/worker/comlinkWorker.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/shared/worker/comlinkWorker.ts b/packages/shared/worker/comlinkWorker.ts index 19ca3f7d7..0148bee0a 100644 --- a/packages/shared/worker/comlinkWorker.ts +++ b/packages/shared/worker/comlinkWorker.ts @@ -1,6 +1,7 @@ import { expose, Remote, wrap } from 'comlink'; import { WorkerSafeElectronClient } from '@ente/shared/electron/worker/client'; import { addLocalLog } from '@ente/shared/logging'; +import { logError } from '../sentry'; export class ComlinkWorker InstanceType> { public remote: Promise>>; @@ -12,7 +13,10 @@ export class ComlinkWorker InstanceType> { this.worker = worker; this.worker.onerror = (errorEvent) => { - console.error('Got error event from worker', errorEvent); + logError(Error(errorEvent.message), 'Got error event from worker', { + errorEvent: JSON.stringify(errorEvent), + name: this.name, + }); }; addLocalLog(() => `Initiated ${this.name}`); const comlink = wrap(this.worker);