Intermittent UI clears out - DevTools was disconnected from the page v2

Steps to reproduce

The issue is intermittent. No idea how to reproduce it for sure.

Expected result

UI doesn’t clear out and app is fully usable.

Actual result

Sometimes all over sudden, the UI clears out and becomes totally white.

If the DevTools window is open we can see DevTools was disconnected from the page error.

image

Then I have to kill the Obsidian process and start it over.

Environment

SYSTEM INFO:
Obsidian version: v1.3.4
Installer version: v1.1.9
Operating system: Windows 10 Pro 10.0.22621
Login status: logged in
Catalyst license: insider
Insider build toggle: on
Live preview: on
Legacy editor: off
Base theme: light
Community theme: none
Snippets enabled: 1
Restricted mode: off
Plugins installed: 56
Plugins enabled: 36
1: Filename Heading Sync v1.8.0
2: Custom Attachment Location v0.0.9
3: Linter v1.14.0
4: Templater v1.16.0
5: Shortcuts extender v2.2.0
6: Show Current File Path v0.5.2
7: Copy Image and URL context menu v1.5.0
8: Folder Note Core v1.3.6-unofficial
9: Recent Files v1.3.5
10: Obsidian Link Converter v0.1.5-unofficial
11: Obsidian42 - BRAT v0.7.0
12: Plaintext v0.2.0
13: Hot Reload v0.1.10
14: Obsidian Better Internal Link Inserter v1.0.0
15: Consistent attachments and links v1.0.8-unofficial
16: Sortable v0.3.1
17: Omnisearch v1.14.0
18: Code Editor Shortcuts v1.13.1
19: Advanced URI v1.35.0
20: Note aliases v1.2.0
21: Codeblock Customizer v1.1.9
22: Dataview v0.5.56
23: External Links v1.1.0
24: Another Quick Switcher v8.10.0
25: Front Matter Title v3.2.0
26: Advanced Tables v0.18.1
27: Frontmatter Links v1.2.7
28: Force note view mode v1.1.1
29: Obsidian markdown export v1.0.8
30: Smart Rename v1.0.0
31: Find orphaned files and broken links v1.9.0
32: AidenLx’s Folder Note v0.16.5
33: Better File Link v1.1.3
34: Google Calendar v1.9.14
35: Copy as HTML v1.1.1
36: Obsidian Git v2.20.0

RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.


Additional information

As this issue is intermittent, I can’t replicate it on the Sandbox vault.

I think it is an Electron failure but I can’t find anything useful in the logs.

Can anyone suggest me how to troubleshoot this issue?

moved to help.

So far the investigation is the following:

  • Set environment variables ELECTRON_ENABLE_LOGGING and ELECTRON_ENABLE_STACK_DUMPING to true
  • Run Obsidian from the console (C:\Users\UserName\AppData\Local\Obsidian\Obsidian.exe)
  • So far when I ran the app like that it stopped crashing
  • But when I ran it as usual using shortcut it crashed pretty soon
  • Going to let it go running from the console for a while until it crashes again, so I can see the crash report in the console.

But honestly, I think Obsidian’s developers have to catch such Electron crashes and at least record them in the log file…

Captured the following error

[16316:0528/185258.109:ERROR:CONSOLE(6)] "console.assert", source: devtools://devtools/bundled/panels/console/console.js (6)
 1: 00007FF7D9CB8126 void __cdecl node::SetTracingController(class v8::TracingController * __ptr64)+80006
 2: 00007FF7D9CB83E5 void __cdecl node::OnFatalError(char const * __ptr64,char const * __ptr64)+645
 3: 00007FF7DC91A5B3 public: class v8::MaybeLocal<class v8::Object> __cdecl v8::Function::NewInstance(class v8::Local<class v8::Context>,int,class v8::Local<class v8::Value> * __ptr64 const)const __ptr64+851
 4: 00007FF7DC91A548 public: class v8::MaybeLocal<class v8::Object> __cdecl v8::Function::NewInstance(class v8::Local<class v8::Context>,int,class v8::Local<class v8::Value> * __ptr64 const)const __ptr64+744
 5: 00007FF7DC9CAA88 public: void __cdecl v8::CppHeap::CollectGarbageInYoungGenerationForTesting(enum cppgc::EmbedderStackState) __ptr64+392
 6: 00007FF7DCD2D57B void __cdecl cppgc::internal::Fatal(class std::Cr::basic_string<char,struct std::Cr::char_traits<char>,class std::Cr::allocator<char> > const & __ptr64,class cppgc::SourceLocation const & __ptr64)+91
 7: 00007FF7DB80BBC0 protected: static unsigned __int64 __cdecl cppgc::internal::BaseObjectSizeTrait::GetObjectSizeForGarbageCollected(void const * __ptr64)+1200
 8: 00007FF7D8BD490E private: static void __swift_2 cppgc::internal::EnsureGCInfoIndexTrait::EnsureGCInfoIndexNonPolymorphic(struct std::Cr::atomic<unsigned short> & __ptr64,void (__cdecl*)(class cppgc::Visitor * __ptr64,void const * __ptr64))+3918
 9: 00007FF7DB80B113 private: bool __cdecl cppgc::LivenessBroker::IsHeapObjectAliveImpl(void const * __ptr64)const __ptr64+7219
10: 00007FF7DB80692F private: static void * __ptr64 __cdecl cppgc::internal::MakeGarbageCollectedTraitInternal::Allocate(class cppgc::AllocationHandle & __ptr64,unsigned __int64,unsigned short)+431
11: 00007FF7DBECD8F1 Cr_z_adler32+2885697
12: 00007FF7DBF2E293 Cr_z_adler32+3281379
13: 00007FF7DBEFA0DC Cr_z_adler32+3067948
14: 00007FF7DBEFA07E Cr_z_adler32+3067854
15: 00007FF7DBE2F621 Cr_z_adler32+2237809
16: 00007FF7DBE2AB68 Cr_z_adler32+2218680
17: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
18: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
19: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
20: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
21: 00007FF7DBE2AB68 Cr_z_adler32+2218680
22: 00007FF7DB09B175 uv_random+2271781
23: 00007FF7DBF3CC83 Cr_z_adler32+3341267
24: 00007FF7DBF231FC Cr_z_adler32+3236172
25: 00007FF7DBF21ED1 Cr_z_adler32+3231265
26: 00007FF7DAD6D191 Cr_z_uncompress+1350737
27: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
28: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
29: 00007FF7DBE2AB68 Cr_z_adler32+2218680
30: 00007FF7DAD879B2 Cr_z_uncompress+1459314
31: 00007FF7DAD86535 Cr_z_uncompress+1454069
32: 00007FF7DBEFA89E Cr_z_adler32+3069934
33: 00007FF7DBEFA051 Cr_z_adler32+3067809
34: 00007FF7DBE2F621 Cr_z_adler32+2237809
35: 00007FF7DBE2AB68 Cr_z_adler32+2218680
36: 00007FF7DBEFD623 Cr_z_adler32+3081587
37: 00007FF7DBEFA60D Cr_z_adler32+3069277
38: 00007FF7DBEFA051 Cr_z_adler32+3067809
39: 00007FF7DBE2F621 Cr_z_adler32+2237809
40: 00007FF7DBE2AB68 Cr_z_adler32+2218680
41: 00007FF7DBEFD623 Cr_z_adler32+3081587
42: 00007FF7DBEFA60D Cr_z_adler32+3069277
43: 00007FF7DBEFA051 Cr_z_adler32+3067809
44: 00007FF7DBE2F621 Cr_z_adler32+2237809
45: 00007FF7DBE2AB68 Cr_z_adler32+2218680
46: 00007FF7DBEFD623 Cr_z_adler32+3081587
47: 00007FF7DBEFA60D Cr_z_adler32+3069277
48: 00007FF7DBEFA051 Cr_z_adler32+3067809
49: 00007FF7DBE2F621 Cr_z_adler32+2237809
50: 00007FF7DBE2AB68 Cr_z_adler32+2218680
51: 00007FF7DBEFD623 Cr_z_adler32+3081587
52: 00007FF7DBEFA60D Cr_z_adler32+3069277
53: 00007FF7DBEFA051 Cr_z_adler32+3067809
54: 00007FF7DBE2F621 Cr_z_adler32+2237809
55: 00007FF7DBE2AB68 Cr_z_adler32+2218680
56: 00007FF7DBEFD623 Cr_z_adler32+3081587
57: 00007FF7DBEFA60D Cr_z_adler32+3069277
58: 00007FF7DBEFA051 Cr_z_adler32+3067809
59: 00007FF7DBE2F621 Cr_z_adler32+2237809
60: 00007FF7DBE2AB68 Cr_z_adler32+2218680
61: 00007FF7DBEFD623 Cr_z_adler32+3081587
62: 00007FF7DBEFA60D Cr_z_adler32+3069277
63: 00007FF7DBEFA051 Cr_z_adler32+3067809
64: 00007FF7DBE2F621 Cr_z_adler32+2237809
65: 00007FF7DBE2AB68 Cr_z_adler32+2218680
66: 00007FF7DBEFD623 Cr_z_adler32+3081587
67: 00007FF7DBEFA60D Cr_z_adler32+3069277
68: 00007FF7DBEFA051 Cr_z_adler32+3067809
69: 00007FF7DBE2F621 Cr_z_adler32+2237809
70: 00007FF7DBE2AB68 Cr_z_adler32+2218680
71: 00007FF7DBEFD623 Cr_z_adler32+3081587
72: 00007FF7DBEFA60D Cr_z_adler32+3069277
73: 00007FF7DBEFA051 Cr_z_adler32+3067809
74: 00007FF7DBE2F621 Cr_z_adler32+2237809
75: 00007FF7DBE2AB68 Cr_z_adler32+2218680
76: 00007FF7DBEFD623 Cr_z_adler32+3081587
77: 00007FF7DBEFA60D Cr_z_adler32+3069277
78: 00007FF7DBEFA051 Cr_z_adler32+3067809
79: 00007FF7DBE2F621 Cr_z_adler32+2237809
80: 00007FF7DBE2AB68 Cr_z_adler32+2218680
81: 00007FF7DAD6BA13 Cr_z_uncompress+1344723
82: 00007FF7DAD6D760 Cr_z_uncompress+1352224
83: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
84: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
85: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
86: 00007FF7DBE2AB68 Cr_z_adler32+2218680
87: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
88: 00007FF7DA[16316:0528/185258.109:ERROR:CONSOLE(6)] "console.assert", source: devtools://devtools/bundled/panels/console/console.js (6)
D6CF47 Cr_z_uncompress+1350151
89: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
90: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
91: 00007FF7DBE2AB68 Cr_z_adler32+2218680
92: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
93: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
94: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
95: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
96: 00007FF7DBE2AB68 Cr_z_adler32+2218680
97: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
98: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
99: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
100: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
101: 00007FF7DBE2AB68 Cr_z_adler32+2218680
102: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
103: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
104: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
105: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
106: 00007FF7DBE2AB68 Cr_z_adler32+2218680
107: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
108: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
109: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
110: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
111: 00007FF7DBE2AB68 Cr_z_adler32+2218680
112: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
113: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
114: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
115: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
116: 00007FF7DBE2AB68 Cr_z_adler32+2218680
117: 00007FF7DAD6DB1C Cr_z_uncompress+1353180
118: 00007FF7DAD6CF47 Cr_z_uncompress+1350151
119: 00007FF7DAD6CE3D Cr_z_uncompress+1349885
120: 00007FF7DA8DF274 uv_stream_set_blocking+4252404
121: 00007FF7DBE2AB68 Cr_z_adler32+2218680
122: 00007FF7DAD879B2 Cr_z_uncompress+1459314
123: 00007FF7DAD86535 Cr_z_uncompress+1454069
124: 00007FF7DBEFA89E Cr_z_adler32+3069934
125: 00007FF7DBEFA051 Cr_z_adler32+3067809
126: 00007FF7DBE2F621 Cr_z_adler32+2237809
127: 00007FF7DBE2AB68 Cr_z_adler32+2218680
128: 00007FF7DAD879B2 Cr_z_uncompress+1459314
129: 00007FF7DAD86535 Cr_z_uncompress+1454069
130: 00007FF7DBEFA89E Cr_z_adler32+3069934
131: 00007FF7DBEFA051 Cr_z_adler32+3067809
132: 00007FF7DBE2F621 Cr_z_adler32+2237809
133: 00007FF7DBE2AB68 Cr_z_adler32+2218680
134: 00007FF7DAD879B2 Cr_z_uncompress+1459314
135: 00007FF7DAD86535 Cr_z_uncompress+1454069
136: 00007FF7DBEFA89E Cr_z_adler32+3069934
137: 00007FF7DBEFA051 Cr_z_adler32+3067809
138: 00007FF7DBE2F621 Cr_z_adler32+2237809
139: 00007FF7DBE2AB68 Cr_z_adler32+2218680
140: 00007FF7DAD0317E Cr_z_uncompress+916542
141: 00007FF7DA7F8F94 uv_stream_set_blocking+3309588
142: 00007FF7DA0D5B25 GetHandleVerifier+3691893
143: 00007FF7DA0BC1E8 GetHandleVerifier+3587128
144: 00007FF7DA0BD076 GetHandleVerifier+3590854
145: 00007FF7DBCE4FD2 Cr_z_adler32+884514
146: 00007FF7DBCE3DB1 Cr_z_adler32+879873
147: 00007FF7DBCED305 Cr_z_adler32+918101
148: 00007FF7DA106187 GetHandleVerifier+3890135
149: 00007FF7DA1E979E uv_fs_get_ptr+605102
150: 00007FF7DB1DCDA2 uv_random+3589714
151: 00007FF75FE0DC49

Do you know what the processes were trying to uncompress? Or doing checksums for?

And it’s way more likely that one of your plugins is misbehaving, rather than electron. I’m not saying electron isn’t misbehaving, but there is a reason why it’s wanted for you to provoke the error in the sandbox vault.

So you would benefit from trying to narrow it down, so you should seriously consider using the divide and conquer plugin, and try to locate any offending plugins.

Another failure. Seems to be out-of-memory

FATAL ERROR: Oilpan: Reserving memory. Allocation failed - process out of memory
 1: 00007FF7D9CB8126 void __cdecl node::SetTracingController(class v8::TracingController * __ptr64)+80006
 2: 00007FF7D9CB83E5 void __cdecl node::OnFatalError(char const * __ptr64,char const * __ptr64)+645
 3: 00007FF7DC91A5B3 public: class v8::MaybeLocal<class v8::Object> __cdecl v8::Function::NewInstance(class v8::Local<class v8::Context>,int,class v8::Local<class v8::Value> * __ptr64 const)const __ptr64+851
 4: 00007FF7DC91A548 public: class v8::MaybeLocal<class v8::Object> __cdecl v8::Function::NewInstance(class v8::Local<class v8::Context>,int,class v8::Local<class v8::Value> * __ptr64 const)const __ptr64+744
 5: 00007FF7DC9CAA88 public: void __cdecl v8::CppHeap::CollectGarbageInYoungGenerationForTesting(enum cppgc::EmbedderStackState) __ptr64+392
 6: 00007FF7DCD2D57B void __cdecl cppgc::internal::Fatal(class std::Cr::basic_string<char,struct std::Cr::char_traits<char>,class std::Cr::allocator<char> > const & __ptr64,class cppgc::SourceLocation const & __ptr64)+91
 7: 00007FF7DB80BBC0 protected: static unsigned __int64 __cdecl cppgc::internal::BaseObjectSizeTrait::GetObjectSizeForGarbageCollected(void const * __ptr64)+1200
 8: 00007FF7D8BD490E private: static void __swift_2 cppgc::internal::EnsureGCInfoIndexTrait::EnsureGCInfoIndexNonPolymorphic(struct std::Cr::atomic<unsigned short> & __ptr64,void (__cdecl*)(class cppgc::Visitor * __ptr64,void const * __ptr64))+3918
 9: 00007FF7DB80B113 private: bool __cdecl cppgc::LivenessBroker::IsHeapObjectAliveImpl(void const * __ptr64)const __ptr64+7219
10: 00007FF7DB80692F private: static void * __ptr64 __cdecl cppgc::internal::MakeGarbageCollectedTraitInternal::Allocate(class cppgc::AllocationHandle & __ptr64,unsigned __int64,unsigned short)+431
11: 00007FF7DA99F4B9 uv_stream_set_blocking+5039417
12: 00007FF7DA863C28 uv_stream_set_blocking+3746984
13: 00007FF7DA862B15 uv_stream_set_blocking+3742613
14: 00007FF7DBCEB25F Cr_z_adler32+909743
15: 00007FF7DBD43130 Cr_z_adler32+1269888
16: 00007FF7DA102A4B GetHandleVerifier+3875995
17: 00007FF7DA137F6F GetHandleVerifier+4094399
18: 00007FF7DA137D32 GetHandleVerifier+4093826
19: 00007FF7DA92E2C0 uv_stream_set_blocking+4576064
20: 00007FF75FE0DC49
Renderer process crashed - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.

I’ve managed to reproduce the issue in Restricted mode.

It seems to be related with vaults with huge amount of notes and folders and their rendering in Files pane.

Usually I use Files pane in Collapse All mode but when I am use Expand All and Files: Reveal current file in navigation commands, I am getting the abovementioned error.

I tried to reproduce the error in the sandbox vault, but I couldn’t make it crash yet. I just made it very slow and unusable

If you enable Verbose level in DevTools console you can see

[Violation] 'mousedown' handler took 1815ms
[Violation] 'mousemove' handler took 174ms
[Violation] Forced reflow while executing JavaScript took 1679ms
8[Violation] 'focus' handler took <N>ms
app.js:1 [Violation] 'mousedown' handler took 150ms
app.js:1 [Violation] 'keydown' handler took 281ms
[Violation] Forced reflow while executing JavaScript took 31670ms
[Violation] Forced reflow while executing JavaScript took 44546ms

I am attaching the archived version of the vault. Zip doesn’t handle it very well. The archived version by Zip archiver is 15 Mb which I couldn’t upload to the forum.
I had to use 7zip archiver and then additionally archive it by Zip in order to allow the forum to upload the file.

Nothing really special about this vault. It just has 100k notes and some instructions how to get the memory leak. This vault should be enough for the Obsidian developers to troubleshoot the performance issues.

Test.7z.zip (45.3 KB)

1 Like

Thanks.

I am unable to reproduce the crash and I don’t see any memory abnormality.

Download and reinstall Obsidian, post a screen recording of this happening in the vault you provided.

Also be aware of https://www.electronjs.org/blog/v8-memory-cage. But we are nowhere close these limits in the example you provided.

I could not replicate the crash yet, but I could replicate how slow Obsidian is. Reveal current file takes over a minute

Obsidian is freshly reinstalled

The slowness of " Reveal current file" falls under performance improvements. You can open a separate BR to track specifically that. It won’t be a priority issue.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.