[Bug]: Dystopia segfaults on start: missing 32-bit libcurl

Abierto
#5,159 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #5160 de @dgibbs64 — fusionado

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
bash, linux
Área
cli, devops

Línea de trabajo

Start by reading the dys dependency row in lgsm/data/*.csv and compare it with the missing libcurl-gnutls.so.4 reported by ldd -r. Check the dependency conventions for 32-bit packages and confirm the fix installs the required libcurl package; done means the server starts and answers queries with the dependency listed.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

distro: Ubuntu engine: source game: Dystopia info: dependency info: docker status: fixed in develop type: bug
Severity

High: the server does not start

Reproducibility

Always

Regression

Not a regression: the dependency has never been listed

Affects latest release

Yes

User story

As a Dystopia server owner, I want the server to start, so that players can join.

Script name

dysserver

Game

Dystopia

Linux distro

Ubuntu 26.04 (the gameserver:dys docker image). Any distro that installs only the listed dependencies is affected.

Command

start

Expected behavior

The server loads its map and answers queries.

Actual behavior

srcds crashes in a loop straight after breakpad init, with no error message. The kernel logs a NULL function call: srcds_linux: segfault at 0 ip 0000000000000000.

Further information

Backtrace under gdb:

#0  0x00000000 in ?? ()
#1  CModAppSystemGroup::Create() () from bin/linux32/engine_srv.so
#2  CAppSystemGroup::OnStartup() () from bin/linux32/engine_srv.so
#3  CAppSystemGroup::Run() () from bin/linux32/engine_srv.so
#4  CDedicatedServerAPI::ModInit(ModInfo_t&) () from bin/linux32/engine_srv.so

ServerDLL_Load returns, then the engine calls the server factory, which is NULL because bin/linux32/server_srv.so failed to load:

$ ldd -r bin/linux32/server_srv.so
	libcurl-gnutls.so.4 => not found
undefined symbol: curl_global_init, version CURL_GNUTLS_3

The dys row in the dependency lists (lgsm/data/*.csv) is empty, so 32-bit libcurl is never installed. Installing libcurl4-gnutls-dev:i386 makes the server start and answer queries.

Relevant log output
Using breakpad minidump system. Version: 1 AppID: 17580
Setting breakpad minidump AppID = 17580
Using breakpad crash handler
./srcds_run.sh: line 62: Segmentation fault (core dumped) ${DEBUGGER} "${GAMEROOT}"/bin/${PLATFORMDIR}/${GAMEEXE} "$@"
Steps to reproduce
  1. Install dysserver on Ubuntu 26.04 with only the listed dependencies.
  2. Run ./dysserver start.
  3. The console shows a segfault after Using breakpad crash handler, and the server never answers a query.
Lenguaje dominante
Shell
Estrellas
4.9k
Forks
870
Merge medio
20 h 11 min
PR fusionados (30 d)
135

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de GameServerManagers/LinuxGSM

Todos los issues de GameServerManagers/LinuxGSM

Issues similares

Más issues de Shell/Bash

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.