Skip to content

[Bug]: EXCEPTION_ACCESS_VIOLATION crash on BrowserWindow.destroy() #42975

@Araxeus

Description

@Araxeus

Preflight Checklist

Electron Version

>=v31.0.0 (tested v31.0.0, v31.2.1, v32.0.0-aplha.10)

What operating system(s) are you using?

Windows

Operating System Version

Windows 10 22H2

What arch are you using?

x64

Last Known Working Electron version

v30.3.0 (and everything below it)

Expected Behavior

childWindow.once('close', () => {
    // do some cleanup etc
    childWindow.destroy();;
});

shouldn't crash Electron

Actual Behavior

function cleanup() {
	// do some cleanup etc
    childWindow.destroy();;
}
ipcMain.once(`done`, cleanup);
childWindow.once('close', cleanup);

if done ipc event is not called and the window is manually closed, the window is destroyed and a few moments later The main Electron process crash with the following trace:

Stacktrace Windows

Received fatal exception EXCEPTION_ACCESS_VIOLATION
v8::internal::compiler::CompilationDependencies::FieldTypeDependencyOffTheRecord [0x03CB9E08+3764424]
v8::HeapStatistics::external_memory [0x00A48A12+8338]
cppgc::internal::SameThreadEnabledCheckingPolicyBase::SameThreadEnabledCheckingPolicyBase [0x00B0DE72+28834]
uv_req_get_data [0x022485EE+4269966]
uv_req_get_data [0x02248AAA+4271178]
uv_stream_get_write_queue_size [0x0277DBD5+2462421]
uv_stream_get_write_queue_size [0x0277D383+2460291]
GetHandleVerifier [0x024558B5+1278869]
GetHandleVerifier [0x02455387+1277543]
AddClipboardFormatListener [0x76981B7B+75]
GetClassLongW [0x76977FCA+1962]
GetClassLongW [0x76977BCA+938]
CallNextHookEx [0x7697C09F+415]
KiUserCallbackDispatcher [0x77EC54ED+77]
PostMessageW [0x769760CC+156]
Ordinal132 [0x75A435C5+4885]
Ordinal45 [0x75A3FAE1+2577]
Ordinal45 [0x75A3F758+1672]
GetSystemMetricsForDpi [0x76976D27+487]
sqlite3_dbdata_init [0x068DC9A7+2609367]
uv_stream_get_write_queue_size [0x0277E07F+2463615]
uv_stream_get_write_queue_size [0x0277D383+2460291]
GetHandleVerifier [0x024558B5+1278869]
GetHandleVerifier [0x02455387+1277543]
AddClipboardFormatListener [0x76981B7B+75]
GetClassLongW [0x76977FCA+1962]
GetClassLongW [0x76977BCA+938]
CallNextHookEx [0x7697C09F+415]
KiUserCallbackDispatcher [0x77EC54ED+77]
PostMessageW [0x769760CC+156]
Ordinal132 [0x75A435C5+4885]
Ordinal45 [0x75A3FAE1+2577]
Ordinal45 [0x75A3F758+1672]
GetSystemMetricsForDpi [0x76976D27+487]
uv_stream_get_write_queue_size [0x0277D3B9+2460345]
GetHandleVerifier [0x024558B5+1278869]
GetHandleVerifier [0x02455387+1277543]
AddClipboardFormatListener [0x76981B7B+75]
GetClassLongW [0x76977FCA+1962]
DispatchMessageW [0x76976901+1265]
DispatchMessageW [0x76976420+16]
uv_os_getpid [0x01D81F00+6592]
uv_os_getpid [0x01D81B5B+5659]
v8::internal::compiler::CompilationDependencies::FieldTypeDependencyOffTheRecord [0x03C980DB+3625883]
uv_os_getpid [0x01D817FB+4795]
GetHandleVerifier [0x0232C67C+61788]
uv_os_getpid [0x01DA8F14+166356]
v8::internal::compiler::CompilationDependencies::TransitionDependencyOffTheRecord [0x0169DD19+2893273]
v8::internal::compiler::CompilationDependencies::TransitionDependencyOffTheRecord [0x0169F5FE+2899646]
v8::internal::compiler::CompilationDependencies::TransitionDependencyOffTheRecord [0x0169B4AF+2882927]
cppgc::Platform::GetForegroundTaskRunner [0x00B9DF37+3175]
cppgc::Platform::GetForegroundTaskRunner [0x00B9EFF0+7456]
cppgc::Platform::GetForegroundTaskRunner [0x00B9EEB7+7143]
cppgc::Platform::GetForegroundTaskRunner [0x00B9D88E+1470]
cppgc::Platform::GetForegroundTaskRunner [0x00B9DA11+1857]
v8::SourceLocation::SourceLocation [0x00960B7D+46669]
v8::SourceLocation::SourceLocation [0x00960721+45553]
GetNumaHighestNodeNumber [0x77682911+161]
GetNumaHighestNodeNumber [0x776828C6+86]
RtlUserFiberStart [0x77EC2DC7+23]

Electron exited with code 3221226525.

Testcase Gist URL

To reproduce, click the menu item then manually close the window that appears

No dependencies:

https://gist.github.com/Araxeus/4e80b05c8bce61a5fe709eec1e969f2b

Original issue:

https://gist.github.com/Araxeus/6548ef4f3438d35d1713d5fd69c3b494

Additional Information

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions