Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on Fedora 30 #476

Closed
jorritjorritsma opened this issue Jul 1, 2019 · 19 comments
Closed

Crash on Fedora 30 #476

jorritjorritsma opened this issue Jul 1, 2019 · 19 comments

Comments

@jorritjorritsma
Copy link

jorritjorritsma commented Jul 1, 2019

Do you want to request a feature or report a bug?

Bug

What did you do?

I started the application

What did you expect to see?

the performous application

What did you see instead?

Performous crashed immediately with the following output

performous
logger/notice: Logging all notices, warnings and errors. Log file: /home/jorrit/.cache/performous/infolog.txt
core/notice: Performous 1.1+ starting...
  Internationalization: Enabled
  MIDI Hardware I/O:    Enabled
  Webcam support:       Enabled
core/notice: Starting the audio subsystem (errors printed on console may be ignored).
audio/error: Audio device 'dev="USBMIC" mics="blue,red"': No such device.
audio/error: Audio device 'dev="Microphone" mics="*"': No such device.
songs/notice: Done loading the cache. You now have 0 songs in your list.
songs/notice: Starting to load all songs from disk, to update the cache.
songs/notice: Done Loading. Loaded 0 Songs.
songs/notice: Done Caching.
/usr/include/c++/9/bits/stl_vector.h:1042: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
Aborted (core dumped)

Output of performous --version: (What version of Performous are you using?)

Performous 1.1+

What is your environment & configuration (arguments, platform, ...)?

OS: Fedora 30 x86_64
System: HP EliteBook 840 G3

As Performous didn't work to my expectations on Ubuntu 19.04 I tried Fedora, hence this was a newly installed system with rpmfusion enabled.

@skmqpbusfz
Copy link

I noticed the same problem after my upgrade to Fedora 30. I decided to compile the current revision myself (was e956825). It did crash just the same.
After debigging I knew it crashed when parsing the controllers.xml specifically at line 277:
<device regex="Harmonix Drum [Kk]it for PlayStation" />

After deleting this controller section and the next section (same square bracket regex) the program still crashed on startup but in a different place but also calling std::regex.

When replacing all calls of std::regex in the program with boost::regex as was the case before commit c732f9b the the program works flawlessly on Fedora 30.

I am compiling with gcc version 9.1.1 20190503 (Red Hat 9.1.1-1).

I do not know enough about the differences in the regex implementations betweet STL and boost so I would not call the step back to boost a fix for this problem, just some insight.

@skmqpbusfz
Copy link

Issue still persists in Fedora 31. Tested version is 1.2-0.3.20190419git4ed8ec7.fc31

@Baklap4
Copy link
Member

Baklap4 commented Jan 20, 2020

With what version of performous did you test? (what commit hash)

@Lord-Kamina
Copy link
Contributor

@Baklap4 from that version tag, I guess it would be 4ed8ec7

@skmqpbusfz
Copy link

Yes, I also would think that the commit hash is 4ed8ec7. But there should be some insight in my previous comment on Jul 6, 2019:

I noticed the same problem after my upgrade to Fedora 30. I decided to compile the current revision myself (was e956825). It did crash just the same.
After debigging I knew it crashed when parsing the controllers.xml specifically at line 277:
<device regex="Harmonix Drum [Kk]it for PlayStation" />

After deleting this controller section and the next section (same square bracket regex) the program still crashed on startup but in a different place but also calling std::regex.

When replacing all calls of std::regex in the program with boost::regex as was the case before commit c732f9b the the program works flawlessly on Fedora 30.

I am compiling with gcc version 9.1.1 20190503 (Red Hat 9.1.1-1).

I do not know enough about the differences in the regex implementations betweet STL and boost so I would not call the step back to boost a fix for this problem, just some insight.

@Baklap4
Copy link
Member

Baklap4 commented Jan 21, 2020

Hmmm as far as i know and may be able to test. Building a sample program with gcc9.1.0 and gcc9.2.0 with c++11 support
running a regular expression using std works.

#include <regex>
#include <iostream>

using namespace std;
int main()
{
    regex reg2("Harmonix Drum [Kk]it for PlayStation");
    cout << regex_match("Harmonix Drum kit for PlayStation",reg2) << endl;
    cout << regex_match("Harmonix Drum Kit for PlayStation",reg2) << endl;
}

so we have to dig deeper i think.. @skmqpbusfz can you try out above code and see if it both returns '1' ?
This makes it certain it's not something in either boost or std but within performous not handeling right.

@skmqpbusfz
Copy link

Just compiled your suggested code snippet with g++ (gcc version 9.2.1 20190827 (Red Hat 9.2.1-1) (GCC)).
When running the binary both couts retrurn 1.

@Baklap4
Copy link
Member

Baklap4 commented Jan 21, 2020

Alright so std regex'es do work but Performous is doing something weird with them resulting in a error. Could you paste a debug log of performous?
./performous --loglevel=Debug?

@skmqpbusfz
Copy link

I just tried it with the version of the Fedora RPM Fusion Repo, the flag --loglevel=Debug was not working though. --log debug as described in the wiki did though here is the output:

logger/notice: Logging any events of debug or higher level. Log file: /home/skmqpbusfz/.cache?/performous/infolog.txt
stderr/info: Standard error output redirected here
core/notice: Performous 1.1+ starting...
Internationalization: Enabled
MIDI Hardware I/O: Enabled
Webcam support: Enabled
config/info: Parsing "//usr/share/performous/config/schema.xml"
config/info: Skipping "/etc/xdg/performous/config.xml" (not found)
config/info: Parsing "/home/skmqpbusfz/.config/performous/config.xml"
fs/info: Found system paths:
base: /
share: //usr/share/performous
locale:
sysConf: /etc/xdg/performous
home: /home/skmqpbusfz
config: /home/skmqpbusfz/.config/performous
data: /home/skmqpbusfz/.local/usr/share/performous
cache: /home/skmqpbusfz/.cache/performous
fs/info: Determining data dirs (search path):
/home/skmqpbusfz/.local/usr/share/performous
//usr/share/performous
/home/skmqpbusfz/.local/share/flatpak/exports/share/performous
/var/lib/flatpak/exports/share/performous
/usr/local/share/performous
/usr/share/performous
core/notice: Starting the audio subsystem (errors printed on console may be ignored).
stderr/info: ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
stderr/info: ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
stderr/info: ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
stderr/info: ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
stderr/info: ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
stderr/info: ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
stderr/info: ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
stderr/info: Cannot connect to server socket err = No such file or directory
stderr/info: Cannot connect to server request channel
stderr/info: jack server is not running or cannot be started
audio/info: Trying the selected Portaudio backend... not found; but this is normal when Auto is selected.
audio/info: Currently selected audio backend is: Auto
audio/info: Trying the selected Portaudio backend... not found; but this is normal when Auto is selected.
audio/info: Currently selected audio backend is: Auto
stderr/info: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
stderr/info: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
audio/info: PortAudio backends:
#0: ALSA (13 devices):
#0 HDA Intel PCH: CX20590 Analog (hw:0,0) (2 in, 4 out)
#1 HDA Intel PCH: HDMI 0 (hw:0,3) (8 out)
#2 HDA Intel PCH: HDMI 1 (hw:0,7) (8 out)
#3 HDA Intel PCH: HDMI 2 (hw:0,8) (8 out)
#4 sysdefault (128 in, 128 out)
#9 hdmi (8 out)
#10 pulse (32 in, 32 out)
#12 default (32 in, 32 out)

audio/debug: Will try to find device matching dev: USBMIC
audio/error: Audio device 'dev="USBMIC" mics="blue,red"': No such device.
audio/debug: Will try to find device matching dev: Microphone
audio/error: Audio device 'dev="Microphone" mics="*"': No such device.
audio/info: Device string empty; will look for a device with at least 1 input channels.
audio/info: Found: HDA Intel PCH: CX20590 Analog (hw:0,0), in: 2, out: 4
audio/info: Using audio device: HDA Intel PCH: CX20590 Analog (hw:0,0) (2 in, 4 out), input channels: 1
audio/info: Device string empty; will look for a device with at least 2 output channels.
audio/info: Found: HDA Intel PCH: CX20590 Analog (hw:0,0), in: 2, out: 4
audio/info: Using audio device: HDA Intel PCH: CX20590 Analog (hw:0,0) (2 in, 4 out), output channels: 2
core/info: Loading assets.
video/info: Create window dimensions: 681x354 on screen position: 685x18
video/info: GL_VENDOR: Intel Open Source Technology Center
video/info: GL_VERSION: 3.3 (Core Profile) Mesa 19.2.8
video/info: GL_RENDERER: Mesa DRI Intel(R) Sandybridge Mobile
video/info: Window size 681x360, rendering in 643x360
database/info: Loaded 0 players, 0 songs and 0 hiscores from /home/skmqpbusfz/.config/performous/database.xml
backgrounds/info: >>> Not scanning for backgrounds: "/home/skmqpbusfz/.local/usr/share/performous/backgrounds" (no such directory)
backgrounds/info: >>> Scanning "//usr/share/performous/backgrounds" (for backgrounds)
backgrounds/info: 6 backgrounds loaded
backgrounds/info: >>> Not scanning for backgrounds: "/home/skmqpbusfz/.local/share/flatpak/exports/share/performous/backgrounds" (no such directory)
backgrounds/info: >>> Not scanning for backgrounds: "/var/lib/flatpak/exports/share/performous/backgrounds" (no such directory)
backgrounds/info: >>> Not scanning for backgrounds: "/usr/local/share/performous/backgrounds" (no such directory)
backgrounds/info: >>> Scanning "/usr/share/performous/backgrounds" (for backgrounds)
backgrounds/info: 6 backgrounds loaded
songs/notice: Done loading the cache. You now have 0 songs in your list.
songs/notice: Starting to load all songs from disk, to update the cache.
songs/info: >>> Not scanning: "/home/skmqpbusfz/.local/usr/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "//usr/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "/home/skmqpbusfz/.local/share/flatpak/exports/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "/var/lib/flatpak/exports/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "/usr/local/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "/usr/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "/usr/local/share/games/ultrastar/songs" (no such directory)
songs/info: >>> Not scanning: "/usr/local/share/games/fretsonfire/data/songs" (no such directory)
songs/info: >>> Not scanning: "/usr/share/games/ultrastar/songs" (no such directory)
songs/info: >>> Not scanning: "/usr/share/games/fretsonfire/data/songs" (no such directory)
songs/info: >>> Scanning "/home/skmqpbusfz/.ultrastar/songs"
songs/info: >>> Not scanning: "/usr/local/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "/usr/share/performous/songs" (no such directory)
songs/info: >>> Not scanning: "/home/skmqpbusfz/.local/share/games/performous" (no such directory)
songs/info: >>> Not scanning: "/home/skmqpbusfz/.local/share/performous" (no such directory)
songs/info: >>> Not scanning: "%USERPROFILE%\AppData\Roaming\performous" (no such directory)
songs/info: >>> Not scanning: "\AppData\Roaming\performous" (no such directory)
songs/info: >>> Not scanning: "%HOMEDRIVE%%HOMEPATH%\Application Data\performous" (no such directory)
songs/info: >>> Not scanning: "
\Application Data\performous" (no such directory)
songs/notice: Done Loading. Loaded 0 Songs.
songs/notice: Done Caching.
profiler-songloader/debug: total (0.7 ms)
font/info: Loading font "//usr/share/performous/themes/default/www/fonts/glyphicons-halflings-regular.woff2": error
font/info: Loading font "//usr/share/performous/themes/default/www/fonts/glyphicons-halflings-regular.svg": error
font/info: Loading font "//usr/share/performous/themes/default/www/fonts/glyphicons-halflings-regular.eot": error
font/info: Loading font "//usr/share/performous/themes/default/www/fonts/glyphicons-halflings-regular.ttf": ok
font/info: Loading font "//usr/share/performous/themes/default/www/fonts/glyphicons-halflings-regular.woff": ok
font/info: Loading font "//usr/share/performous/fonts/GoblinOne.otf": ok
font/info: Loading font "//usr/share/performous/fonts/DroidSansMono.ttf": ok
font/info: Loading font "//usr/share/performous/fonts/NewRocker-Regular.otf": ok
font/info: PangoCairo is using font map PangoCairoFcFontMap
controllers/info: Parsing "//usr/share/performous/config/controllers.xml"
controllers/info: Controller definition: GUITAR_GUITARHERO_OEM: OEM wireless guitar in Guitar Hero I/II/III mode
controllers/info: Controller definition: GUITAR_GUITARHERO: Guitar Hero 3 guitar
controllers/info: Controller definition: GUITAR_GUITARHERO4_PS3: Guitar Hero 4 guitar for PS3
controllers/info: Controller definition: GUITAR_GUITARHERO5: Guitar Hero 5/Band Hero/Warriors of Rock guitar
controllers/info: Controller definition: GUITAR_GUITARHERO_XPLORER: Guitar Hero X-plorer guitar
controllers/info: Controller definition: GUITAR_ROCKBAND_XBOX360: Rock Band guitar Xbox 360
controllers/info: Controller definition: GUITAR_ROCKBAND_XBOXADAPTER: Rock Band guitar Xbox with USB adapter
controllers/info: Controller definition: GUITAR_ROCKBAND_PS3: Rock Band guitar PS3
controllers/info: Controller definition: GUITAR_HAMA_PS2: Hama Guitar for PS2 with converter
controllers/info: Controller definition: GUITAR_PS2: Guitar Hero 2 with PS2/USB adaptor
controllers/info: Controller definition: GUITAR_ROCKBAND_WII: RockBand Wii guitar
controllers/info: Controller definition: DRUMS_GUITARHERO: Guitar Hero 4 drum kit
controllers/info: Controller definition: DRUMS_GUITARHERO5: Guitar Hero 5/Band Hero drum kit
controllers/info: Controller definition: DRUMS_ROCKBAND_WII: RockBand Wii drum kit
/usr/include/c++/9/bits/stl_vector.h:1042: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
Aborted (core dumped)

I also wanted to try with the current master version but it does not compile on my system as of now. Looks like the same issue as #490
Hope the above output helps though...

@Baklap4
Copy link
Member

Baklap4 commented Jan 22, 2020

Hmmm maybe related to the change in fedora 28 changing -D_GLIBCXX_ASSERTIONS to be default enabled? https://fedoraproject.org/wiki/Changes/HardeningFlags28
This flags adds certain safety checks for vectors and such if i'm right.

I've added a list of strings in the repo where we use [0]. We should check the following if that's the case for us...:
array.txt

The problem is that we use the construct &x[0], where x is a std::vector of length 0. The behavior in that case is undefined, and the _GLIBCXX_ASSERTIONS flag tells it to check for that.

Quickfix might be to use -D_GLIBCXX_ASSERTIONS=OFF while building on fedore 28+

mkdir build
cd build
cmake .. -D_GLIBCXX_ASSERTIONS=OFF
make -j3
./performous

Longterm fix would be to support this flag and fix our code

@skmqpbusfz
Copy link

I looked at the comments of @SimonPe in issue #490 and with his cleanup of the cmake scripts I can now compile the current master.

So I added the -D_GLIBCXX_ASSERTIONS=OFF flag to the cmake command like you proposed.
When running the cmake command I get a warning:

CMake Warning:
Manually-specified variables were not used by the project:

_GLIBCXX_ASSERTIONS

After compiling the program still crashes with the same error as usual:

...
controllers/info: Controller definition: DRUMS_GUITARHERO: Guitar Hero 4 drum kit
controllers/info: Controller definition: DRUMS_GUITARHERO5: Guitar Hero 5/Band Hero drum kit
controllers/info: Controller definition: DRUMS_ROCKBAND_WII: RockBand Wii drum kit
/usr/include/c++/9/bits/stl_vector.h:1042: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
Aborted (core dumped)

Also to note, the RPM Fusion repo version worked in Fedora 29. The hardening flags should have been present there, shouldn't they?

@Tronic
Copy link
Member

Tronic commented Jan 22, 2020

Ummh, why does the assertion fail in the first place? Shouldn't the Performous code be fixed rather than the check disabled? Presumably controllers.cc:113 should be relevant here, so why does std::regex_search fail with these arguments?

if (!regex_search(devName, deviceRegex)) return false;

Or is the actual error somewhere else?

@OznOg
Copy link
Contributor

OznOg commented Feb 23, 2020

Having the same problem on fedora 30, here is the full backtrace in gdb:
#0 0x00007ffff0cfee35 in raise () at /lib64/libc.so.6
#1 0x00007ffff0ce9895 in abort () at /lib64/libc.so.6
#2 0x00000000007e8e9a in abort ()
#3 0x00007ffff7e2cb58 in () at /lib64/libboost_locale.so.1.69.0
#4 0x00007ffff7e514cf in () at /lib64/libboost_locale.so.1.69.0
#5 0x00007ffff10fc423 in std::__cxx11::collate::transform(char const*, char const*) const () at /lib64/libstdc++.so.6
#6 0x00000000008e264e in std::__cxx11::regex_traits::transform<char*>(char*, char*) const
(this=0x7b1c0000d730, __first=0x7b0400025f20 "\200amespace-uri", __last=0x7b0400025f21 "amespace-uri") at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex.h:228
#7 0x00000000008e1168 in std::__cxx11::regex_traits::transform_primary<char const*>(char const*, char const*) const
(this=0x7b1c0000d730, __first=0x7fffffff65c0 "\200f\377\377\377\177", __last=0x7fffffff65c1 "f\377\377\377\177")
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex.h:259
#8 0x00000000008e06df in std::__detail::_BracketMatcher<std::__cxx11::regex_traits, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::{lambda()#1}::operator()() const (this=0x7fffffff65b8) at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:629
#9 0x00000000008e017a in std::__detail::_BracketMatcher<std::__cxx11::regex_traits, false, false>::_M_apply(char, std::integral_constant<bool, false>) const
(this=0x7fffffff6878, __ch=-128 '\200') at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:617
#10 0x00000000008dc902 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits, false, false>::_M_make_cache(std::integral_constant<bool, true>) (this=0x7fffffff6878)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.h:533
#11 0x00000000008d9d1d in std::__detail::_BracketMatcher<std::__cxx11::regex_traits, false, false>::_M_ready() (this=0x7fffffff6878)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.h:504
#12 0x00000000008ed328 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_insert_bracket_matcher<false, false>(bool) (this=0x7fffffff78f0, __neg=false)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:446
#13 0x00000000008d362c in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_bracket_expression() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:365
#14 0x00000000008d01d3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_atom() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:351
#15 0x00000000008cf3a7 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_term() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:141
#16 0x00000000008ceea0 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:123
#17 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#18 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#19 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#20 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#21 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#22 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#23 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#24 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#25 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
--Type for more, q to quit, c to continue without paging--
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#26 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#27 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#28 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#29 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#30 0x00000000008ceed3 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_alternative() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:126
#31 0x00000000008c42f0 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_M_disjunction() (this=0x7fffffff78f0)
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:99
#32 0x00000000008c3941 in std::__detail::_Compiler<std::__cxx11::regex_traits >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type)
(this=0x7fffffff78f0, __b=0x7b0c00046680 "Harmonix Drum [Kk]it for PlayStation", __e=0x7b0c000466a4 "", __loc=..., __flags=(unknown: 16))
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.tcc:84
#33 0x00000000008c353f in _ZNSt8__detail13__compile_nfaINSt7__cxx1112regex_traitsIcEEPKcEENSt9enable_ifIXsr20__is_contiguous_iterIT0_EE5valueESt10shared_ptrIKNS_4_NFAIT_EEEE4typeES7_S7_RKNSA_11locale_typeENSt15regex_constants18syntax_option_typeE (__first=0x7b0c00046680 "Harmonix Drum [Kk]it for PlayStation", __last=0x7b0c000466a4 "", __loc=..., __flags=(unknown: 16))
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex_compiler.h:183
#34 0x00000000008c33da in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits >::basic_regex<char const*>(char const*, char const*, std::locale, std::regex_constants::syntax_option_type) (this=0x7fffffff7be8, __first=0x7b0c00046680 "Harmonix Drum [Kk]it for PlayStation", __last=0x7b0c000466a4 "", __loc=..., __f=(unknown: 16))
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex.h:759
#35 0x000000000099b6f1 in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits >::assign<std::char_traits, std::allocator >(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::regex_constants::syntax_option_type)Python Exception <class 'gdb.error'> There is no member named _M_dataplus.:
(this=0x7fffffff86f0, __s=, __flags=(unknown: 16))
at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex.h:651
#36 0x000000000099aa7e in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits >::operator=<std::char_traits, std::allocator >(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)Python Exception <class 'gdb.error'> There is no member named _M_dataplus.:
(this=0x7fffffff86f0, __s=) at /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/regex.h:572
#37 0x00000000009991a8 in input::Controllers::Impl::parseControllers(xmlpp::DomParser const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, input::SourceType)Python Exception <class 'gdb.error'> There is no member named _M_dataplus.:
(this=0x7b5800004b00, dom=..., path=, sourceType=input::SOURCETYPE_JOYSTICK) at git/performous/game/controllers.cc:199
#38 0x0000000000993ef6 in input::Controllers::Impl::readControllers(boost::filesystem::path const&) (this=0x7b5800004b00, file=...)
at git/performous/game/controllers.cc:162
#39 0x00000000009906cf in input::Controllers::Impl::Impl() (this=0x7b5800004b00) at git/performous/game/controllers.cc:147
#40 0x0000000000988c1f in input::Controllers::Controllers() (this=0x7fffffffbd08) at git/performous/game/controllers.cc:407
#41 0x0000000000a0d0b1 in Game::Game(Window&, Audio&) (this=0x7fffffffbcf8, _window=..., _audio=...) at git/performous/game/game.cc:14
#42 0x0000000000a762ae in mainLoop(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)Python Exception <class 'gdb.error'> There is no member named _M_dataplus.:
(songlist=) at git/performous/game/main.cc:139
#43 0x0000000000a7d2e3 in main(int, char**) (argc=1, argv=0x7fffffffd3e8) at git/performous/game/main.cc:387

@OznOg
Copy link
Contributor

OznOg commented Mar 7, 2020

looks like a fedora problem see: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/4QLUFDXCED3IDLHS5PCIXILKXFIUMPBU/ (where is exactly failing the assertion in performous)

@OznOg
Copy link
Contributor

OznOg commented Mar 14, 2020

0001-Workaround-failing-regex-on-FC30.patch.txt

wrote some kind of workaround so that it does not crash on fedora 30...

@Lord-Kamina
Copy link
Contributor

It looks like an ok patch to me, save you should use angled brackets to include boost/regex.hpp

Anyway, you should open a PR

OznOg added a commit to OznOg/performous that referenced this issue Mar 15, 2020
This is mainly a workaround for bug performous#476
Tronic pushed a commit that referenced this issue Mar 16, 2020
This is mainly a workaround for bug #476
@Baklap4
Copy link
Member

Baklap4 commented Mar 16, 2020

With #496 merged into master can we close this issue?@jorritjorritsma
AKA Do you still have this issue on current master?

@Baklap4
Copy link
Member

Baklap4 commented Mar 16, 2020

Closing this issue for now. If it's not working please reopen this ticket :)

@OznOg
Copy link
Contributor

OznOg commented Nov 14, 2020

for the record, the boost issue is boostorg/locale#52

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants