Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OneDrive: Sync broken for resources in some cases #7986

Closed
personalizedrefrigerator opened this issue Mar 28, 2023 · 0 comments · Fixed by #7987
Closed

OneDrive: Sync broken for resources in some cases #7986

personalizedrefrigerator opened this issue Mar 28, 2023 · 0 comments · Fixed by #7987
Labels
bug It's a bug

Comments

@personalizedrefrigerator
Copy link
Collaborator

Environment

Joplin version: 89fc5e1
Platform: Linux
OS specifics: Ubuntu 22.10

Steps to reproduce

  1. Set sync target to OneDrive
  2. Upload several large resources
  3. Go to settings > synchronization > delete local data and re-download from sync target
  4. Close Joplin while it's downloading a resource
  5. Re-open Joplin
  6. Repeat steps 4 and 5 if resources are still able to be downloaded

Describe what you expected to happen

Resources should be downloaded, no error should show up in the developer tools.

Logfile

Relevant portion:

SyncTargetOneDrive.ts:110 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'setAccountProperties')
    at SyncTargetOneDrive.<anonymous> (SyncTargetOneDrive.ts:110:13)
    at Generator.next (<anonymous>)
    at /home/builder/Docume…getOneDrive.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/builder/Docume…getOneDrive.js:4:12)
    at SyncTargetOneDrive.initFileApi (SyncTargetOneDrive.ts:101:26)
    at SyncTargetOneDrive.<anonymous> (BaseSyncTarget.ts:93:30)
    at Generator.next (<anonymous>)
    at /home/builder/Docume…eSyncTarget.js:8:71
    at new Promise (<anonymous>)

Full log:

/home/builder/Documents/joplin/packages/app-desktop/node_modules/react-dom/cjs/react-dom.development.js:29840 Download the React DevTools for a better development experience: https://reactjs.org/link/react-devtoolsYou might need to use a local HTTP server (instead of file://): https://reactjs.org/link/react-devtools-faq
main-html.js:49 Environment: dev
main-html.js:49 appId: net.cozic.joplindev-desktop
main-html.js:49 appType: desktop
main-html.js:45 Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security
  Policy set or a policy with "unsafe-eval" enabled. This exposes users of
  this app to unnecessary security risks.

For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.
output.warn @ main-html.js:45
main-html.js:49 16:41:03: App: Profile directory: /home/builder/.config/joplindev-desktop
main-html.js:49 16:41:03: App: Root profile directory: /home/builder/.config/joplindev-desktop
main-html.js:49 16:41:03: Database was open successfully
main-html.js:49 16:41:03: Checking for database schema update...
main-html.js:49 16:41:03: Current database version Object
main-html.js:49 16:41:03: Upgrading database from version 42
main-html.js:49 16:41:03: New version: 42. Previously recorded version: 42
main-html.js:49 16:41:03: KeychainService: checking if keychain supported
main-html.js:49 16:41:03: KeychainService: check was already done - skipping. Supported: 0
main-html.js:49 16:41:03: e2ee/utils: Master password is not set - trying to get it from the active master key...
main-html.js:49 16:41:03: handleSyncStartupOperation: Processing operation: 0
main-html.js:49 16:41:03: App: Client ID: 16cd4b7454734dc9a4f31a99fe5b991e
main-html.js:49 16:41:03: models/Setting: Applying default migrations...
main-html.js:49 16:41:03: e2ee/utils: Trying to load 0 master keys...
main-html.js:49 16:41:03: e2ee/utils: Loaded master keys: 0
main-html.js:49 16:41:03: ResourceFetcher: Auto-add resources: Mode: always
main-html.js:49 16:41:03: ResourceFetcher: Auto-added resources: 10
main-html.js:49 16:41:03: App: "syncInfoCache" was changed - setting up encryption related code
main-html.js:49 16:41:03: e2ee/utils: Trying to load 0 master keys...
main-html.js:49 16:41:03: e2ee/utils: Loaded master keys: 0
main-html.js:49 16:41:03: Scheduling sync operation... 10000
main-html.js:49 16:41:03: Setting up recurrent sync with interval 3600
main-html.js:49 16:41:03: Recurrent sync operation DISABLED!!!
main-html.js:49 16:41:03: App: "syncInfoCache" was changed - setting up encryption related code
main-html.js:49 16:41:03: e2ee/utils: Trying to load 0 master keys...
main-html.js:49 16:41:03: e2ee/utils: Loaded master keys: 0
main-html.js:49 16:41:03: Scheduling sync operation... 10000
main-html.js:49 16:41:03: App: "syncInfoCache" was changed - setting up encryption related code
main-html.js:49 16:41:03: e2ee/utils: Trying to load 0 master keys...
main-html.js:49 16:41:03: e2ee/utils: Loaded master keys: 0
main-html.js:49 16:41:03: Scheduling sync operation... 10000
main-html.js:49 16:41:03: app.start: doing regular boot
main-html.js:49 16:41:03: KeymapService: Loading keymap from file: /home/builder/.config/joplindev-desktop/keymap-desktop.json
main-html.js:49 16:41:03: App: Refreshing notes: null null
main-html.js:49 16:41:03: App: "syncInfoCache" was changed - setting up encryption related code
main-html.js:49 16:41:03: e2ee/utils: Trying to load 0 master keys...
main-html.js:49 16:41:03: e2ee/utils: Loaded master keys: 0
main-html.js:49 16:41:03: Scheduling sync operation... 10000
main-html.js:49 16:41:03: Setting up recurrent sync with interval 3600
main-html.js:49 16:41:03: Recurrent sync operation DISABLED!!!
main-html.js:49 16:41:03: App: "syncInfoCache" was changed - setting up encryption related code
main-html.js:49 16:41:03: e2ee/utils: Trying to load 0 master keys...
main-html.js:49 16:41:03: e2ee/utils: Loaded master keys: 0
main-html.js:49 16:41:03: Scheduling sync operation... 10000
main-html.js:49 16:41:03: App: "syncInfoCache" was changed - setting up encryption related code
main-html.js:49 16:41:03: e2ee/utils: Trying to load 0 master keys...
main-html.js:49 16:41:03: e2ee/utils: Loaded master keys: 0
main-html.js:49 16:41:03: Scheduling sync operation... 10000
main-html.js:49 16:41:03: Updating all notifications...
main-html.js:49 16:41:03: Garbage collecting alarms...
main-html.js:49 16:41:03: RevisionService: runInBackground: Starting background service with revision collection interval 600000
main-html.js:49 16:41:03: App: Refreshing notes: 2 4502398eeceb4e349b589c717566fa82
main-html.js:49 16:41:03: defaultPluginsUtils: Could not find default plugins' directory: /home/builder/Documents/joplin/packages/app-desktop/build/defaultPlugins - skipping installation.
main-html.js:49 16:41:03: PluginService: Loading plugin from /home/builder/Documents/joplin-plugin-freehand-drawing
main-html.js:49 16:41:03: SpellCheckerServiceDriverNative: Set effective languages to "en-US"
main-html.js:49 16:41:03: Loading existing note 39f21a67aaac498d8b55d89621082500
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.plugins.register {onStart: ƒ}
main-html.js:49 16:41:04: joplin.plugins: Starting plugin: io.github.personalizedrefrigerator.js-draw
main-html.js:49 16:41:04: Loaded note: {id: '39f21a67aaac498d8b55d89621082500', parent_id: '4502398eeceb4e349b589c717566fa82', title: 'Test 2', body: '![Freehand Drawing.svg](:/6e8608d6cca1442593b211c3… Drawing.svg](:/cfce41edd5054a35b878223cc913aa00)', created_time: 1664340012282, …}
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.views.dialogs.create jop-freehand-drawing-jsdraw-plugin-jsDrawDialog
main-html.js:49 16:41:04: DecryptionWorker: cannot start because no master key is currently loaded.
SyncTargetOneDrive.ts:110 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'setAccountProperties')
    at SyncTargetOneDrive.<anonymous> (SyncTargetOneDrive.ts:110:13)
    at Generator.next (<anonymous>)
    at /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:4:12)
    at SyncTargetOneDrive.initFileApi (SyncTargetOneDrive.ts:101:26)
    at SyncTargetOneDrive.<anonymous> (BaseSyncTarget.ts:93:30)
    at Generator.next (<anonymous>)
    at /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:8:71
    at new Promise (<anonymous>)
(anonymous) @ SyncTargetOneDrive.ts:110
(anonymous) @ /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:4
initFileApi @ SyncTargetOneDrive.ts:101
(anonymous) @ BaseSyncTarget.ts:93
(anonymous) @ /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:4
fileApi @ BaseSyncTarget.ts:91
(anonymous) @ BaseApplication.ts:916
(anonymous) @ ResourceFetcher.ts:60
(anonymous) @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:4
fileApi @ ResourceFetcher.ts:59
(anonymous) @ ResourceFetcher.ts:164
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
Promise.then (async)
step @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:7
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
Promise.then (async)
step @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:7
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
SyncTargetOneDrive.ts:110 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'setAccountProperties')
    at SyncTargetOneDrive.<anonymous> (SyncTargetOneDrive.ts:110:13)
    at Generator.next (<anonymous>)
    at /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:4:12)
    at SyncTargetOneDrive.initFileApi (SyncTargetOneDrive.ts:101:26)
    at SyncTargetOneDrive.<anonymous> (BaseSyncTarget.ts:93:30)
    at Generator.next (<anonymous>)
    at /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:8:71
    at new Promise (<anonymous>)
(anonymous) @ SyncTargetOneDrive.ts:110
(anonymous) @ /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:4
initFileApi @ SyncTargetOneDrive.ts:101
(anonymous) @ BaseSyncTarget.ts:93
(anonymous) @ /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:4
fileApi @ BaseSyncTarget.ts:91
(anonymous) @ BaseApplication.ts:916
(anonymous) @ ResourceFetcher.ts:60
(anonymous) @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:4
fileApi @ ResourceFetcher.ts:59
(anonymous) @ ResourceFetcher.ts:164
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
Promise.then (async)
step @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:7
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
Promise.then (async)
step @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:7
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
SyncTargetOneDrive.ts:110 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'setAccountProperties')
    at SyncTargetOneDrive.<anonymous> (SyncTargetOneDrive.ts:110:13)
    at Generator.next (<anonymous>)
    at /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:4:12)
    at SyncTargetOneDrive.initFileApi (SyncTargetOneDrive.ts:101:26)
    at SyncTargetOneDrive.<anonymous> (BaseSyncTarget.ts:93:30)
    at Generator.next (<anonymous>)
    at /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:8:71
    at new Promise (<anonymous>)
(anonymous) @ SyncTargetOneDrive.ts:110
(anonymous) @ /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/SyncTargetOneDrive.js:4
initFileApi @ SyncTargetOneDrive.ts:101
(anonymous) @ BaseSyncTarget.ts:93
(anonymous) @ /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/BaseSyncTarget.js:4
fileApi @ BaseSyncTarget.ts:91
(anonymous) @ BaseApplication.ts:916
(anonymous) @ ResourceFetcher.ts:60
(anonymous) @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:8
__awaiter @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:4
fileApi @ ResourceFetcher.ts:59
(anonymous) @ ResourceFetcher.ts:164
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
Promise.then (async)
step @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:7
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
Promise.then (async)
step @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:7
fulfilled @ /home/builder/Documents/joplin/packages/lib/services/ResourceFetcher.js:5
processTicksAndRejections @ node:internal/process/task_queues:96
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.commands.register {name: 'jop-freehand-drawing-jsdraw-plugin-insertDrawing', label: 'Insert Drawing', iconName: 'fas fa-pen-alt', execute: ƒ}
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.views.toolbarButtons.create jop-freehand-drawing-jsdraw-plugin-insertDrawing jop-freehand-drawing-jsdraw-plugin-insertDrawing editorToolbar
main-html.js:49 16:41:04: models/Setting: Saving settings...
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.views.menuItems.create jop-freehand-drawing-jsdraw-plugin-insertDrawingToolMenuBtn jop-freehand-drawing-jsdraw-plugin-insertDrawing edit
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.commands.register {name: 'jop-freehand-drawing-jsdraw-plugin-restoreAutosave', label: 'Restore from autosaved drawing', iconName: 'fas fa-floppy-disk', execute: ƒ}
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.commands.register {name: 'jop-freehand-drawing-jsdraw-plugin-deleteAutosave', label: 'Delete all autosaved drawings', iconName: 'fas fa-trash-can', execute: ƒ}
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.contentScripts.register markdownItPlugin jsdraw__markdownIt_editDrawingButton ./contentScripts/markdownIt.js
main-html.js:49 16:41:04: Plugin: "io.github.personalizedrefrigerator.js-draw": Registered content script: markdownItPlugin: jsdraw__markdownIt_editDrawingButton: /home/builder/Documents/joplin-plugin-freehand-drawing/dist/contentScripts/markdownIt.js
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.contentScripts.register codeMirrorPlugin jsdraw__codeMirrorContentScriptId ./contentScripts/codeMirror.js
main-html.js:49 16:41:04: Plugin: "io.github.personalizedrefrigerator.js-draw": Registered content script: codeMirrorPlugin: jsdraw__codeMirrorContentScriptId: /home/builder/Documents/joplin-plugin-freehand-drawing/dist/contentScripts/codeMirror.js
main-html.js:49 16:41:04: PluginRunner: Got message (3): joplin.contentScripts.onMessage jsdraw__markdownIt_editDrawingButton (...args) => __awaiter(this, void 0, void 0, function* () {
            const callbackId = `cb_${pluginId}_${Date.now()}_${callbackIndex++}`;
            const promise = new Promise((resolve, reject)…
main-html.js:49 16:41:04: joplin.plugins: Finished running onStart handler: io.github.personalizedrefrigerator.js-draw (Took 559ms)
main-html.js:49 Got ipc-message: noteRenderComplete undefined
DevTools failed to load source map: Could not parse content for file:///home/builder/Documents/joplin/packages/app-desktop/gui/note-viewer/pluginAssets/mermaid/mermaid.min.js.map: Unexpected end of JSON input
main-html.js:49 16:41:05: models/Setting: Settings have been saved.
main-html.js:49 16:41:05: models/Setting: Saving settings...
main-html.js:49 16:41:05: models/Setting: Settings have been saved.
main-html.js:49 16:41:07: RevisionService: maintenance: Starting...
main-html.js:49 16:41:07: RevisionService: maintenance: Service is enabled
main-html.js:49 16:41:07: RevisionService: collectRevisions: Created revisions for 0 notes
main-html.js:49 16:41:08: RevisionService: maintenance: Done in 473ms
main-html.js:49 16:41:13: SearchEngine: Updating FTS table...
main-html.js:49 16:41:13: Preparing scheduled sync
main-html.js:49 CALLED SyncTargetOneDrive.api(): Making new API
main-html.js:49 16:41:13: Saving updated OneDrive auth.
main-html.js:49 DONE!!!
main-html.js:49 16:41:13: SearchEngine: Updated FTS table in 2ms. Inserted: 0. Deleted: 0
main-html.js:49 16:41:13: Starting scheduled sync
main-html.js:49 16:41:13: Synchronizer: Sync: starting: Starting synchronisation to target 3... supportsAccurateTimestamp = false; supportsMultiPut = false [1680046873735]
main-html.js:49 16:41:13: Synchronizer: Indexing resources...
main-html.js:49 16:41:13: ResourceService::indexNoteResources: Start
main-html.js:49 16:41:13: models/Setting: Saving settings...
main-html.js:49 16:41:13: models/Setting: Settings have been saved.
main-html.js:49 16:41:14: ResourceService::indexNoteResources: Completed
main-html.js:49 16:41:14: models/Folder: updateFolderShareIds: {shareUpdateCount: 0, unshareUpdateCount: 0}
main-html.js:49 16:41:14: models/Folder: updateNoteShareIds: notes to update: 0
main-html.js:49 16:41:14: FileApi: get /drive/root:/Apps/JoplinDev/info.json
main-html.js:49 16:41:14: Synchronizer: Sync target remote info: SyncInfo {version_: 3, masterKeys_: Array(0), e2ee_: {…}, activeMasterKeyId_: {…}, ppk_: {…}}
main-html.js:49 16:41:14: Synchronizer: Sync target is already setup - checking it...
main-html.js:49 16:41:14: Synchronizer: Sync target local info: SyncInfo {version_: 3, masterKeys_: Array(0), e2ee_: {…}, activeMasterKeyId_: {…}, ppk_: {…}}
main-html.js:49 16:41:14: FileApi: list /drive/root:/Apps/JoplinDev
main-html.js:49 16:41:14: FileApi: put /drive/root:/Apps/JoplinDev/temp/timeCheck589508.txt null
main-html.js:49 16:41:14: FileApi: stat /drive/root:/Apps/JoplinDev/temp/timeCheck589508.txt
main-html.js:49 16:41:15: FileApi: delete /drive/root:/Apps/JoplinDev/temp/timeCheck589508.txt
main-html.js:49 16:41:15: FileApi: put /drive/root:/Apps/JoplinDev/locks/1_1_16cd4b7454734dc9a4f31a99fe5b991e.json null
main-html.js:49 16:41:15: FileApi: list /drive/root:/Apps/JoplinDev
main-html.js:49 16:41:15: FileApi: delta /drive/root:/Apps/JoplinDev
main-html.js:49 16:41:16: Synchronizer: BasicDelta: Report: {"timestamp":1680038231846,"older":384,"newer":0,"equal":1}
main-html.js:49 16:41:16: Synchronizer: Sync: fetchingTotal: Fetching delta items from sync target
main-html.js:49 16:41:16: FileApi: delete /drive/root:/Apps/JoplinDev/locks/1_1_16cd4b7454734dc9a4f31a99fe5b991e.json
main-html.js:49 16:41:17: Synchronizer: Sync: finished: Synchronisation finished [1680046873735]
main-html.js:49 16:41:17: Synchronizer: Operations completed: 
main-html.js:49 16:41:17: Synchronizer: fetchingTotal: -
main-html.js:49 16:41:17: Synchronizer: Total folders: 3
main-html.js:49 16:41:17: Synchronizer: Total notes: 7
main-html.js:49 16:41:17: Synchronizer: Total resources: 113
main-html.js:49 16:41:17: Sync has finished and note has never been changed - reloading it
main-html.js:49 16:41:17: Setting up recurrent sync with interval 3600
main-html.js:49 16:41:17: Recurrent sync operation DISABLED!!!
main-html.js:49 16:41:17: models/Setting: Saving settings...
main-html.js:49 16:41:17: models/Setting: Settings have been saved.
main-html.js:49 16:41:18: DecryptionWorker: cannot start because no master key is currently loaded.
main-html.js:49 16:41:33: ResourceService::indexNoteResources: Start
main-html.js:49 16:41:33: ResourceService::indexNoteResources: Completed
main-html.js:49 16:41:33: ResourceService::deleteOrphanResources:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug It's a bug
Projects
None yet
1 participant