Desktop app: a log file write error shows an uncaught-exception dialog.
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 74/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- electron, javascript, node.js
- 領域
- desktop
調査の方向性
electron/main.js から始めます。initLogging(137行目付近)は fs.createWriteStream でログ用ストリームを作成しますが、その error イベントを一度も監視していません。また log() は logFile.write を try/catch で囲んでいますが、これでは非同期エラーを捕捉できません。ダイアログが表示される経路を確認するため、uncaughtException ハンドラ(964行目付近)を読んでください。ストリームのエラーでファイルへのログ記録が無効になり、コンソールへの報告が一度だけ行われ、未処理例外のダイアログが表示されないことで完了です。書き込みエラーを強制的に発生させ、コンソールへのログ出力が継続することを確認して検証してください。
索引モデルが issue の本文から書いたものです。
説明
In the desktop app, a failure writing the log file (disk full, permissions) shows an "Uncaught exception" error dialog, because the log file's stream has no error handler.
- How it works today.
initLoggingopens the log withfs.createWriteStream(...)(electron/main.js:137) and never listens for itserrorevent.log()wrapslogFile.write(...)in atry/catch, but a write error arrives later as anerrorevent, not a throw. - What happens. With no listener, the error goes to the
uncaughtExceptionhandler (:964), which shows the "Widgetizer Desktop Error" dialog. Its ownlog()call then writes to the stream that already failed. Not a crash loop, but a disk-full machine gets an alarming dialog about logging, and file logging stops silently afterwards. - Found in a review of streams that are left open or unhandled (alongside #215), confirmed against the code on 2026-11-02. Desktop app only.
Fix: attach an error listener that turns file logging off and reports the failure once to the console; end() the stream on an orderly quit.
Done when: a log stream that errors turns file logging off without the uncaught-exception dialog, and console logging carries on.
Start: electron/main.js.
- 主要言語
- JavaScript
- スター
- 162
- フォーク
- 6
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
tsiger/widgetizer のほかの issue
-
bug page editor
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
tsiger/widgetizer#235 ·
-
bug projects ux
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
tsiger/widgetizer#234 ·
-
bug editor
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
tsiger/widgetizer#231 ·
-
enhancement projects
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
tsiger/widgetizer#216 ·
-
question
難易度 1/5 1〜3時間 初心者へのやさしさ 82/100
tsiger/widgetizer#194 ·
tsiger/widgetizer の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ImranR98/apps.obtainium.imranr.dev#2000 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
microsoft/monaco-editor#5577 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
obsidianmd/obsidian-help#1169 ·
メンテナーはふだん 2 日以内に返信
-
[docs] RELEASE.md: wrong branch name, no check that the prepare PR merged with the right subject, manual publish step対応中かも @albertteoh が今日担当しました。 オープンdocumentation
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
jaegertracing/jaeger-ui#4739 ·
メンテナーはふだん 1 日以内に返信