<p dir="auto"><a href="https://github.com/electron/electron/files/6303484/exceptions.txt">exceptions.txt</a></p>
<h3 dir="auto">Preflight Checklist</h3>
<p dir="auto">I have read the <a href="https://github.com/electron/electron/blob/master/CONTRIBUTING.md">Contributing Guidelines</a> for this project.<br>
I agree to follow the <a href="https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md">Code of Conduct</a> that this project adheres to.<br>
I have searched the <a href="https://www.github.com/electron/electron/issues">issue tracker</a> for a feature request that matches the one I want to file, without success.</p>
<h3 dir="auto">Electron Version</h3>
<p dir="auto">12.0.2,11.x</p>
<h3 dir="auto">What operating system are you using?</h3>
<p dir="auto">Windows</p>
<h3 dir="auto">Operating System Version</h3>
<p dir="auto">windows 7</p>
<h3 dir="auto">What arch are you using?</h3>
<p dir="auto">ia32</p>
<h3 dir="auto">Last Known Working Electron version</h3>
<p dir="auto">I do not know</p>
<h3 dir="auto">Expected Behavior</h3>
<p dir="auto">Worked well as windows 10</p>
<h3 dir="auto">Actual Behavior</h3>
<ol dir="auto">
<li>crashed sometimes, not everytime</li>
<li>or the same as <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="848881606" data-permission-text="Title is private" data-url="https://github.com/electron/electron/issues/28487" data-hovercard-type="issue" data-hovercard-url="/electron/electron/issues/28487/hovercard" href="https://github.com/electron/electron/issues/28487">#28487</a></li>
<li>the contextIsolation is false</li>
</ol>
<h3 dir="auto">Testcase Gist URL</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">Preflight Checklist</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have read the <a href="https://github.com/electron/electron/blob/master/CONTRIBUTING.md">Contributing Guidelines</a> for this project.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I agree to follow the <a href="https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md">Code of Conduct</a> that this project adheres to.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://www.github.com/electron/electron/issues">issue tracker</a> for a feature request that matches the one I want to file, without success.</li>
</ul>
<h3 dir="auto">Electron Version</h3>
<p dir="auto">11.4.5</p>
<h3 dir="auto">What operating system are you using?</h3>
<p dir="auto">Windows</p>
<h3 dir="auto">Operating System Version</h3>
<p dir="auto">Windows 10 version 1903</p>
<h3 dir="auto">What arch are you using?</h3>
<p dir="auto">ia32</p>
<h3 dir="auto">Last Known Working Electron version</h3>
<p dir="auto">9.4.4</p>
<h3 dir="auto">Expected Behavior</h3>
<p dir="auto">I would expect a <code class="notranslate">RangeError: Maximum call stack size exceeded</code> exception to be printed to the console. In other words, a Javascript stack overflow should not crash the renderer process.</p>
<h3 dir="auto">Actual Behavior</h3>
<p dir="auto">The renderer process crashes. Here's a piece of the symbolized dump:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Operating system: Windows NT
                  10.0.18362 329
CPU: x86
     AuthenticAMD family 16 model 2 stepping 3
     8 CPUs

GPU: UNKNOWN

Crash reason:  EXCEPTION_STACK_OVERFLOW
Crash address: 0x1c188f0
Process uptime: 5 seconds

Thread 0 (crashed)
 0  electron.exe!Builtins_InterpreterEntryTrampoline + 0x90
    eip = 0x01c188f0   esp = 0x0b373000   ebp = 0x0b373014   ebx = 0x0b901698
    esi = 0x5634f5bd   edi = 0x4e8a8591   eax = 0x50182329   ecx = 0x00000000
    edx = 0x50182329   efl = 0x00010246
    Found by: given as instruction pointer in context
 1  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b37301c   ebp = 0x0b373038
    Found by: previous frame's frame pointer
 2  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373040   ebp = 0x0b37305c
    Found by: previous frame's frame pointer
 3  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373064   ebp = 0x0b373080
    Found by: previous frame's frame pointer
 4  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373088   ebp = 0x0b3730a4
    Found by: previous frame's frame pointer
 5  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730ac   ebp = 0x0b3730c8
    Found by: previous frame's frame pointer
 6  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730d0   ebp = 0x0b3730ec
    Found by: previous frame's frame pointer
 7  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730f4   ebp = 0x0b373110
    Found by: previous frame's frame pointer
 8  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373118   ebp = 0x0b373134
    Found by: previous frame's frame pointer
(This goes on for 14k+ frames)"><pre class="notranslate"><code class="notranslate">Operating system: Windows NT
                  10.0.18362 329
CPU: x86
     AuthenticAMD family 16 model 2 stepping 3
     8 CPUs

GPU: UNKNOWN

Crash reason:  EXCEPTION_STACK_OVERFLOW
Crash address: 0x1c188f0
Process uptime: 5 seconds

Thread 0 (crashed)
 0  electron.exe!Builtins_InterpreterEntryTrampoline + 0x90
    eip = 0x01c188f0   esp = 0x0b373000   ebp = 0x0b373014   ebx = 0x0b901698
    esi = 0x5634f5bd   edi = 0x4e8a8591   eax = 0x50182329   ecx = 0x00000000
    edx = 0x50182329   efl = 0x00010246
    Found by: given as instruction pointer in context
 1  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b37301c   ebp = 0x0b373038
    Found by: previous frame's frame pointer
 2  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373040   ebp = 0x0b37305c
    Found by: previous frame's frame pointer
 3  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373064   ebp = 0x0b373080
    Found by: previous frame's frame pointer
 4  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373088   ebp = 0x0b3730a4
    Found by: previous frame's frame pointer
 5  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730ac   ebp = 0x0b3730c8
    Found by: previous frame's frame pointer
 6  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730d0   ebp = 0x0b3730ec
    Found by: previous frame's frame pointer
 7  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730f4   ebp = 0x0b373110
    Found by: previous frame's frame pointer
 8  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373118   ebp = 0x0b373134
    Found by: previous frame's frame pointer
(This goes on for 14k+ frames)
</code></pre></div>
<h3 dir="auto">Testcase Gist URL</h3>
<p dir="auto"><a href="https://gist.github.com/tarruda/654839161e411c1989ddf479bcbb5332">https://gist.github.com/tarruda/654839161e411c1989ddf479bcbb5332</a></p>
<h3 dir="auto">Additional Information</h3>
<p dir="auto">Here's the code snippet which triggers the crash:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="try {
	function run() {
		run();
	};
	run();
} catch (e) {
	console.error(e);
}"><pre class="notranslate"><span class="pl-k">try</span> <span class="pl-kos">{</span>
	<span class="pl-k">function</span> <span class="pl-en">run</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
		<span class="pl-en">run</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
	<span class="pl-kos">}</span><span class="pl-kos">;</span>
	<span class="pl-en">run</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">e</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
	<span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">error</span><span class="pl-kos">(</span><span class="pl-s1">e</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Another simple way to reproduce the crash is by running electron with <code class="notranslate">--remote-debugging-port</code> and pasting the snippet on devtools console.</p>
<p dir="auto">The crash is reproducible on the following versions:</p>
<ul dir="auto">
<li>14.0.0-nightly.20210503</li>
<li>13.0.0-beta.20</li>
<li>12.0.6</li>
<li>11.4.5</li>
<li>10.4.5</li>
</ul>
<p dir="auto">It doesn't seem to be reproducible in windows 32-bit versions of node.js 14.16 or chrome 90.</p>
<p dir="auto">In the gist I've added a script which will automatically download the proper electron version + symbols and run the app. Here's how it can be quickly reproduced with cmd.exe:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="git clone https://gist.github.com/tarruda/654839161e411c1989ddf479bcbb5332 electron-win32bit-crash
cd electron-win32bit-crash
npm install
npm start"><pre class="notranslate"><code class="notranslate">git clone https://gist.github.com/tarruda/654839161e411c1989ddf479bcbb5332 electron-win32bit-crash
cd electron-win32bit-crash
npm install
npm start
</code></pre></div>
<p dir="auto">The bootstrap-run.js file can be edited to try different versions.</p>