Closed jasonkhanlar closed 3 years ago
In my avatar.txt file if I change the line to
spawn=maps/lochport.txt,43,1
and load saved game, then I can get into Lochport. However, I can't get to those same coordinates using the exit from Lochport Cemetery.
However, after I change my avatar.txt file as above, then go back into Lochport Cemetery, and then go right back into Lochport, then it works!
I'm unable to reproduce this with your save file on version 1.12.02. Can you trigger the crash again and post the entire contents of your flare_log.txt
file? (It's located where your Settings are)
I'm unable to reproduce this with your save file on version 1.12.02. Can you trigger the crash again and post the entire contents of your
flare_log.txt
file? (It's located where your Settings are)
Sure! I created a new character again and ran all the way to Luchport, and crashed again.
flare_log.txt:
### Flare log file
INFO: Flare 1.12.02 (Linux)
INFO: main: PATH_CONF = '/home/user/.config/flare/'
INFO: main: PATH_USER = '/home/user/.local/share/flare/'
INFO: main: PATH_DATA = '/usr/share/flare/'
INFO: Active mods: default, fantasycore (1.12), empyrean_campaign (1.12)
INFO: Settings: move_type_dimissed=1
INFO: Settings: fullscreen=0
INFO: Settings: resolution_w=1920
INFO: Settings: resolution_h=1080
INFO: Settings: music_volume=96
INFO: Settings: sound_volume=128
INFO: Settings: combat_text=1
INFO: Settings: mouse_move=0
INFO: Settings: hwsurface=1
INFO: Settings: vsync=1
INFO: Settings: texture_filter=1
INFO: Settings: dpi_scaling=0
INFO: Settings: parallax_layers=1
INFO: Settings: max_fps=60
INFO: Settings: renderer=sdl_hardware
INFO: Settings: enable_joystick=0
INFO: Settings: joystick_device=-1
INFO: Settings: joystick_deadzone=100
INFO: Settings: language=en
INFO: Settings: change_gamma=0
INFO: Settings: gamma=1
INFO: Settings: mouse_aim=1
INFO: Settings: no_mouse=0
INFO: Settings: show_fps=0
INFO: Settings: colorblind=0
INFO: Settings: hardware_cursor=0
INFO: Settings: dev_mode=0
INFO: Settings: dev_hud=1
INFO: Settings: loot_tooltips=0
INFO: Settings: statbar_labels=0
INFO: Settings: statbar_autohide=1
INFO: Settings: auto_equip=1
INFO: Settings: subtitles=0
INFO: Settings: minimap_mode=0
INFO: Settings: mouse_move_swap=0
INFO: Settings: mouse_move_attack=1
INFO: Settings: entity_markers=1
INFO: Settings: prev_save_slot=1
INFO: Settings: low_hp_warning_type=1
INFO: Settings: low_hp_threshold=20
INFO: Settings: item_compare_tips=1
INFO: Settings: max_render_size=0
INFO: Settings: touch_controls=0
INFO: Settings: touch_scale=1
INFO: MessageEngine: Using language 'en'
INFO: InputState: No joysticks were found.
INFO: Using Render Device: SDLHardwareRenderDevice (hardware, SDL 2, x11)
INFO: RenderDevice: 1 display(s), using display 0 (1920x1080 @ 60hz)
INFO: RenderDevice: Internal render size is 1365x768
INFO: RenderDevice: Window size is 1920x1080
INFO: RenderDevice: Fullscreen=0, Hardware surfaces=1, Vsync=1, Texture Filter=1
INFO: RenderDevice: Display DPI is 95.372787
INFO: SoundManager: Using SDLSoundManager (SDL2, pulseaudio)
INFO: GameStateCutscene: Loading cutscene 'cutscenes/intro.txt'
INFO: GameStateCutscene: No scenes defined in cutscene file cutscenes/intro.txt
INFO: RenderDevice: Internal render size is 1916x510
INFO: RenderDevice: Window size changed to 1916x510
INFO: RenderDevice: Internal render size is 1575x768
INFO: RenderDevice: Window size changed to 1916x934
INFO: RenderDevice: Internal render size is 1365x768
INFO: RenderDevice: Window size changed to 1920x1080
INFO: Map: Loading map 'maps/lochport.txt'
INFO: Map: Loading map 'maps/st_maria_1.txt'
INFO: Map: Loading map 'maps/lochport.txt'
INFO: Map: Loading map 'maps/st_maria_1.txt'
INFO: Map: Loading map 'maps/lochport.txt'
INFO: Map: Loading map 'maps/st_maria_1.txt'
INFO: Map: Loading map 'maps/st_maria_2.txt'
INFO: Map: Loading map 'maps/hyperspace.txt'
INFO: Map: Loading map 'maps/perdition_harbor.txt'
INFO: SaveLoad: Could not open stash file '/home/user/.local/share/flare/saves/empyrean/4/stash_HC.txt'. This may be because it hasn't been created yet.
INFO: Map: Loading map 'maps/spawn.txt'
INFO: Map: Loading map 'maps/arrival.txt'
INFO: GameStateCutscene: Loading cutscene 'cutscenes/backstory.txt'
INFO: Map: Loading map 'maps/arrival.txt'
INFO: Map: Loading map 'maps/river_trail.txt'
INFO: Map: Loading map 'maps/perdition_harbor.txt'
INFO: Map: Loading map 'maps/book_of_the_dead.txt'
INFO: Map: Loading map 'maps/salted_field.txt'
INFO: Map: Loading map 'maps/stonewood.txt'
INFO: Map: Loading map 'maps/hyperspace.txt'
INFO: Map: Loading map 'maps/stonewood.txt'
INFO: Map: Loading map 'maps/goblin_camp.txt'
INFO: Map: Loading map 'maps/merrimead_swamp.txt'
INFO: Map: Loading map 'maps/merrimead_swamp.txt'
INFO: Map: Loading map 'maps/lochport_cemetery.txt'
INFO: Map: Loading map 'maps/hyperspace.txt'
INFO: Map: Loading map 'maps/lochport_cemetery.txt'
INFO: Map: Loading map 'maps/lochport.txt'
That log doesn't seem to be helpful, in my opinion.
I see similar in the archlinux console output:
$ flare
INFO: Flare 1.12.02 (Linux)
INFO: main: PATH_CONF = '/home/user/.config/flare/'
INFO: main: PATH_USER = '/home/user/.local/share/flare/'
INFO: main: PATH_DATA = '/usr/share/flare/'
INFO: Active mods: default, fantasycore (1.12), empyrean_campaign (1.12)
INFO: Settings: move_type_dimissed=1
INFO: Settings: fullscreen=0
INFO: Settings: resolution_w=1920
INFO: Settings: resolution_h=1080
INFO: Settings: music_volume=96
INFO: Settings: sound_volume=128
INFO: Settings: combat_text=1
INFO: Settings: mouse_move=0
INFO: Settings: hwsurface=1
INFO: Settings: vsync=1
INFO: Settings: texture_filter=1
INFO: Settings: dpi_scaling=0
INFO: Settings: parallax_layers=1
INFO: Settings: max_fps=60
INFO: Settings: renderer=sdl_hardware
INFO: Settings: enable_joystick=0
INFO: Settings: joystick_device=-1
INFO: Settings: joystick_deadzone=100
INFO: Settings: language=en
INFO: Settings: change_gamma=0
INFO: Settings: gamma=1
INFO: Settings: mouse_aim=1
INFO: Settings: no_mouse=0
INFO: Settings: show_fps=0
INFO: Settings: colorblind=0
INFO: Settings: hardware_cursor=0
INFO: Settings: dev_mode=0
INFO: Settings: dev_hud=1
INFO: Settings: loot_tooltips=0
INFO: Settings: statbar_labels=0
INFO: Settings: statbar_autohide=1
INFO: Settings: auto_equip=1
INFO: Settings: subtitles=0
INFO: Settings: minimap_mode=0
INFO: Settings: mouse_move_swap=0
INFO: Settings: mouse_move_attack=1
INFO: Settings: entity_markers=1
INFO: Settings: prev_save_slot=1
INFO: Settings: low_hp_warning_type=1
INFO: Settings: low_hp_threshold=20
INFO: Settings: item_compare_tips=1
INFO: Settings: max_render_size=0
INFO: Settings: touch_controls=0
INFO: Settings: touch_scale=1
INFO: MessageEngine: Using language 'en'
INFO: InputState: No joysticks were found.
INFO: Using Render Device: SDLHardwareRenderDevice (hardware, SDL 2, x11)
INFO: RenderDevice: 1 display(s), using display 0 (1920x1080 @ 60hz)
INFO: RenderDevice: Internal render size is 1365x768
INFO: RenderDevice: Window size is 1920x1080
INFO: RenderDevice: Fullscreen=0, Hardware surfaces=1, Vsync=1, Texture Filter=1
INFO: RenderDevice: Display DPI is 95.372787
INFO: SoundManager: Using SDLSoundManager (SDL2, pulseaudio)
INFO: GameStateCutscene: Loading cutscene 'cutscenes/intro.txt'
INFO: GameStateCutscene: No scenes defined in cutscene file cutscenes/intro.txt
INFO: RenderDevice: Internal render size is 1916x510
INFO: RenderDevice: Window size changed to 1916x510
#### (ABOVE AFTER GAME LOADED) ####
INFO: Map: Loading map 'maps/lochport_cemetery.txt'
#### (ABOVE AFTER LOADED SAVED GAME) ####
INFO: Map: Loading map 'maps/lochport.txt'
#### (ABOVE AFTER ATTEMPTING TO GO INTO Lochport, SLIGHT PAUSE BEFORE NEXT LINES) ####
/usr/include/c++/11.1.0/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = short unsigned int; _Alloc = std::allocator<short unsigned int>; std::vector<_Tp, _Alloc>::reference = short unsigned int&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__n < this->size()' failed.
Aborted (core dumped)
I ran the game again with strace flare
and reproduced crash, and the last lines show:
futex(0x5586a8406640, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x5586aa105000) = 0x5586aa105000
newfstatat(1, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x14), ...}, AT_EMPTY_PATH) = 0
write(1, "/usr/include/c++/11.1.0/bits/stl"..., 391/usr/include/c++/11.1.0/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = short unsigned int; _Alloc = std::allocator<short unsigned int>; std::vector<_Tp, _Alloc>::reference = short unsigned int&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__n < this->size()' failed.
) = 391
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
getpid() = 672001
gettid() = 672001
tgkill(672001, 672001, SIGABRT) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=672001, si_uid=1000} ---
+++ killed by SIGABRT (core dumped) +++
Aborted (core dumped)
The log still helps for mimicking platform, mod config, config settings, etc.
But the std::vector assertion isn't much to go on. Could you try building with debug symbols (cmake . -DCMAKE_BUILD_TYPE=Debug
) and running flare with gdb
? If you get the crash, the bt
command should give you a backtrace.
Archlinux has two separate packages (oh actually, I just noticed something too):
https://aur.archlinux.org/packages/flare-engine-git/
https://aur.archlinux.org/packages/flare-game-git/
I was going to ask which package should I try to build with debug symbols, but then I also realized that maybe because I am using the git release, that might be why I experience a bug. I haven't tested with the non-git releases yet:
https://aur.archlinux.org/packages/flare-engine/
https://aur.archlinux.org/packages/flare-game/
edited to add update: And apparently I can't install flare-engine in archlinux from the current AUR release due to:
==> Validating source files with sha256sums...
flare-engine-1.12 ... FAILED
==> ERROR: One or more files did not pass the validity check!
error: failed to download sources for 'flare-engine-1.12-1':
:: Packages failed to build: flare-engine-1.12-1
I'm the maintainer for the AUR packages, so I'll fix the validation issue. Fixed
At the moment, there's not much different between the 1.12 release and git master, so you can continue with the git package.
Could you try building with debug symbols (
cmake . -DCMAKE_BUILD_TYPE=Debug
) and running flare withgdb
? If you get the crash, thebt
command should give you a backtrace.
I am not sure if I figured out how to do this. I'm using Archlinux, and for both flare-engine-git and flare-game-git I modified both the PKGBUILD files:
build() {
cd "$srcdir/flare-engine"
cmake . -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DBINDIR=bin -DDATADIR=share/flare
make
}
and
build() {
cd "$srcdir/flare-game"
cmake . -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DDATADIR=share/flare
make
}
and recompiled both (after deleting the previously cached compile files), reinstalled, then when I run gdb flare
I see:
Reading symbols from flare...
(No debugging symbols found in flare)
(gdb)
Ah-ha! I was able to reproduce when using the flare-engine-git
package. I was able to get a backtrace:
Thread 1 "flare" received signal SIGABRT, Aborted.
0x00007ffff7883d22 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff7883d22 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff786d862 in abort () from /usr/lib/libc.so.6
#2 0x00005555556dcb13 in std::__replacement_assert (__file=0x5555558de280 "/usr/include/c++/11.1.0/bits/stl_vector.h", __line=1045, __function=0x5555558de498 "std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = short unsigned int; _Alloc = std::allocator<short unsigned int>; std::vector<_"..., __condition=0x5555558de12b "__n < this->size()") at /usr/include/c++/11.1.0/x86_64-pc-linux-gnu/bits/c++config.h:504
#3 0x00005555556dd56e in std::vector<unsigned short, std::allocator<unsigned short> >::operator[] (this=0x5555566d5870, __n=63) at /usr/include/c++/11.1.0/bits/stl_vector.h:1045
#4 0x00005555557ce6e5 in MapCollision::unblock (this=0x55555687a100, map_x=@0x555556a70a1c: 36.0082016, map_y=@0x555556a70a20: 63.3082275) at /usr/src/debug/flare-engine/src/MapCollision.cpp:520
#5 0x00005555558a9b56 in StatBlock::takeDamage (this=0x555556a70708, dmg=30, crit=false, source_type=1) at /usr/src/debug/flare-engine/src/StatBlock.cpp:698
#6 0x00005555558ac3ed in StatBlock::removeSummons (this=0x555556d00928) at /usr/src/debug/flare-engine/src/StatBlock.cpp:1091
#7 0x00005555558ac5ba in StatBlock::removeFromSummons (this=0x555556d00928) at /usr/src/debug/flare-engine/src/StatBlock.cpp:1110
#8 0x00005555558a699e in StatBlock::~StatBlock (this=0x555556d00928, __in_chrg=<optimized out>) at /usr/src/debug/flare-engine/src/StatBlock.cpp:205
#9 0x0000555555741067 in Entity::~Entity (this=0x555556d00880, __in_chrg=<optimized out>) at /usr/src/debug/flare-engine/src/Entity.cpp:758
#10 0x00005555557410e0 in Entity::~Entity (this=0x555556d00880, __in_chrg=<optimized out>) at /usr/src/debug/flare-engine/src/Entity.cpp:758
#11 0x000055555574a714 in EntityManager::handleNewMap (this=0x555556a04d00) at /usr/src/debug/flare-engine/src/EntityManager.cpp:129
#12 0x000055555577dc0e in GameStatePlay::checkTeleport (this=0x5555566f3fe0) at /usr/src/debug/flare-engine/src/GameStatePlay.cpp:364
#13 0x00005555557802c7 in GameStatePlay::logic (this=0x5555566f3fe0) at /usr/src/debug/flare-engine/src/GameStatePlay.cpp:918
#14 0x0000555555789ce7 in GameSwitcher::logic (this=0x555556417460) at /usr/src/debug/flare-engine/src/GameSwitcher.cpp:204
#15 0x00005555558db463 in mainLoop () at /usr/src/debug/flare-engine/src/main.cpp:206
#16 0x00005555558dc374 in main (argc=1, argv=0x7fffffffde88) at /usr/src/debug/flare-engine/src/main.cpp:442
Looks like the removal of summoned creatures (the grave zombies in Lochport Cemetery) is causing some out-of-bounds map collider unblocking.
Your default /etc/makepkg.conf
likely has the strip
and !debug
options set. So if you want the flare-engine package to keep symbols, you can add this to the PKGBUILD:
options=(!strip debug)
You don't need to change the flare-game package, but everything else you did is correct.
Your default
/etc/makepkg.conf
likely has thestrip
and!debug
options set. So if you want the flare-engine package to keep symbols, you can add this to the PKGBUILD:options=(!strip debug)
Compiled with debug symbols now!
Reading symbols from flare...
(gdb)
but that's all I see when running gdb flare
. No game user interface loads. Do I have to type something to load the program normally? I'm new to gdb obviously. Also congrats on figuring it out! I'm still curious how to reach that stage also
Edit: Nevermind! I figured it out. I typed run
and crash!
INFO: Map: Loading map 'maps/lochport.txt'
/usr/include/c++/11.1.0/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = short unsigned int; _Alloc = std::allocator<short unsigned int>; std::vector<_Tp, _Alloc>::reference = short unsigned int&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__n < this->size()' failed.
Thread 1 "flare" received signal SIGABRT, Aborted.
0x00007ffff7859d22 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff7859d22 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff7843862 in abort () from /usr/lib/libc.so.6
#2 0x00005555556dcb13 in std::__replacement_assert (__file=0x5555558de280 "/usr/include/c++/11.1.0/bits/stl_vector.h", __line=1045,
__function=0x5555558de498 "std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = short unsigned int; _Alloc = std::allocator<short unsigned int>; std::vector<_"..., __condition=0x5555558de12b "__n < this->size()") at /usr/include/c++/11.1.0/x86_64-pc-linux-gnu/bits/c++config.h:504
#3 0x00005555556dd56e in std::vector<unsigned short, std::allocator<unsigned short> >::operator[] (this=0x5555567d24c0, __n=64) at /usr/include/c++/11.1.0/bits/stl_vector.h:1045
#4 0x00005555557ce6e5 in MapCollision::unblock (this=0x5555569439a0, map_x=@0x555557248e2c: 40.3690796, map_y=@0x555557248e30: 64.7063751)
at /usr/src/debug/flare-engine/src/MapCollision.cpp:520
#5 0x00005555558a9b56 in StatBlock::takeDamage (this=0x555557248b18, dmg=30, crit=false, source_type=1) at /usr/src/debug/flare-engine/src/StatBlock.cpp:698
#6 0x00005555558ac3ed in StatBlock::removeSummons (this=0x555556797638) at /usr/src/debug/flare-engine/src/StatBlock.cpp:1091
#7 0x00005555558ac5ba in StatBlock::removeFromSummons (this=0x555556797638) at /usr/src/debug/flare-engine/src/StatBlock.cpp:1110
#8 0x00005555558a699e in StatBlock::~StatBlock (this=0x555556797638, __in_chrg=<optimized out>) at /usr/src/debug/flare-engine/src/StatBlock.cpp:205
#9 0x0000555555741067 in Entity::~Entity (this=0x555556797590, __in_chrg=<optimized out>) at /usr/src/debug/flare-engine/src/Entity.cpp:758
#10 0x00005555557410e0 in Entity::~Entity (this=0x555556797590, __in_chrg=<optimized out>) at /usr/src/debug/flare-engine/src/Entity.cpp:758
#11 0x000055555574a714 in EntityManager::handleNewMap (this=0x555556b0f5f0) at /usr/src/debug/flare-engine/src/EntityManager.cpp:129
#12 0x000055555577dc0e in GameStatePlay::checkTeleport (this=0x5555567b8bb0) at /usr/src/debug/flare-engine/src/GameStatePlay.cpp:364
#13 0x00005555557802c7 in GameStatePlay::logic (this=0x5555567b8bb0) at /usr/src/debug/flare-engine/src/GameStatePlay.cpp:918
#14 0x0000555555789ce7 in GameSwitcher::logic (this=0x5555562e3000) at /usr/src/debug/flare-engine/src/GameSwitcher.cpp:204
#15 0x00005555558db463 in mainLoop () at /usr/src/debug/flare-engine/src/main.cpp:206
#16 0x00005555558dc374 in main (argc=1, argv=0x7fffffffdd28) at /usr/src/debug/flare-engine/src/main.cpp:442
No game user interface loads. Do I have to type something to load the program normally?
Enter run
or r
in the gdb command line to start the program.
Thanks! Also, how did you identify 0x555556d00928
(in your debug log) or 0x555556797638
(in mine) as grave zombies?
Those are the only summoned creatures on that map. But it really doesn't matter which creatures they are. Just that they were summoned by another entity.
Makes sense! And if I kill all the Cursed Graves, then I can go to Lochport without crashing!
Similar core dump described in https://github.com/flareteam/flare-game/issues/790
I loaded saved game several times. 5+ times in Lochport Cemetery with a level 3 scout, having just came into the cemetary from Family Crypt (where the save game loads from), when I walk to go into Lochport (in the South), the game crashes everytime. I was in there before I think, but now I can't go back there anymore it seems, not with this saved game.
avatar.txt
Actually, I just created an entirely new character and ran all the way from the beginning without killing anything Arriving from Merrimead Swamp and going straight towards Lochport (South exit), the game still crashes.