Electron JS app.quit() hang on Linux and Mac
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 技術スタック
- csharp, electron, javascript
- 領域
- desktop
調査の方向性
リポジトリの examples フォルダーにある最も単純なモジュールと、リンク先の daniacedue/electron-nodeapi デモを使ってハングを再現します。Electron の app.quit() パスと .NET/C# AOT モジュールのクリーンアップから調査を開始し、macOS と Linux での動作を比較します。モジュールの読み込み後にアプリが正常に終了し、プロセスを強制終了せずに electron-updater が更新を開始できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Hello,
If I use this technology in an Electron JS desktop application to load a C# AOT or .Net module then on Mac OS (and also Linux) the call to app.quit() hangs and the app does not closes normally, needing to do a force quit from Activity Monitor.
It happens with the simplest possible module found in your examples folder, as it is too much code I have made a demo app here:
[daniacedue/electron-nodeapi] (https://github.com/daniacedue/electron-nodeapi)
As a workaround I have tried brutally closing the process after some time or in the Electron's app.quit() handler by doing process.kill(process.pid, "SIGKILL"); but this is problematic because I need electron-updater npm package to be able to gracefully close in order to kick-off an update.
The problem is quite complex, I have also tried asking some chatbots to figure out what is happening by interpreting some stack traces and spindumps and it has something to do with low-level NAPI calls freezing the main process when doing the cleanup.
I have tried numerous "black box" possible fixes from both C# and JS (like explicit "destroy" function triggering dispose pattern because I was doubting the finalizers being the culpit) but without success.
Thanks!
- 主要言語
- C#
- スター
- 783
- フォーク
- 80
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/node-api-dotnet のほかの issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
microsoft/node-api-dotnet#484 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
microsoft/node-api-dotnet#481 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 82/100
microsoft/node-api-dotnet#502 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
microsoft/node-api-dotnet#486 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
microsoft/node-api-dotnet#479 ·
microsoft/node-api-dotnet の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
lay295/TwitchDownloader#1675 ·
-
copilot documentation
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
space-wizards/RobustToolbox#7119 ·
メンテナーはふだん 1 日以内に返信
-
Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 4 日以内に返信
-
.NET Bug Waiting for: Product Owner
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
getsentry/sentry-dotnet#5666 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信