[GH-ISSUE #625] Bug report feature #501

Closed
opened 2026-02-27 02:01:55 +03:00 by kerem · 4 comments
Owner

Originally created by @jaredballou on GitHub (Jan 12, 2016).
Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/625

I would like to start a discussion about a "bug report" feature baked into the scripts. What I am thinking is, that we can collect some basic information such as:

  • OS/architecture
  • Game in use
  • Versions of scripts and game
  • Package listing
  • Last 100 logs of pertinent console/server logs
  • Per-game specifics, i.e. for Source servers the contents of addons/sourcemod/plugins or for Unreadl engine the active mutators.

I'm sure there are a lot of other items that would be useful, but I think if we can come up with the bulk of the data points, and then have a system which either uploads that to PasteBin or even create a GitHub issue, it would solve a lot of the initial confusion of a user reporting an issue and us having to ask the same questions.

Questions we'd need to answer:

  • How do we want to receive and triage these issues?
  • Do we want a feature where a server crashing automatically sends a report?
  • How do we make sure users know about the feature, and opt-in to the reporting?
  • How do we ensure we don't accidentally expose passwords or other sensitive data as a result of this?
  • This may significantly increase the bug reports, how do we want to handle initial triage and assignment?
Originally created by @jaredballou on GitHub (Jan 12, 2016). Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/625 I would like to start a discussion about a "bug report" feature baked into the scripts. What I am thinking is, that we can collect some basic information such as: - OS/architecture - Game in use - Versions of scripts and game - Package listing - Last 100 logs of pertinent console/server logs - Per-game specifics, i.e. for Source servers the contents of addons/sourcemod/plugins or for Unreadl engine the active mutators. I'm sure there are a lot of other items that would be useful, but I think if we can come up with the bulk of the data points, and then have a system which either uploads that to PasteBin or even create a GitHub issue, it would solve a lot of the initial confusion of a user reporting an issue and us having to ask the same questions. Questions we'd need to answer: - How do we want to receive and triage these issues? - Do we want a feature where a server crashing automatically sends a report? - How do we make sure users know about the feature, and opt-in to the reporting? - How do we ensure we don't accidentally expose passwords or other sensitive data as a result of this? - This may significantly increase the bug reports, how do we want to handle initial triage and assignment?
kerem 2026-02-27 02:01:55 +03:00
Author
Owner

@UltimateByte commented on GitHub (Jan 15, 2016):

I see some interesting ideas there.

"Last 100 logs of pertinent console/server logs"

As the log cleaner cleans logs after 7 days, and considering the size that logs can get, 100 may be a bit too much.
Otherwise, i pretty much agree.

I also think nothing should be sent by the script without user's agreement, and changing that setting could be done easily at any moment.

Another question would be : What port would this use ?

About your interrogations :

How do we want to receive and triage these issues?

I guess the script couldn't make issues on github + it would be a pain to manage.
A good way could be to make the script communicate with a defined server, then send it to the server. The problem is that it would open the way to fake reports, so we'd need to consider securing it. Then we'd have an interface to visualize those reports. That interface should be made so it's not a pain to fetch all the data, as it will probably be simple text only.

Do we want a feature where a server crashing automatically sends a report?

Would be cool. Would even be nice to have an automatic report to a master server, just to say that a server is running and have a count of how many people are running servers from any game. As long as users accept feedback. That way we could collect some data to help us improve the script.

How do we make sure users know about the feature, and opt-in to the reporting?

At install, it could ask if user wants that feature. For report, could be a dedicated function, or the dev-debug function that sends it.
Another question would be : How to store this setting ?
But here i've got an idea that could be used for other things too : Put settings in an lgsm.conf file that would be at the root path (same as the main script). I should make a suggestion for that, as i think it would be cool to have a ./scriptname config function, that would make an assistant for that, and create the lgsm.conf file. At install, it would ask if you want to change default server ports and settings. That way, people could either use the assistant, or edit the lgsm.conf, and they would have no need to edit the server script. That would raise two questions here : How to support custom game settings without writing a new script for every game ? (i already think of a way). And how do we support multiple servers with that way of doing ? (got ideas too).

How do we ensure we don't accidentally expose passwords or other sensitive data as a result of this?

As some logs can include steam password and logins, they need to be removed before sending, especially if those reports are public. The server recieving them could make a double check to remove them.

This may significantly increase the bug reports, how do we want to handle initial triage and assignment?

Would be cool first, that every machine, or every server installation gets a unique ID to help sorting this. Then the user should get an important notification given by the script with a "report number ID" to give to us when he's coming on github to report a bug.

Here are my thoughts at the moment. Hope that helps.

<!-- gh-comment-id:172058598 --> @UltimateByte commented on GitHub (Jan 15, 2016): I see some interesting ideas there. > "Last 100 logs of pertinent console/server logs" As the log cleaner cleans logs after 7 days, and considering the size that logs can get, 100 may be a bit too much. Otherwise, i pretty much agree. I also think nothing should be sent by the script without user's agreement, and changing that setting could be done easily at any moment. Another question would be : What port would this use ? About your interrogations : > How do we want to receive and triage these issues? I guess the script couldn't make issues on github + it would be a pain to manage. A good way could be to make the script communicate with a defined server, then send it to the server. The problem is that it would open the way to fake reports, so we'd need to consider securing it. Then we'd have an interface to visualize those reports. That interface should be made so it's not a pain to fetch all the data, as it will probably be simple text only. > Do we want a feature where a server crashing automatically sends a report? Would be cool. Would even be nice to have an automatic report to a master server, just to say that a server is running and have a count of how many people are running servers from any game. As long as users accept feedback. That way we could collect some data to help us improve the script. > How do we make sure users know about the feature, and opt-in to the reporting? At install, it could ask if user wants that feature. For report, could be a dedicated function, or the dev-debug function that sends it. Another question would be : How to store this setting ? But here i've got an idea that could be used for other things too : Put settings in an lgsm.conf file that would be at the root path (same as the main script). I should make a suggestion for that, as i think it would be cool to have a ./scriptname config function, that would make an assistant for that, and create the lgsm.conf file. At install, it would ask if you want to change default server ports and settings. That way, people could either use the assistant, or edit the lgsm.conf, and they would have no need to edit the server script. That would raise two questions here : How to support custom game settings without writing a new script for every game ? (i already think of a way). And how do we support multiple servers with that way of doing ? (got ideas too). > How do we ensure we don't accidentally expose passwords or other sensitive data as a result of this? As some logs can include steam password and logins, they need to be removed before sending, especially if those reports are public. The server recieving them could make a double check to remove them. > This may significantly increase the bug reports, how do we want to handle initial triage and assignment? Would be cool first, that every machine, or every server installation gets a unique ID to help sorting this. Then the user should get an important notification given by the script with a "report number ID" to give to us when he's coming on github to report a bug. Here are my thoughts at the moment. Hope that helps.
Author
Owner

@jaredballou commented on GitHub (Jan 19, 2016):

Good thoughts, I think we are on the same page. I meant 100 lines not logs, d'oh :)

In regards to the config thing, I'm two steps ahead of you, check my latest issue to see what I've been doing to minimize the headaches of supporting all the games and saving configs. It's trivial to add more variables to the system I have, so tat could be done.

For the rest, it's probably good if we just mock up a copy of the script with some instrumentation and try it out from our local machines. I just need a bit more detail on what we actually need, and I can throw something together.

<!-- gh-comment-id:172961257 --> @jaredballou commented on GitHub (Jan 19, 2016): Good thoughts, I think we are on the same page. I meant 100 lines not logs, d'oh :) In regards to the config thing, I'm two steps ahead of you, check my latest issue to see what I've been doing to minimize the headaches of supporting all the games and saving configs. It's trivial to add more variables to the system I have, so tat could be done. For the rest, it's probably good if we just mock up a copy of the script with some instrumentation and try it out from our local machines. I just need a bit more detail on what we actually need, and I can throw something together.
Author
Owner

@UltimateByte commented on GitHub (Feb 4, 2016):

Let's say this is pretty similar to https://github.com/dgibbs64/linuxgsm/issues/586
Closing this, but link it for record !

<!-- gh-comment-id:179832000 --> @UltimateByte commented on GitHub (Feb 4, 2016): Let's say this is pretty similar to https://github.com/dgibbs64/linuxgsm/issues/586 Closing this, but link it for record !
Author
Owner

@lock[bot] commented on GitHub (Apr 1, 2019):

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

<!-- gh-comment-id:478548819 --> @lock[bot] commented on GitHub (Apr 1, 2019): This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Sign in to join this conversation.
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#501
No description provided.