If POST takes longer than 8 seconds, installer immediately gives up rather than continuing to wait
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript, python
調査の方向性
インストーラーのフロントエンドコードで、XMLHttpRequestのタイムアウト処理を確認してください。POSTリクエストを管理するJavaScriptファイルにある可能性が高いです。バックエンドのスキャンロジックはPythonにあります。ゲームパス検出関数を調べてください。このissueは、スキャンタイムアウトとキャンセルボタンに関するコミットを言及しています。現在の状態を理解するために、それらの変更をレビューしてください。リクエストをキャンセルしないようにタイムアウトを変更する方法を決定し、それに応じてエラーメッセージを調整してください。
索引モデルが issue の本文から書いたものです。
説明
We had an issue where a user had an infinite loading screen on the part of the installer which autodetects game paths.
There were no relevant errors on the install log, but the browser showed a POST error, as if the python side never responded.
What actually happened was that the python side had no errors, but it took longer than 8 seconds to respond. Because the HTML side gives up after 8 seconds, the HTML side raised an error, but the Python side did not. This was because I implemented the timeout using the native XMLHttpRequest timeout functionality, which cancels the POST after a timeout (...or at least I think that's how it works).
The installer should really show an error after 8 seconds (or however many seconds), but continue to listen for the response.
The error message should also be adjusted to tell the user to wait some time in case the operation just takes a long time.
I actually had hard-coded that if the request type was showFileChooser, there was no POST timeout, but I feel hard-coding specific requests to not the right way to do this.
A related issue is why the game scanning step took so long - the user was using a SSD, and didn't have that many games installed on their computer. It could be:
- my installer is doing something really bad and taking ages
- your computer is slow for some reason
- there is a game which causes the installer's scanning algorithm to give worst-case behavior
The scanning should really give up if it took more than a certain amount of time to scan, as even if scanning fails, the installer can still be used. Or perhaps have a per-directory scan timeout.
The installer also doesn't print how long/which folders were scanned,
- Fix POST timeout behavior
- Investigate slow game scanning
- Set a timeout on game scanning (make sure to only enable this when scanning many paths, not when checking a user-specified path) 4efd0b9f3ef1691ff3c4ac8ec281c343587184da
- Add button to cancel scanning (currently becomes greyed out forever if scanning never finishes) e6371a58aa81bcc1fcbe6ad2bf75cd215feaac26
- 主要言語
- JavaScript
- スター
- 214
- フォーク
- 12
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
07th-mod/python-patcher のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
07th-mod/python-patcher#214 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
07th-mod/python-patcher#193 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
07th-mod/python-patcher#137 ·
-
enhancement help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
07th-mod/python-patcher#83 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
07th-mod/python-patcher#80 · コメント 11 件 ·
07th-mod/python-patcher の issue をすべて見る
似ている issue
-
chore v2
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
modelcontextprotocol/servers#5115 ·
メンテナーはふだん 1 日以内に返信
-
beginner bug good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
philaconvalley/website#168 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
druxt/umami.demo.druxtjs.org#527 ·
メンテナーはふだん 9 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
NuSkooler/enigma-bbs#907 ·
メンテナーはふだん 1 日以内に返信
-
documentation good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100