-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve ChobbyLauncher crash reporting #2978
Conversation
5126a86
to
ee189f7
Compare
Have you tested this on both recent and older infologs? In github it could also be attached to wiki I think. Hmm @GoogleFrog do you have some feedback on this? Otherwise it looks fine to me. We could also keep it in releases but it means we have to clean that periodically. |
Thanks for looking at this, and thanks for the feedback. Testing on older infolog.txtIn reality, the parsing will be run on I will perform more detailed testing and analysis over the weekend. File uploadingOver the past year, there were ~38000 issues created in CrashReports. Going off the infolog/GameState files that I have, the expected (compressed) file sizes are:
Multiplying this out, we get yearly growth estimate:
This immediately rules out using a GitHub wiki (since GitHub wikis are Git repositories). From https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github#repository-size-limits
For GitHub Releases, there is no problem. From https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github#distributing-large-binaries
As for uploading it to the server or to Azure Blobs: the amount of data doesn't prohibit this, as long as the files aren't retained for more than a year or two. If you have a preferred method, I'm willing to implement it (but it does look like a lot more work for me, compared to the GitHub releases version that I have already done). In the current version, an untruncated |
@Licho1 I like the sound of wiki over releases. Otherwise I don't have much feedback as I don't know the technical details of the current system. |
a878f6e
to
36d45f2
Compare
Adds "GameStateFor-{gameID}" and "HasDesyncGameState" labels whenever a crash report includes GameState for a desync. Add "HasLinkedDesyncIssue" label when there is an Issue with a matching "GameStateFor-{gameID}" label. Adds links to existing Issues to the description of the new Issue.
This will only work if the ZeroK-RTS/CrashReports repository has a branch named "main". Currently the files that are uploaded are: infolog_full.txt (not truncated) GameState files (if there is a desync)
Closing for now. If there is interest in the future I'll open a new pull request. |
The primary purpose of these improvements is to collect more desync data.
See this example issue: Mankarse/Zero-K-Debug#34
I have split the changes into 5 commits, ordered from least to most controversial.
The first three commits are uncontroversial improvements.
The remaining two commits might be controversial, because they use GitHub in an unusual way.
1) Updated Octokit.net to the latest version
This contains a necessary bugfix. You should apply this, even if you do nothing else with my Pull Request.
2) Improve the algorithm in CrashReportHelper.Truncate
The new algorithm is required for the later commits to work.
It is still valuable even if they later commits are not used, because it is much faster.
The only downside is that its implementation is much larger.
3) Improve parsing of infolog_full.txt
Splits infolog by game, and extracts GameID, Desync locations, GameState file names.
Includes GameState file names in the Issue description (if they are relevant).
4) Use Issue Labels to link desync issues arising from the same game
Adds "GameStateFor-{gameID}" and "HasDesyncGameState" labels whenever a crash report includes GameState for a desync.
Add "HasLinkedDesyncIssue" label when there is an Issue with a matching "GameStateFor-{gameID}" label.
Adds links to existing Issues to the description of the new Issue.
This will create an unbounded number of Labels (one for each gameID).
Please suggest better names for these Labels, if you have any ideas.
5) Upload files to GitHub
This works by creating a "Release" for every 250 issues, and then uploading the files to that release.
The main risk of changes 4 and 5 is that they increase the chance that the ZeroK-RTS/CrashReports will hit
usage limits.
I am not aware of any documented limits that will be exceeded, but it is possible that GitHub will not like the unusual way that CrashReports will be being used.