- Create a file with a significant amount of placeholder text.
- Create a bunch of files each named with a word in the large file. (To amplify the problem, make folders with copies of the word files.)
- In the “Outgoing links” view, expand the “Unlinked mentions” header. (The view doesn’t need to be visible after this.)
- Open the large file, make a minor edit, then wait a second for autosave to kick in. Repeat a bunch of times.
A prepared MRE vault is attached that completes steps 1-3.
Did you follow the troubleshooting guide? [Y/N]
While it may be higher due to all the references, the
render thread’s memory usage remains stable across autosaves.
Depending on the amount of unlinked mentions, the
render thread leaks some memory on every autosave. This can quickly add up and invoke the OOM killer. (In my case that spurred me to investigate this, this was ~80MB each time. This adds up to gigabytes in just a few minutes.) When the
render thread is killed, the window freezes, requiring a reopen.
From the MRE vault:
SYSTEM INFO: Obsidian version: v1.4.14 Installer version: v1.4.14 Operating system: #1 SMP PREEMPT_DYNAMIC Thu Aug 4 20:55:20 UTC 2022 5.18.16-surface Login status: not logged in Insider build toggle: off Live preview: on Legacy editor: off Base theme: dark Community theme: none Snippets enabled: 0 Restricted mode: on RECOMMENDATIONS: none
Memleak MRE.zip (36.4 KB)
$ obsidian 2023-10-10 21:32:54 Loading main app package /opt/Obsidian/resources/obsidian.asar Updates disabled. xdg-settings: default-url-scheme-handler not implemented for xfce MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0 sendToFrame() failed: Error: Render frame was disposed before WebFrameMain could be accessed Attempting to call a function in a renderer window that has been closed or released. Function provided here: app.js:1:1278424 Remote event names: blur, focus
The backlinks plugin could have a similar leak, but I haven’t tested this.