cxong / cdogs-sdl

Classic overhead run-and-gun game
https://cxong.github.io/cdogs-sdl/
GNU General Public License v2.0
868 stars 115 forks source link

Arch Linux x86_64: Segfault on startup #830

Closed V0rt3x667 closed 2 months ago

V0rt3x667 commented 6 months ago

I am running Arch Linux x86_64 and I keep getting the following error: 20231230-004717 ERROR [MAIN ] [player_template.c:111] PlayerTemplatesLoad(): loading player templates 'players.cnf'

I have tried building from source from the 1.5.0 branch and from the master branch. I have also tried the precompiled binaries from the Releases page. 1.5.0, 1.4.1 & 1.4.0 and get the same error message.

V0rt3x667 commented 6 months ago

I tested the Windows version from the Releases page and ran it under WINE. I can see the same error message in the terminal, however CDogs-SDL runs fine. For some reason the Linux version segfaults.

cxong commented 6 months ago

this error occurs if the player templates file is missing - it should be normal since new players won't have this file. It should not segfault though. Will need more info about where exactly this segfault is happening.

Furyspark commented 6 months ago

I am also experiencing a segfault when starting up the game on Arch Linux. When running the game from a terminal, I get the following output:

tijmen@abaddon ~> cdogs-sdl
C-Dogs SDL v1.5.0
SDL version 2.28.5
SDL_image version 2.6.3
SDL_mixer version 2.6.3
20240106-161259 INFO  [MAIN ] [files.c:669] SetupConfigDir(): Creating config dir /home/tijmen/.config/cdogs-sdl/...
20240106-161259 INFO  [MAIN ] [files.c:676] SetupConfigDir(): Config dir already exists.
Error loading config '/home/tijmen/.config/cdogs-sdl/options.cnf'
20240106-161259 INFO  [MAIN ] [cdogs.c:141] main(): Command line (1 args): cdogs-sdl
20240106-161301 INFO  [GFX  ] [grafx.c:119] GraphicsInitialize(): graphics mode(320x240 2x)
20240106-161301 INFO  [MAIN ] [cdogs.c:192] main(): data dir(/usr/share/cdogs)
20240106-161301 INFO  [MAIN ] [cdogs.c:193] main(): config dir(/home/tijmen/.config/cdogs-sdl/)
Error loading autosave '/home/tijmen/.config/cdogs-sdl/autosave.json'
20240106-161302 INFO  [INPUT] [joystick.c:60] JoyInit(): 0 controllers found
20240106-161302 ERROR [MAIN ] [player_template.c:128] PlayerTemplatesLoad(): loading player templates 'players.cnf'
20240106-161302 INFO  [MAIN ] [campaigns.c:186] LoadAllCampaigns(): Load campaigns from system...
20240106-161302 INFO  [MAIN ] [campaigns.c:190] LoadAllCampaigns(): Load campaigns from dir /usr/share/cdogs/missions...
20240106-161303 INFO  [MAIN ] [campaigns.c:195] LoadAllCampaigns(): Load dogfights from dir /usr/share/cdogs/dogfights...
20240106-161303 INFO  [MAIN ] [campaigns.c:199] LoadAllCampaigns(): Load quick play...
20240106-161303 INFO  [MAIN ] [cdogs.c:294] main(): Starting game
fish: Job 1, 'cdogs-sdl' terminated by signal SIGSEGV (Address boundary error)

Is there anything specific you'd want me to do to get you the information you need?

cxong commented 5 months ago

Hi @MikauSchekzen your problem sounds like a different one - can you please open a separate issue also, it would be helpful to have the following:

V0rt3x667 commented 5 months ago

I have attached a trace log. I hope that helps. trace.log

V0rt3x667 commented 3 months ago

Same issue as #852

V0rt3x667 commented 2 months ago

Building sdl2_mixer with default options & linking statically to CDogs fixes the issue. As per https://github.com/cxong/cdogs-sdl/issues/852 the issue is with the sdl2_mixer shipped by Arch Linux since version 2.6.3-2.