[Bug]: A failed command exits with 0 when core_exit.sh is downloaded on exit
Maintainer thường phản hồi trong vòng 1 ngày
Một pull request liên quan đã được merge.
- #5192 của @borzaka — đã merge
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Read core_modules.sh and core_dl.sh, focusing on core_exit.sh(), fn_fetch_module, and fn_fetch_file around the local exitcode declaration. Reproduce with a fresh instance and the reported start command inside tmux, then compare its exit code before and after core_exit.sh is present. Done means the first failing run returns its original nonzero code; linked pull request #5192 is merged.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Severity
severity: low
Reproducibility
reproducible: always
Regression
regression: no
Affects latest release
latest-release: yes
User story
As a server admin who runs LinuxGSM from scripts or cron, I want a failed command to return a non-zero exit code on a new instance too, so that the failure is not reported as success.
Script name
ts3server (any server is affected)
Game
Teamspeak 3
Linux distro
Debian 13
Command
command: start
Expected behavior
The command exits with the code it set, as it does on later runs (1 for the tmuxception error below).
Actual behavior
If lgsm/modules/core_exit.sh has not been downloaded yet, it is downloaded on exit and the command exits with 0. The same command exits with 1 once the file exists.
Further information
core_exit.sh() in core_modules.sh loads the module with fn_fetch_module, and fn_fetch_file (core_dl.sh) sources it inside its own function. When the file is missing, fn_fetch_file first declares local exitcode="" (line 505), which the curl result and fn_script_log_pass "Downloading ..." set to 0, so core_exit.sh exits with that local instead of the caller's code. Once the file exists the download branch is skipped, so only the exit that downloads core_exit.sh is affected, usually the first failing command on a new instance. The pattern is already in v21.3.2; #4159 only changed local exitcode=$? to local exitcode="". A fix is to download core_exit.sh without running it, keep exitcode, and then load it as before. Related but different exit code fixes: #5060, #5109, #5113.
Pre-checks
- I ran update and validate before reporting this issue.
Not run: found by code review and reproduced on a new develop instance, which has nothing to update or validate yet.
Relevant log output
# New ts3server instance from develop (11103431), Debian 13 (WSL2), run inside a tmux session.
$ ./ts3server start; echo $?
[ FAIL ] Starting ts3server: tmuxception error: Sorry Cobb you cannot start a tmux session inside of a tmux session.
...
fetching GitHub [ core_exit.sh ] ... OK
0
$ ./ts3server start; echo $?
[ FAIL ] Starting ts3server: tmuxception error: Sorry Cobb you cannot start a tmux session inside of a tmux session.
...
1
Steps to reproduce
- Create a new instance:
curl -Lo linuxgsm.sh https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/develop/linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh ts3server. - Inside a tmux session, run
LGSM_GITHUBBRANCH=develop ./ts3server start; echo $?. It fails with the tmuxception error, fetchescore_exit.shlast and prints 0. - Run the same command again. It prints 1.
🤖 Generated with Claude Code
- Ngôn ngữ chính
- Shell
- Star
- 4.9k
- Fork
- 870
- Merge trung bình
- 18 giờ 44 phút
- Pull request đã merge (30 ngày)
- 148
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của GameServerManagers/LinuxGSM
-
command: start distro: Debian engine: null game: Teamspeak 3 reproducible: always severity: low type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
GameServerManagers/LinuxGSM#5193 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
command: start engine: unreal4 game: The Front reproducible: always severity: medium type: bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
GameServerManagers/LinuxGSM#5185 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug(ins): server fails to start, srcds_run has CRLF line endings and needs bashCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởdistro: Ubuntu engine: source game: Insurgency status: fixed in develop
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
GameServerManagers/LinuxGSM#5153 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: cs2server ignores the GSLT entered during installCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởcommand: install command: start distro: Debian engine: source2 game: Counter-Strike 2 regression: yes reproducible: always severity: high type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
GameServerManagers/LinuxGSM#5106 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: install passes a leftover forcedl value instead of each server's force settingCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởcommand: install info: steamcmd reproducible: unable severity: low status: fixed in develop type: bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 25/100
GameServerManagers/LinuxGSM#5189 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của GameServerManagers/LinuxGSM
Issue tương tự
-
Isha NarulaĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
dataplat/DataSpeakers#178 ·
-
[BUG] mo clean deletes Cypress test runner binaries in ~/Library/Caches/CypressCó thể đã có người làm @viniciusdsandrade đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Min. CMake job: CMAKE_POLICY_VERSION_MINIMUM is not passed for CMake 3.16 (follow-up to #358)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
enhancement security severity:low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Battle-Cattle/BCUK-Bot-4#959 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
mattabate/life-distributable#153 ·
Maintainer thường phản hồi trong vòng 1 ngày