oomek/attractplus

Segfault on --build-romlist

Closed this issue · 5 comments

Happens in both v3.0.8 and v3.0.9, compiled on Ubuntu 24.04:

Building romlists always works, except under one specific condition, whenever "qsound_hle.zip" exists in the roms directory, a segfault will follow on building romlists.

Example 1

Files under ~/mame/roms/:
ssf2t.zip
qsound_hle.zip

Command
attractplus -b foobar

Result

*** Generating Collection/Rom List: foobar
 - Found 2 files.
 - Obtaining -listxml info...150%
Segmentation fault (core dumped)

Example 2

Files under ~/mame/roms/:
ssf2t.zip
neo_geo.zip

Command
attractplus -b foobar

Result

*** Generating Collection/Rom List: foobar
 - Found 2 files.
 - Obtaining -listxml info...100%
 - Discarded 1 entries based on xml info: neogeo 
 - Removing any duplicate entries...
 + Writing 1 entries to: /home/X/.attract/romlists/foobar10.txt

Summary

The romlist builder will always exclude bios files from building, except on "qsound_hle.zip", the builder will segfault.

Does anyone has some idea? Maybe this is a upstream (Attract) issue?

oomek commented

Unfortunately I was not able to reproduce the error:

ssf2t.zip and neo_geo.zip present in roms directory

D:\EMU\ATTRACT-TEST>attractplus-console -b mame
*** Generating Collection/Rom List: mame
 - Found 2 files.
 - Removing any duplicate entries...
 + Writing 2 entries to: D:\EMU\ATTRACT-TEST\romlists/mame.txt

ssf2t.zip and qsound_hle.zip present in roms directory

D:\EMU\ATTRACT-TEST>attractplus-console -b mame
*** Generating Collection/Rom List: mame
 - Found 2 files.
 - Removing any duplicate entries...
 + Writing 2 entries to: D:\EMU\ATTRACT-TEST\romlists/mame.txt
oomek commented

Btw, I normally have all mame bios files in a separate directory that is only configured in mame, AM does not have access to it.
The above tests were performed with bios files accessible to AM.

Hmm that is strange. I could get this to fail reliable.

Since I use Ansible to provision my cabinet, I have the freedom to separate bios and roms, thus have a workaround.

I created this ticket because I expected this to be a blocker for other people. But if you can not replicate, then it will not be an issue for other people.

Thanks for the investigation!

oomek commented

My tests were performed on Windows, but I've just done the same on Arch Linux.
There is indeed a segfault with bios files.
neogeo.zip segfault
neo_geo.zip pass
qsound_hle.zip segfault

There is no neo_geo entry in list.xml. If you rename it to neogeo the segfault is consistent.

I'm reopening the case and I'll try to get to the bottom of this.

oomek commented

Please test the latest binary and report.
https://github.com/oomek/attractplus/actions/runs/11126364043