[Bug]: Half-Life WON2 and Counter-Strike WON2 servers do not answer queries

オープン
#5,142 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
1週間以上
初心者へのやさしさ
18/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
linux, nodejs, shell
領域
networking

調査の方向性

The failing path is the WON2 query handling in the LinuxGSM game server scripts for hlwonserver and cswonserver, with start and monitor driving it. Reproduce by starting the server in a clean ubuntu-26.04 container and sending a WON details query to port 27015, then trace hlds_run for setsockopt or a second socket set up by the preloaded libraries. Done means the server answers the protocol-valve-won query so monitor passes.

索引モデルが issue の本文から書いたものです。

説明

command: monitor command: start distro: Ubuntu engine: goldsrc game: Counter-Strike: WON2 game: Half-Life: WON2 info: docker info: query reproducible: always severity: medium type: bug
Severity

severity: medium

Reproducibility

reproducible: always

Regression

regression: unknown

Affects latest release

latest-release: no

User story

As a Half-Life WON or Counter-Strike WON server owner, I want the server to answer queries so that monitor keeps it running and players can find it.

Script name

hlwonserver, cswonserver

Game

Half-Life: WON2, Counter-Strike: WON2

Linux distro

Ubuntu 26.04, Ubuntu 24.04, Ubuntu 22.04

Command

command: start, command: monitor

Expected behavior

The server answers the protocol-valve-won query on its game port, so monitor passes.

Actual behavior

The server starts and reaches Server IP address <ip>:27015, and HLShield 1.14 loads. It never answers any query: not the WON details query, not A2S_INFO and not info. monitor therefore restarts it. This is the same with the hosted archive (hlds_l-3111e-won2-linuxgsm.tar.xz) and with a rebuilt one.

What has been checked so far:

  • hlds_run starts ./hlds_i686 -noipx +sv_lan 1 ... with LD_PRELOAD="./nowon.so ./hlds_20040707fix.so ./hlshield.so".
  • The process binds UDP 0.0.0.0:27015 and reads from it all the time (strace shows recvfrom about every 10 ms, always EAGAIN).
  • tcpdump shows the query packets reaching the container's interface, but strace never sees one arrive at the socket. The socket's receive queue and drop count stay at 0, and UDP InErrors and NoPorts do not move.
  • Same result on Ubuntu 26.04, 24.04 and 22.04, on two different hosts, when querying from the host, from inside the container and over loopback, with different preload combinations, and with a faked date.

Only develop is affected. hlwon and cswon are not in a release yet (#5104, #5105).

Further information

#5104 and #5105 report queries passing on 23 October with the same archive (md5 83164405c744a5e424814e67eacf27fb). The quickest way forward is probably to repeat exactly how those tests were run (Docker network mode, where the query came from, the query tool) and find what is different.

Other ideas:

  • Trace from process start (strace -f -o on hlds_run) and look for a setsockopt call such as SO_ATTACH_FILTER, or a second socket, set up by one of the preloaded libraries.
  • Try without +sv_lan 1, and with each preload left out one at a time, while tracing.
Pre-checks
  • I ran update and validate before reporting this issue.
Relevant log output
Server IP address 172.17.0.2:27015
Steps to reproduce
  1. In a clean gameservermanagers/linuxgsm:ubuntu-26.04 container on develop, run ./linuxgsm.sh hlwonserver, ./hlwonserver auto-install and ./hlwonserver start.
  2. Wait two minutes, then send the WON details query (\xff\xff\xff\xffdetails\0) or A2S_INFO to the container IP on port 27015.
  3. Nothing comes back, and ./hlwonserver monitor restarts the server.
主要言語
Shell
スター
4.9k
フォーク
871
平均マージ
1日 7時間
マージ済み PR(30日)
133

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

GameServerManagers/LinuxGSM のほかの issue

GameServerManagers/LinuxGSM の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。