docker / kitematic

Visual Docker Container Management on Mac & Windows
https://kitematic.com
Apache License 2.0
12.25k stars 1.41k forks source link

Kitematic won't start when NODE_OPTIONS environment variable is set #5252

Open jcoutch opened 5 years ago

jcoutch commented 5 years ago

Expected behavior

Kitematic starts and the window is presented.

Actual behavior

Kitematic silently crashes with no error messages, entries in any Windows event logs, etc.

Information about the Issue

I had to use WinDbg attached to the Kitematic process to determine that the app was crashing once node.dll was loaded. I had made a change earlier in the day to set NODE_OPTIONS to --max-old-space-size=8192 to work around Angular compilation issues. While other Electron-based apps (Slack and VS Code) are functioning fine with that variable set, Kitematic will not start.

Steps to reproduce the behavior

  1. Open a PowerShell prompt and type the following (assuming standard Kitematic install location):

    cd "c:\Program Files\Docker\Kitematic"
    $env:NODE_OPTIONS="--max-old-space-size=8192"
    ./Kitematic.exe

    Kitematic will fail to start.

  2. Execute the following commands:

    $env:NODE_OPTIONS=""
    ./Kitematic.exe

    Kitematic will start.

jcoutch commented 5 years ago

WinDbg trace that led me to realize it was Node failing to start:


Microsoft (R) Windows Debugger Version 10.0.18972.1001 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: C:\Program Files\Docker\Kitematic\Kitematic.exe

************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00007ff6`1d1a0000 00007ff6`21239000   electron.exe
ModLoad: 00007ff9`69f20000 00007ff9`6a110000   ntdll.dll
ModLoad: 00007ff9`682e0000 00007ff9`68392000   C:\Windows\System32\KERNEL32.DLL
ModLoad: 00007ff9`67080000 00007ff9`67323000   C:\Windows\System32\KERNELBASE.dll
ModLoad: 00007ff9`68450000 00007ff9`6851f000   C:\Windows\System32\COMDLG32.dll
ModLoad: 00007ff8`ed910000 00007ff8`eea39000   C:\Program Files\Docker\Kitematic\node.dll
ModLoad: 00007ff9`548c0000 00007ff9`54b45000   C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
ModLoad: 00007ff9`69740000 00007ff9`697de000   C:\Windows\System32\msvcrt.dll
ModLoad: 00007ff9`685e0000 00007ff9`68916000   C:\Windows\System32\combase.dll
ModLoad: 00007ff9`675b0000 00007ff9`676aa000   C:\Windows\System32\ucrtbase.dll
ModLoad: 000001b0`927e0000 000001b0`92b16000   C:\Windows\System32\combase.dll
ModLoad: 00007ff9`69dc0000 00007ff9`69e2f000   C:\Windows\System32\WS2_32.dll
ModLoad: 00007ff9`68140000 00007ff9`68260000   C:\Windows\System32\RPCRT4.dll
ModLoad: 000001b0`927e0000 000001b0`92900000   C:\Windows\System32\RPCRT4.dll
ModLoad: 00007ff9`683a0000 00007ff9`68449000   C:\Windows\System32\shcore.dll
ModLoad: 00007ff9`689b0000 00007ff9`689b8000   C:\Windows\System32\PSAPI.DLL
ModLoad: 00007ff9`66f80000 00007ff9`67000000   C:\Windows\System32\bcryptPrimitives.dll
ModLoad: 00007ff9`67fd0000 00007ff9`67ff6000   C:\Windows\System32\GDI32.dll
ModLoad: 00007ff9`29bc0000 00007ff9`29c5d000   C:\Program Files\Docker\Kitematic\MSVCP140.dll
ModLoad: 00007ff9`69930000 00007ff9`69ac3000   C:\Windows\System32\USER32.dll
ModLoad: 000001b0`927e0000 000001b0`92973000   C:\Windows\System32\USER32.dll
ModLoad: 00007ff9`67580000 00007ff9`675a1000   C:\Windows\System32\win32u.dll
ModLoad: 000001b0`925a0000 000001b0`925c1000   C:\Windows\System32\win32u.dll
ModLoad: 00007ff9`68580000 00007ff9`685d2000   C:\Windows\System32\SHLWAPI.dll
ModLoad: 00007ff9`3a630000 00007ff9`3a647000   C:\Program Files\Docker\Kitematic\VCRUNTIME140.dll
ModLoad: 00007ff9`67e30000 00007ff9`67fc4000   C:\Windows\System32\gdi32full.dll
ModLoad: 00007ff9`69ad0000 00007ff9`69b73000   C:\Windows\System32\ADVAPI32.dll
ModLoad: 00007ff9`68ea0000 00007ff9`69582000   C:\Windows\System32\SHELL32.dll
ModLoad: 00007ff9`69b80000 00007ff9`69c17000   C:\Windows\System32\sechost.dll
ModLoad: 00007ff9`66eb0000 00007ff9`66f4e000   C:\Windows\System32\msvcp_win.dll
ModLoad: 00007ff9`67480000 00007ff9`674ca000   C:\Windows\System32\cfgmgr32.dll
ModLoad: 00007ff9`676b0000 00007ff9`67e2c000   C:\Windows\System32\windows.storage.dll
ModLoad: 00007ff9`66370000 00007ff9`663aa000   C:\Windows\SYSTEM32\IPHLPAPI.DLL
ModLoad: 00007ff9`66e90000 00007ff9`66eaf000   C:\Windows\System32\profapi.dll
ModLoad: 00007ff9`66d10000 00007ff9`66d35000   C:\Windows\SYSTEM32\USERENV.dll
ModLoad: 00007ff9`61e00000 00007ff9`61e24000   C:\Windows\SYSTEM32\WINMM.dll
ModLoad: 00007ff9`66e20000 00007ff9`66e6a000   C:\Windows\System32\powrprof.dll
ModLoad: 00007ff9`64cb0000 00007ff9`64ea4000   C:\Windows\SYSTEM32\dbghelp.dll
ModLoad: 00007ff9`66df0000 00007ff9`66e00000   C:\Windows\System32\UMPDC.dll
ModLoad: 00007ff9`61dd0000 00007ff9`61dfd000   C:\Windows\SYSTEM32\WINMMBASE.dll
ModLoad: 000001b0`925a0000 000001b0`925cd000   C:\Windows\SYSTEM32\winmmbase.dll
ModLoad: 00007ff9`66e70000 00007ff9`66e81000   C:\Windows\System32\kernel.appcore.dll
ModLoad: 00007ff9`67000000 00007ff9`67017000   C:\Windows\System32\cryptsp.dll
ModLoad: 00007ff9`69c50000 00007ff9`69da6000   C:\Windows\System32\ole32.dll
ModLoad: 00007ff9`4e690000 00007ff9`4eb66000   C:\Windows\SYSTEM32\WININET.dll
ModLoad: 00007ff9`697e0000 00007ff9`698a4000   C:\Windows\System32\OLEAUT32.dll
ModLoad: 00007ff9`24e70000 00007ff9`250e0000   C:\Windows\SYSTEM32\UIAutomationCore.DLL
ModLoad: 00007ff9`03c30000 00007ff9`03fcc000   C:\Program Files\Docker\Kitematic\ffmpeg.dll
ModLoad: 00007ff9`69c20000 00007ff9`69c4e000   C:\Windows\System32\IMM32.dll
ModLoad: 00007ff9`65ad0000 00007ff9`65bba000   C:\Windows\SYSTEM32\dxgi.dll
ModLoad: 00007ff9`0f9d0000 00007ff9`0f9e9000   C:\Windows\SYSTEM32\USP10.dll
ModLoad: 00007ff9`63fc0000 00007ff9`63fed000   C:\Windows\SYSTEM32\dwmapi.dll
ModLoad: 00007ff9`56580000 00007ff9`56609000   C:\Windows\SYSTEM32\WINSPOOL.DRV
ModLoad: 00007ff9`5c0b0000 00007ff9`5c0ba000   C:\Windows\SYSTEM32\VERSION.dll
ModLoad: 00007ff9`66930000 00007ff9`66956000   C:\Windows\SYSTEM32\ncrypt.dll
ModLoad: 00007ff9`64880000 00007ff9`64b7e000   C:\Windows\SYSTEM32\DWrite.dll
ModLoad: 00007ff9`66f50000 00007ff9`66f76000   C:\Windows\System32\bcrypt.dll
ModLoad: 000001b0`925a0000 000001b0`925c6000   C:\Windows\System32\bcrypt.dll
ModLoad: 00007ff9`634e0000 00007ff9`63579000   C:\Windows\SYSTEM32\UxTheme.dll
ModLoad: 00007ff9`586f0000 00007ff9`586f7000   C:\Windows\SYSTEM32\MSIMG32.dll
ModLoad: 00007ff9`56640000 00007ff9`566a5000   C:\Windows\SYSTEM32\OLEACC.dll
ModLoad: 00007ff9`637f0000 00007ff9`638df000   C:\Windows\SYSTEM32\PROPSYS.dll
ModLoad: 00007ff9`65a40000 00007ff9`65a60000   C:\Windows\SYSTEM32\dxcore.dll
ModLoad: 00007ff9`668f0000 00007ff9`6692b000   C:\Windows\SYSTEM32\NTASN1.dll
ModLoad: 00007ff9`66830000 00007ff9`6683c000   C:\Windows\SYSTEM32\CRYPTBASE.DLL
(5650.3fb4): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00007ff9`69ff11dc cc              int     3
0:000> g
ModLoad: 00007ff9`66660000 00007ff9`666c7000   C:\Windows\system32\mswsock.dll
(5650.3fb4): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
*** WARNING: Unable to verify checksum for C:\Program Files\Docker\Kitematic\node.dll
node!node::Init+0x3a0:
00007ff8`ed95b400 498b4d00        mov     rcx,qword ptr [r13] ds:00000000`00000000=????????????????