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

String question crash #645

Open
red-kangaroo opened this issue Jan 29, 2022 · 5 comments
Open

String question crash #645

red-kangaroo opened this issue Jan 29, 2022 · 5 comments
Labels
Bug Crash (spontaneous) Spontaneous, or involuntary crash

Comments

@red-kangaroo
Copy link
Contributor

A string question history was introduced in e91cdad and it seems that both crashes reported here are caused by a string question seg fault.

@red-kangaroo red-kangaroo added Bug Crash (spontaneous) Spontaneous, or involuntary crash labels Jan 29, 2022
@AquariusPower
Copy link
Contributor

AquariusPower commented Jan 31, 2022

demangled (c++filt) from:

./Main/ivan(globalerrorhandler::DumpStackTraceToStdErr(int)+0x34)[0x55d9d911a792]
./Main/ivan(CrashHandler(int)+0x15)[0x55d9d90ab870]
/lib/x86_64-linux-gnu/libc.so.6(+0x3f040)[0x7f0be6527040]
/lib/x86_64-linux-gnu/libc.so.6(rewind+0x1)[0x7f0be6570481]
./Main/ivan(iosystem::StringQuestion(festring&, festring const&, v2, int, unsigned long, unsigned long, bool, bool, bool (*)(int, festring&))+0x222)[0x55d9d911c1e6]
./Main/ivan(game::Init(festring const&)+0x136)[0x55d9d8fcb6cc]
./Main/ivan(main+0x9e8)[0x55d9d90ac2af]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f0be6509bf7]
./Main/ivan(_start+0x2a)[0x55d9d8e8cada]

I think it happens at

truth game::Init(cfestring& loadBaseName)
...
      if(iosystem::StringQuestion(PlayerName, CONST_S("What is your name? (1-20 letters)"),
                                  v2(30, 46), WHITE, 1, 20, true, true) == ABORTED

he said ubuntu 18

the other from the screenshot apparently happens when trying to change the player's name I guess. he said linuxmint 20.3

both crashes happens at the rewind.

int iosystem::StringQuestion(festring& Input,
...
  festring fsHistFile = festring()+GetUserDataDir()+".QuestionHistory_"+fsFixTopicToFileName+".txt";
  DBG1(fsHistFile.CStr());
  FILE *fl = fopen(fsHistFile.CStr(), "a+");
  rewind(fl);

It would be good to know the value of fsHistFile, and if that file is being really created.
I think rewind is unnecessary in case the file have been just created also.
May be the fopen mode "a+" could be a better option to prevent this crash?

@AquariusPower
Copy link
Contributor

I think it could catch the error and retry a few times before aborting.
Most certainly their filesystems are not full neither readonly.

But... this could be a user write permission problem!
I think we could check for user write permissions on the specified path?

btw: https://www.cplusplus.com/reference/cstdio/fopen/

@arrowgent
Copy link

ubuntu 18.04
game seems to run, but i was using 0.58 before without issues and overwrote my directories

build log:

cmake ..

-- The CXX compiler identification is GNU 9.3.0
-- The C compiler identification is GNU 9.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done

*NOTICE*
    Highscore files and Bone files are now stored at "$HOME/.ivan".
    Your HOME directory is "/home/catbox".

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Checking for module 'libpcre'
--   Found libpcre, version 8.39
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found SDL2: /usr/lib/x86_64-linux-gnu/libSDL2main.a;/usr/lib/x86_64-linux-gnu/libSDL2.so;-lpthread  
-- Checking for module 'libpng'
--   Found libpng, version 1.6.37
-- Found ALSA: /usr/lib/x86_64-linux-gnu/libasound.so (found version "1.2.2") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/catbox/Downloads/build/ivan/ivan-059/build

make

[  1%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/bitmap.cpp.o
[  3%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/config.cpp.o
[  4%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/error.cpp.o
[  6%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/febot.cpp.o
[  8%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/feio.cpp.o
[  9%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/felist.cpp.o
[ 11%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/femath.cpp.o
[ 12%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/festring.cpp.o
[ 14%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/fetime.cpp.o
[ 16%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/graphics.cpp.o
[ 17%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/hscore.cpp.o
[ 19%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/rawbit.cpp.o
[ 20%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/save.cpp.o
[ 22%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/sfx.cpp.o
[ 24%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/specialkeys.cpp.o
[ 25%] Building CXX object FeLib/CMakeFiles/FeLib.dir/Source/whandler.cpp.o
[ 27%] Linking CXX static library libFeLib.a
[ 27%] Built target FeLib
[ 29%] Building CXX object audio/CMakeFiles/FeAudio.dir/MIDIDebug.cpp.o
[ 30%] Building CXX object audio/CMakeFiles/FeAudio.dir/MIDIUtils.cpp.o
[ 32%] Building CXX object audio/CMakeFiles/FeAudio.dir/RtMidi.cpp.o
[ 33%] Building CXX object audio/CMakeFiles/FeAudio.dir/audio.cpp.o
[ 35%] Building CXX object audio/CMakeFiles/FeAudio.dir/audio_stack.cpp.o
[ 37%] Building CXX object audio/CMakeFiles/FeAudio.dir/linkedlist.cpp.o
[ 38%] Building CXX object audio/CMakeFiles/FeAudio.dir/midiparser.cpp.o
[ 40%] Building CXX object audio/CMakeFiles/FeAudio.dir/midiplayback.cpp.o
[ 41%] Linking CXX static library libFeAudio.a
[ 41%] Built target FeAudio
[ 43%] Building CXX object FastNoise/CMakeFiles/fastnoise.dir/FastNoise.cpp.o
[ 45%] Linking CXX static library libfastnoise.a
[ 45%] Built target fastnoise
[ 46%] Building CXX object xbrzscale/CMakeFiles/xbrzscale.dir/libxbrzscale.cpp.o
[ 48%] Building CXX object xbrzscale/CMakeFiles/xbrzscale.dir/xbrz/xbrz.cpp.o
[ 50%] Linking CXX static library libxbrzscale.a
[ 50%] Built target xbrzscale
[ 51%] Building CXX object fantasyname/CMakeFiles/fantasyname.dir/namegen.cc.o
[ 53%] Linking CXX static library libfantasyname.a
[ 53%] Built target fantasyname
[ 54%] Building CXX object Main/CMakeFiles/ivan.dir/Source/actset.cpp.o
[ 56%] Building CXX object Main/CMakeFiles/ivan.dir/Source/areaset.cpp.o
[ 58%] Building CXX object Main/CMakeFiles/ivan.dir/Source/bugworkaround.cpp.o
[ 59%] Building CXX object Main/CMakeFiles/ivan.dir/Source/charset.cpp.o
[ 61%] Building CXX object Main/CMakeFiles/ivan.dir/Source/charsset.cpp.o
[ 62%] Building CXX object Main/CMakeFiles/ivan.dir/Source/command.cpp.o
[ 64%] Building CXX object Main/CMakeFiles/ivan.dir/Source/coreset.cpp.o
[ 66%] Building CXX object Main/CMakeFiles/ivan.dir/Source/dataset.cpp.o
[ 67%] Building CXX object Main/CMakeFiles/ivan.dir/Source/definesvalidator.cpp.o
[ 69%] Building CXX object Main/CMakeFiles/ivan.dir/Source/devcons.cpp.o
[ 70%] Building CXX object Main/CMakeFiles/ivan.dir/Source/dungeon.cpp.o
[ 72%] Building CXX object Main/CMakeFiles/ivan.dir/Source/game.cpp.o
[ 74%] Building CXX object Main/CMakeFiles/ivan.dir/Source/godset.cpp.o
[ 75%] Building CXX object Main/CMakeFiles/ivan.dir/Source/iconf.cpp.o
[ 77%] Building CXX object Main/CMakeFiles/ivan.dir/Source/id.cpp.o
[ 79%] Building CXX object Main/CMakeFiles/ivan.dir/Source/igraph.cpp.o
[ 80%] Building CXX object Main/CMakeFiles/ivan.dir/Source/itemset.cpp.o
[ 82%] Building CXX object Main/CMakeFiles/ivan.dir/Source/levelset.cpp.o
[ 83%] Building CXX object Main/CMakeFiles/ivan.dir/Source/main.cpp.o
[ 85%] Building CXX object Main/CMakeFiles/ivan.dir/Source/materset.cpp.o
[ 87%] Building CXX object Main/CMakeFiles/ivan.dir/Source/message.cpp.o
[ 88%] Building CXX object Main/CMakeFiles/ivan.dir/Source/object.cpp.o
[ 90%] Building CXX object Main/CMakeFiles/ivan.dir/Source/roomset.cpp.o
[ 91%] Building CXX object Main/CMakeFiles/ivan.dir/Source/script.cpp.o
[ 93%] Building CXX object Main/CMakeFiles/ivan.dir/Source/slotset.cpp.o
[ 95%] Building CXX object Main/CMakeFiles/ivan.dir/Source/trapset.cpp.o
[ 96%] Building CXX object Main/CMakeFiles/ivan.dir/Source/wmapset.cpp.o
[ 98%] Building CXX object Main/CMakeFiles/ivan.dir/Source/wskill.cpp.o
[100%] Linking CXX executable ivan
[100%] Built target ivan

run game, start new character, move around
alt-f4 to exit

ivan-linux

fluidsynth: no process found
FluidSynth runtime version 2.2.5
Copyright (C) 2000-2022 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of Creative Technology Ltd.

fluidsynth: panic: An error occurred while reading from stdin.
fluidsynth: panic: An error occurred while reading from stdin.
fluidsynth: error: Failed to create server socket: 97
Failed to create the server.
Continuing without it.
fluidsynth: warning: Failed to set thread to high priority
fluidsynth: Using PulseAudio driver
fluidsynth: warning: Failed to set thread to high priority
Segmentation fault
/home/catbox/.local/games/ivan/ivan(_ZN18globalerrorhandler22DumpStackTraceToStdErrEi+0x34)[0x56473108e236]
/home/catbox/.local/games/ivan/ivan(_Z12CrashHandleri+0x15)[0x56473101edd8]
/lib/x86_64-linux-gnu/libc.so.6(+0x3ef10)[0x7fbe0ace3f10]
/home/catbox/.local/games/ivan/ivan(_ZN8iosystem4MenuESt6vectorIP6bitmapSaIS2_EE2v2RK8festringS8_iS8_S8_b+0x19b)[0x56473108eb3f]
/home/catbox/.local/games/ivan/ivan(_ZN4game4MenuESt6vectorIP6bitmapSaIS2_EE2v2RK8festringS8_iS8_S8_+0x81)[0x564730f4e91b]
/home/catbox/.local/games/ivan/ivan(_ZN4game17HandleQuitMessageEv+0x477)[0x564730f4bc79]
/home/catbox/.local/games/ivan/ivan(_ZN19globalwindowhandler14ProcessMessageEP9SDL_Event+0x106)[0x5647310c266e]
/home/catbox/.local/games/ivan/ivan(_ZN19globalwindowhandler10PollEventsEP9SDL_Event+0x80)[0x5647310c1eba]
/home/catbox/.local/games/ivan/ivan(_ZN19globalwindowhandler6GetKeyEb+0x161)[0x5647310c1d25]
/home/catbox/.local/games/ivan/ivan(_ZN6felist12DrawFilteredERb+0xa9d)[0x56473109ca29]
/home/catbox/.local/games/ivan/ivan(_ZN6felist4DrawEv+0x104)[0x56473109bcf4]
/home/catbox/.local/games/ivan/ivan(_ZN13commandsystem13ShowKeyLayoutEP9character+0xb9c)[0x564730ed6c12]
/home/catbox/.local/games/ivan/ivan(_ZN9character16GetPlayerCommandEv+0x3c5)[0x564730e20651]
/home/catbox/.local/games/ivan/ivan(_ZN9character2BeEv+0x624)[0x564730e134cc]
/home/catbox/.local/games/ivan/ivan(_ZN4pool2BeEv+0x3b)[0x564730ef94a5]
/home/catbox/.local/games/ivan/ivan(_ZN4game3RunEv+0x3cb)[0x564730f3e833]
/home/catbox/.local/games/ivan/ivan(main+0xa0a)[0x56473101f839]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7fbe0acc6c87]
/home/catbox/.local/games/ivan/ivan(_start+0x2a)[0x564730dfbd9a]

repeat, run game, see menu, press 5 to exit
ivan-linux

fluidsynth: no process found
FluidSynth runtime version 2.2.5
Copyright (C) 2000-2022 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of Creative Technology Ltd.

fluidsynth: panic: An error occurred while reading from stdin.
fluidsynth: panic: An error occurred while reading from stdin.
fluidsynth: warning: Failed to set thread to high priority
fluidsynth: error: Failed to create server socket: 97
Failed to create the server.
Continuing without it.
fluidsynth: Using PulseAudio driver
fluidsynth: warning: Failed to set thread to high priority

possibly since the game wants to use the folder /usr/local/share/ivan
i own this folder so lets sudo chown -R root:root /usr/local/share/ivan
game runs fine

sorry. nothing to see here...

@SSUPII
Copy link
Contributor

SSUPII commented May 13, 2022

Can anyone check if this issue is still happening on their end? We might close this issue if it is.

@BillyIII
Copy link

Can anyone check if this issue is still happening on their end? We might close this issue if it is.

The crash is happening for me on 059, but it is not present in master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Crash (spontaneous) Spontaneous, or involuntary crash
Projects
None yet
Development

No branches or pull requests

5 participants