Hello,
was there any update in the pak128.Britain-Ex this weekend? The server crashes with the following debug output:
Reading electricity consumption configuration ...
Reading menu configuration ...
ERROR: create_general_tool(): cannot satisfy request for general_tool[40]!
For help with this error or to file a bug report please see the Simutrans forum:
http://forum.simutrans.com
Warning: create_simple_tool(): deprecated tool [27] requested
Reading object data from Pak128.Britain-Ex/...
Message: ground_desc_t::register_desc(): setting raster width to 1
Message: ground_desc_t::register_desc(): setting raster width to 1
Message: register_desc(): Notice: obj Outside already defined
Message: skinverwaltung_t::register_desc(): Extra object WindowSkin added.
Warning: obj_reader_t::resolve_xrefs(): cannot resolve 'GOOD-bulk'
Warning: obj_reader_t::resolve_xrefs(): cannot resolve 'VHCL-LNWR-8wheel-radial-brake-lav'
Warning: obj_reader_t::resolve_xrefs(): cannot resolve 'VHCL-BR-1665Rear'
Message: warn_missing_objects: Object MonorailGround not found, feature disabled
Reading menu configuration ...
Warning: tool_t::read_menu(): toolbar[11][5]: replaced way-builder(id=14) with default param=cityroad by cityroad builder(id=36)
Reading private car ownership configuration ...
Midi disabled ...
Message: karte_t::load(): Prepare for loading
Message: karte_t::load(): Time is now: 933
Calculating textures ...done
World destroyed.
Warning: karte_t::load: Fileversion: 120004
Message: nwc_auth_player_t::init_player_lock_server: new = 32767
Message: nwc_auth_player_t::init_player_lock_server: new = 32767
Warning: karte_t::load(): loaded savegame from 6/1943, next month=1925185536, ticks=1924626376 (per month=1<<22)
Message: nwc_auth_player_t::init_player_lock_server: new = 28356
Running world, pause=0, fast forward=0 ...
I think it is related only to pak.britain, becaus server with pak.sweden is running
bridgewater-brunel has also been not responding since that update. and on my linux machine the client would crash until I deleted the settings xml file.
The Bridgewater-Brunel server appears to be online, but I am not able to attempt to connect to it until I upgrade my computer.
Can anyone upload the saved game from the Stephenson-Seimens server for me to test? I should be most grateful.
Quote from: jamespetts on August 13, 2019, 10:01:16 AM
The Bridgewater-Brunel server appears to be online, but I am not able to attempt to connect to it until I upgrade my computer.
Can anyone upload the saved game from the Stephenson-Seimens server for me to test? I should be most grateful.
bridgewater-brunel does appear online, but for at least the past 48 hours it has been not responding on the server menu. Though unlikely, it could be an issue on my end.
The last save from stephenson-siemens game is here:
http://list.extended.simutrans.org/debug-saves/autosave-Pak128.Britain-Ex.sve
And although the bridgewater-brunel appears in the list, it is not possible to connect. It does not respond to the query from network dialog - does not send info like map size, number of players, etc.
Thank you for your report.
I have tested with the saved game, but I am afraid that I cannot reproduce the crash. I should be grateful if you could re-test with to-morrow's nightly build, as I have fixed a crash reported in another thread that it is possible is the cause of this issue.
I won't be able to test myself, but the server should be updated and started automatically. So if it is online tomorrow, you can consider it fixed.
Since stephenson-siemens is working again but bridgewater-brunel is not, it's unlikely that the problem can be isolated to pak128.britain-ex. The "last announce" tracker on the server listing seems to indicate it crashing and restarting every two minutes.
James, I understand you are still waiting on the computer upgrade, but in the meantime are you at least able to view the logs/output for the bridgewater-brunel server?
What I am seeing when I view the logs is a segfault: this suggests an error with the executable. To fix the error, I would need to load the saved game on my computer and find where the segfault occurs. Unfortunately, I am not able to do this until I upgrade my computer.
Would it be of assistance to anyone else trying to fix this if I were to upload the saved game from the server for someone else to debug before I obtain my upgraded computer?
I'd be willing to try, so long as it's not too much trouble to upload the save.
The saved game is here (http://bridgewater-brunel.me.uk/saves/server-crash-19-aug-2019.sve) - thank you for the offer of looking into this: that is helpful.
I haven't found anything, though I'm sure someone else could by running gdb or valgrind with debug flags (which are beyond my capability). This thread should move to the extended development board as it isn't related to the pakset.
Thank you for working on this: that is helpful. I have moved the topic as suggested.
I will have to look into this in detail when I have upgraded my computer to something that can actually run the server game.
Could you or anyone else compile and upload a linux binary with debugging symbols enabled? I could then test the save with gdb.
There it is!
http://dome.xileks.de/simutrans/simutrans-extended-debug
Compiled with current head and the follwing config:
BACKEND = sdl
COLOUR_DEPTH = 16
OSTYPE = linux
DEBUG = 3 # Level 1-3, higher number means more debug-friendly but slower, see Makefile
MSG_LEVEL = 4 # Level 1-4, more runtime debug messages (without only warnings and errors)
OPTIMISE = 1 # Add umpteen optimisation flags
WITH_REVISION = 1 # adds the commit number (truncated) from Github; important for network games
MULTI_THREAD = 1 # Enable multithreading
VERBOSE = 1
FLAGS = -DUSE_C -fno-delete-null-pointer-checks -fno-strict-aliasing -std=c++11
Well here's the backtrace for all interested.
(gdb) bt full
#0 0x000000000040e0aa in grund_t::ist_bruecke (this=0x0) at bauer/../boden/grund.h:322
No locals.
#1 0x00000000006eec89 in convoi_t::get_route_infos (this=0xc2ffdfc0) at simconvoi.cc:1200
tile = {x = 6437, y = 1474, z = 7 '\a', static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}
gr = 0x0
j = 2284
current_info = @0x1908e0188: {speed_limit = 12160, steps_from_start = 435467, direction = 9 '\t'}
this_info = @0x1908e0194: {speed_limit = 12160, steps_from_start = 435648, direction = 9 '\t'}
this_tile = {x = 6437, y = 1475, z = 7 '\a', static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}
this_weg = 0x0
next_tile = {x = 6437, y = 1474, z = 7 '\a', static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}
this_gr = 0x5a6afd40
bridge_tiles_ahead = 0
route_count = 2777
current_tile = {x = 6438, y = 1475, z = 8 '\b', static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}
current_weg = 0x0
touchdown_index = 2704
bridge_tiles = 1
front = @0xc3004c50: {<vehicle_base_t> = {<obj_t> = {_vptr.obj_t = 0x898b08 <vtable for air_vehicle_t+16>, static show_owner = false, pos = {x = 7676, y = 2470, z = 3 '\003', static invalid = {x = -1,
y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, xoff = -16 '\360', yoff = 8 '\b', owner_n = 7 '\a', flags = 5 '\005',
static welt = {<No data fields>}, type = obj_t::air_vehicle}, gr = 0x0, weg = 0x0, static dxdy = "\376\001\376\377\374\000\000\002\002\377\002\001\004\000\000\376",
static diagonal_vehicle_steps_per_tile = 181 '\265', static old_diagonal_vehicle_steps_per_tile = 181 '\265', static diagonal_multiplier = 724, static overtaking_base_offsets = {
"\364", <incomplete sequence \372>, <incomplete sequence \372>, <incomplete sequence \372>, <incomplete sequence \364>, "\f\006", "\364\006", "\000\006", "\022"}, direction = 1 '\001',
use_calc_height = 0 '\000', drives_on_left = 0 '\000', disp_lane = 2 '\002', dx = 2 '\002', dy = -1 '\377', steps = 5 '\005', steps_next = 255 '\377', pos_next = {x = 7676, y = 2469, z = 3 '\003',
static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, zoff_start = 0 '\000', zoff_end = 0 '\000', image = 8948, current_livery = {
static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xc3004c98 "default"},
_M_string_length = 7, {_M_local_buf = "default\000\000\000\000\000\000\000\000", _M_allocated_capacity = 32770348699510116}}, next_lane = 0 '\000',
class_reassignments = 0xc2ffdf20 ""}, <test_driver_t> = {_vptr.test_driver_t = 0x898c70 <vtable for air_vehicle_t+376>}, purchase_time = 23618, sum_weight = 27750, pre_corner_direction = {data = {
360, 45, 90, 45, 360, 0 <repeats 187 times>}, size = 5 '\005', head = 0 '\000', tail = 4 '\004'}, direction_steps = -23134, hill_up = 0 '\000', hill_down = 0 '\000', is_overweight = false,
reversed = false, diagonal_costs = 0, base_costs = 0, static sound_ticks = 0, speed_limit = 768, previous_direction = 1 '\001', target_halt = {static data = 0xb9a12020, static next = 8193,
static size = 16384, entry = 0}, current_friction = 4, route_index = 6, total_freight = 5, fracht = 0xc3004ec8, desc = 0xb1916e0, cnv = 0xc2ffdfc0, pos_prev = {x = 0, y = 0, z = 0 '\000',
static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, number_of_classes = 5 '\005', leading = true, last = true, smoke = true,
check_for_finish = false, has_driven = true, hop_count = 0 '\000', last_stop_pos = {x = 7674, y = 2473, z = 3 '\003', static invalid = {x = -1, y = -1, z = -1 '\377',
static invalid = <same as static member of an already seen type>}}}
current_route_index = 6
corner_data = {data = {360, 45, 90, 45, 360, 360, 360, 360, 360, 315, 22640, -7901, 20, 90, 0, 0, 0, 90, -7423, -21192, 11, 90, 0, -8916, 15, 90, 0, 0, 0, 90 <repeats 14 times>, 180, 270, 270, 23592,
-29361, 8, 270, -7866, -7558, 5, 180, -26624, -6518, 21, 224, 8192, -6518, 21, 270, -14567, -2959, 3, 270, 270, 225, 16, 135, 3459, -10305, 9, 134, 0, -21376, 16, 181, 0, -21376, 16, 134, 0, -30036,
18, 134, 135, 90 <repeats 15 times>, 13875, 0, -6096, 2660, 32764, 0, -5816, 2660, 32764, 0, -6064, 2660, 32764, 0, 13695, 129, 0, 0, -6096, 2660, 32764, 0, -5904, 2660, 32764, 0, -6008, 2660, 32764,
0, -5816, 2660, 32764, 0, -16136, -6226, 3, 0, 0, 5420, 24700, 29655, -6000, 2660, 13875, 0, -8116, -15617, 0, 0, -6000, 2660, 32764, 0, 508, 70, 0, 0, -5928, 2660, 32764, 0, -5904, 2660, 32764, 0,
-4983, -30519, 13875, 0, -5816, 2660, 32764, 0, -5952, 2660, 32764, 0, -5800, 2660, 32764, 0, -5920, 2660, 32764, 0, 13695, 129, 0, 0}, size = 10 '\n', head = 0 '\000', tail = 9 '\t'}
waytype = air_wt
takeoff_index = 10
i = 2283
start_info = @0x1908d9690: {speed_limit = 320, steps_from_start = 0, direction = 1 '\001'}
#2 0x00000000006ee276 in convoi_t::calc_acceleration (this=0xc2ffdfc0, delta_t=39) at simconvoi.cc:1044
front = @0xc3004c50: {<vehicle_base_t> = {<obj_t> = {_vptr.obj_t = 0x898b08 <vtable for air_vehicle_t+16>, static show_owner = false, pos = {x = 7676, y = 2470, z = 3 '\003', static invalid = {x = -1,
y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, xoff = -16 '\360', yoff = 8 '\b', owner_n = 7 '\a', flags = 5 '\005',
static welt = {<No data fields>}, type = obj_t::air_vehicle}, gr = 0x0, weg = 0x0, static dxdy = "\376\001\376\377\374\000\000\002\002\377\002\001\004\000\000\376",
static diagonal_vehicle_steps_per_tile = 181 '\265', static old_diagonal_vehicle_steps_per_tile = 181 '\265', static diagonal_multiplier = 724, static overtaking_base_offsets = {
"\364", <incomplete sequence \372>, <incomplete sequence \372>, <incomplete sequence \372>, <incomplete sequence \364>, "\f\006", "\364\006", "\000\006", "\022"}, direction = 1 '\001',
use_calc_height = 0 '\000', drives_on_left = 0 '\000', disp_lane = 2 '\002', dx = 2 '\002', dy = -1 '\377', steps = 5 '\005', steps_next = 255 '\377', pos_next = {x = 7676, y = 2469, z = 3 '\003',
static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, zoff_start = 0 '\000', zoff_end = 0 '\000', image = 8948, current_livery = {
static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xc3004c98 "default"},
_M_string_length = 7, {_M_local_buf = "default\000\000\000\000\000\000\000\000", _M_allocated_capacity = 32770348699510116}}, next_lane = 0 '\000',
--Type <RET> for more, q to quit, c to continue without paging--
class_reassignments = 0xc2ffdf20 ""}, <test_driver_t> = {_vptr.test_driver_t = 0x898c70 <vtable for air_vehicle_t+376>}, purchase_time = 23618, sum_weight = 27750, pre_corner_direction = {data = {
360, 45, 90, 45, 360, 0 <repeats 187 times>}, size = 5 '\005', head = 0 '\000', tail = 4 '\004'}, direction_steps = -23134, hill_up = 0 '\000', hill_down = 0 '\000', is_overweight = false,
reversed = false, diagonal_costs = 0, base_costs = 0, static sound_ticks = 0, speed_limit = 768, previous_direction = 1 '\001', target_halt = {static data = 0xb9a12020, static next = 8193,
static size = 16384, entry = 0}, current_friction = 4, route_index = 6, total_freight = 5, fracht = 0xc3004ec8, desc = 0xb1916e0, cnv = 0xc2ffdfc0, pos_prev = {x = 0, y = 0, z = 0 '\000',
static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, number_of_classes = 5 '\005', leading = true, last = true, smoke = true,
check_for_finish = false, has_driven = true, hop_count = 0 '\000', last_stop_pos = {x = 7674, y = 2473, z = 3 '\003', static invalid = {x = -1, y = -1, z = -1 '\377',
static invalid = <same as static member of an already seen type>}}}
route_count = 2777
current_route_index = 6
next_speed_limit = 0
next_stop_index = 2777
steps_til_limit = 1888595
steps_til_brake = 1888580
brake_steps = 16
route_infos_count = 8282252
steps_left_on_current_tile = 174385568
#3 0x00000000006ef153 in convoi_t::sync_step (this=0xc2ffdfc0, delta_t=39) at simconvoi.cc:1333
sp_hat = 12288
#4 0x00000000007b0512 in karte_t::sync_list_t::sync_step (this=0x254eab0, delta_t=39) at simworld.cc:4660
ss = 0xc2ffdfc0
i = 249537
#5 0x00000000007b0765 in karte_t::sync_step (this=0x2549c20, delta_t=39, do_sync_step=true, display=true) at simworld.cc:4731
No locals.
#6 0x000000000075111a in interrupt_check (caller_info=0x894b95 <error: Cannot access memory at address 0x894b95>) at simintr.cc:111
now = 100893
diff = 39
last_ms = 2005936956
#7 0x00000000007c607e in karte_t::interactive (this=0x2549c20, quit_month=2147483647) at simworld.cc:10441
wait_time = 171
time = 100883
hashes_ok = {data = 0x0, size = 0, count = 0}
ms_difference = 0
#8 0x000000000075c62f in simu_main (argc=1, argv=0x7ffc0a651418) at simmain.cc:1382
pause_after_load = false
welt = 0x2549c20
view = 0x2554a70
eventmanager = 0x2554980
resolutions = <error reading variable resolutions (Cannot access memory at address 0x8849d0)>
disp_width = 704
disp_height = 560
fullscreen = 0
quit_month = 2147483647
path_sep = 0x88533e <error: Cannot access memory at address 0x88533e>
pak_diagonal_multiplier = 724
pak_tile_height = 8 '\b'
pak_height_conversion_factor = 2 '\002'
found_settings = false
found_simuconf = true
multiuser = true
simuconf = {file = 0x0}
path_to_simuconf = "config/simuconf.tab\000\374\177\000"
version = 0x885410 <error: Cannot access memory at address 0x885410>
cli_syslog_enabled = false
cli_syslog_tag = 0x0
--Type <RET> for more, q to quit, c to continue without paging--
file = {mode = 4, saving = false, buffered = false, curr_buff = 4209674, buf_pos = {0, 462472320}, buf_len = {32653, 174390848}, ls_buf = {0x7ffc0a64fe50 "\210\274\f\033\215\177",
0x7f8d1b8eb7fb <error: Cannot access memory at address 0x7f8d1b8eb7fb>}, version = 0, extended_version = 0, extended_revision = 0, ident = 32653,
pak_extension = "\001", '\000' <repeats 15 times>, "\001\000\000\000\000\000\000\000 \301\220\033\215\177\000\000\350\376d\n\374\177\000\000\240\262)\033\215\177\000\000 \301\220\033\215\177\000\000\260\002e\n\001\000\000\000\200Đ\033\215\177\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\340\376d\n\374\177\000\000\377\377\377\377\000\000\000\000b\200\216\033\215\177\000\000\210\274\f\033\215\177\000\000\360\244)\033\215\177\000\000\060J\002\000\000\000\000\000\060J\002", '\000' <repeats 13 times>, "\001\000\000\000\000\000\000\000\000P\002\000\000\000\000\000\000\360\026\000\000\000\000\000\375\346\026\000\000\000\000\000\320S\266\000\000\000\000\000\020\023e\n\374\177\000\000p"..., filename = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffc0a64fef0 ""}, _M_string_length = 0, {
_M_local_buf = "\000\002e\n\374\177\000\000ni\217\033\215\177\000", _M_allocated_capacity = 140720482877952}}, fd = 0x1df4b10, static save_mode = loadsave_t::zipped,
static autosave_mode = loadsave_t::zipped}
xml_filename = "settings-extended-debug.xml\000\000\000\000"
xml_settings_found = false
obj_conf = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x1ea5e70 "/home/freddy/simutrans/simuconf.tab"}, _M_string_length = 35, {_M_local_buf = ".\000\000\000\000\000\000\000\v\000\000\000\000\000\000", _M_allocated_capacity = 46}}
themes_ok = true
parameter = {0, 0}
new_world = false
loadgame = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffc0a64fd40 ""},
_M_string_length = 0, {_M_local_buf = "\000emp-load.sve\000\000", _M_allocated_capacity = 7020949286509438208}}
#9 0x000000000076f6f0 in sysmain (argc=1, argv=0x7ffc0a651418) at simsys.cc:825
buffer2 = 0x0
buffer = "/home/freddy/Downloads/Simutrans-Extended-Complete/simutrans/simutrans-extended-debug\000\000\000\035ʎ\033\215\177\000\000\340\r\031\000\000\000\000\000`\252)\033\215\177\000\000/\256)\033\215\177\000\000\024\000\000\000\000\000\000\000\364\334\\\033\215\177\000\000\004\000\000\000\000\000\000\000Q\345td\006", '\000' <repeats 11 times>, " \005e\n\374\177\000\000\023ǎ\033\215\177\000\000\377\375\377o\000\000\000\000 \005e\n\374\177\000\000\200\252)\033\215\177\000\000)}"...
length = 85
#10 0x000000000083abb3 in main (argc=1, argv=0x7ffc0a651418) at simsys_s.cc:729
No locals.
I've managed to identify two places mentioned in the backtrace using an older save:
First is Halford airport ~(7670,2470). Here, Ves Transportation's planes were unable to land for quite some time due to a short runway. I remember that not long before the crash, I extended the runway using another player and planes were beginning to land.
Second is Trowerpool ~(6440,1470), served by Great Highland Railway. I could be mistaken, but I think I remember an airport being built here later.
This morning I have committed a debug build, this evening I can commit my own stack trace from my servers savegame.
However, the stack trace seems to be quite different from what freddyhayward had posted this morning.
savegame can be found here: https://dome.xileks.de/simutrans/save/network-debug.sve
Also, stdout and stderr can be found there:
https://dome.xileks.de/simutrans/log/network-debug.log
https://dome.xileks.de/simutrans/log/network-debug.err
Be careful about the stderr, as it contains the content of running in -debug 5 for 8 minutes, which in this case is more than 300k lines of log...
(gdb) bt
#0 0x0000000000722d89 in fabrik_t::smoke (this=0x37ef4260) at simfab.cc:1706
#1 0x00000000007249fd in fabrik_t::step (this=0x37ef4260, delta_t=2925) at simfab.cc:2244
#2 0x00000000007b421d in karte_t::step (this=0x23e65e30) at simworld.cc:5648
#3 0x00000000007c67c1 in karte_t::interactive (this=0x23e65e30, quit_month=2147483647) at simworld.cc:10531
#4 0x000000000075c62f in simu_main (argc=8, argv=0x7fffffffdb48) at simmain.cc:1382
#5 0x000000000076f6f0 in sysmain (argc=8, argv=0x7fffffffdb48) at simsys.cc:825
#6 0x000000000083abb3 in main (argc=8, argv=0x7fffffffdb48) at simsys_s.cc:729
(gdb) bt full
#0 0x0000000000722d89 in fabrik_t::smoke (this=0x37ef4260) at simfab.cc:1706
rot = 3 '\003'
offsetx = 0 '\000'
smoke = 0x10100000071c781
size = {x = 1, y = 1, static invalid = {x = -1, y = -1, static invalid = <same as static member of an already seen type>, static north = {x = 0, y = -1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = {x = 0, y = 1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = {x = 1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = {x = -1, y = 0, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = {{x = 0, y = -1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 0, y = 1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 1, y = 0,
static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>,
static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>,
static from_hang = <same as static member of an already seen type>}, {x = -1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}}, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>,
static from_hang = <same as static member of an already seen type>}, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>,
static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}
ro = {x = 3, y = -2, static invalid = {x = -1, y = -1, static invalid = <same as static member of an already seen type>, static north = {x = 0, y = -1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = {x = 0, y = 1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = {x = 1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = {x = -1, y = 0, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = {{x = 0, y = -1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 0, y = 1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 1, y = 0,
static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>,
static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>,
static from_hang = <same as static member of an already seen type>}, {x = -1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}}, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
--Type <RET> for more, q to quit, c to continue without paging--c
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}
gr = 0x0
offsety = -6 '\372'
rada = 0xac4fb10
#1 0x00000000007249fd in fabrik_t::step (this=0x37ef4260, delta_t=2925) at simfab.cc:2244
min_change = 1
periods = 4
slot_interval = 16384
#2 0x00000000007b421d in karte_t::step (this=0x23e65e30) at simworld.cc:5648
f = 0x37ef4260
once1__5647 = false
iter__5647 = 0x37e4c1f8
end__5647 = 0x37e4c200
break__5647 = true
container___5647 = @0x23e66df0: {data = 0x37e4b8e0, size = 512, count = 292}
once0__5647 = false
time = 506250
delta_t = 2925
check_city_routes = false
season_change = false
snowline_change = false
dt = 2925
#3 0x00000000007c67c1 in karte_t::interactive (this=0x23e65e30, quit_month=2147483647) at simworld.cc:10531
time = 506250
hashes_ok = {data = 0x0, size = 0, count = 0}
ms_difference = 0
#4 0x000000000075c62f in simu_main (argc=8, argv=0x7fffffffdb48) at simmain.cc:1382
pause_after_load = false
welt = 0x23e65e30
view = 0x130294c0
eventmanager = 0x130a5f90
resolutions = {{640, 480}, {800, 600}, {1024, 768}, {1280, 1024}, {704, 560}}
disp_width = 704
disp_height = 560
fullscreen = 0
quit_month = 2147483647
path_sep = 0x88533e "/"
pak_diagonal_multiplier = 724
pak_tile_height = 8 '\b'
pak_height_conversion_factor = 2 '\002'
found_settings = true
found_simuconf = true
multiuser = true
simuconf = {file = 0x0}
path_to_simuconf = "config/simuconf.tab\000\000\000\000"
version = 0x885410 "Simutrans version 120.2.1 Extended Nightly development build 14.5 from Aug 25 2019 #1f9227c\n"
cli_syslog_enabled = false
cli_syslog_tag = 0x0
file = {mode = 6, saving = false, buffered = false, curr_buff = 4158526191, buf_pos = {32767, 8}, buf_len = {0, 4160457504}, ls_buf = {0x1 <error: Cannot access memory at address 0x1>, 0x0}, version = 120004, extended_version = 14, extended_revision = 12, ident = 32767, pak_extension = "settings only\000\000\000\335_\024\364\377\177\000\000\000\000\000\000\000\000\000\000h\344\377\367\377\177\000\000p\305\377\377\377\177\000\000`\305\377\377\377\177\000\000>$\336\367\001\000\000\000\020\341\377\367\377\177\000\000\n<@\000\000\000\000\000\377\377\377\377\000\000\000\000\307\324\335\367\377\177\000\000\060B\206\366\377\177\000\000\340$\374\367\377\177\000\000衧\362\377\177\000\000衧\362\377\177\000\000\350\301(\000\000\000\000\000\003\000\000\000\377\177\000\000p\305\377\377\377\177\000\000\003\000\000\000\377\177\000\000\000\000\000\000\000\000\000\000P\307\377\377\377\177\000\000\006\000\000\000\000\000\000\000\002{\025\000\000\000\000\000\340\340\377\367\377\177\000\000\320S\266\000\000\000\000\000"..., filename = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xd05200 "settings-extended-debug.xml"}, _M_string_length = 27, {_M_local_buf = "\036\000\000\000\000\000\000\000\060B\206\366\377\177\000", _M_allocated_capacity = 30}}, fd = 0xd04d40, static save_mode = loadsave_t::zipped, static autosave_mode = loadsave_t::zipped}
xml_filename = "settings-extended-debug.xml\000\000\000\000"
xml_settings_found = true
obj_conf = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xd98e10 "/home/dome/simutrans/simuconf.tab"}, _M_string_length = 33, {_M_local_buf = "*\000\000\000\000\000\000\000\066\340\343\371\000\000\000", _M_allocated_capacity = 42}}
themes_ok = true
parameter = {0, 0}
new_world = false
loadgame = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x77f2910 ""}, _M_string_length = 0, {_M_local_buf = "\036\000\000\000\000\000\000\000\230\304\377\377\377\177\000", _M_allocated_capacity = 30}}
#5 0x000000000076f6f0 in sysmain (argc=8, argv=0x7fffffffdb48) at simsys.cc:825
buffer2 = 0x0
buffer = "/home/dome/games/simutrans-ex-src/simutrans-extended/build/default/simutrans-extended\000\000\000p\316\377\377\377\177\000\000\310\352~\362\377\177\000\000\000\000\000\000\000\000\000\000?\356~\362\377\177\000\000\322D\336\367\377\177\000\000\000\000\000\000\000\000\000\000`\021\337\367\377\177\000\000\000\000\000\000\000\000\000\000\310\327\377\377\377\177\000\000\300\327\377\377\377\177\000\000\277\327\377\377\377\177\000\000\240D\336\367\377\177\000\000\320\327\377\377\377\177\000\000\000\000\000\000\000\000\000\000"...
length = 85
#6 0x000000000083abb3 in main (argc=8, argv=0x7fffffffdb48) at simsys_s.cc:729
No locals.
After my save crashed the games after ~5-10 minutes of playing, I have loaded an old save from the afternoon which worked well until this evening.
Now I can commit another trace which seems to be the same except for memory adresses for sure.
What kind of confuses me is that the sigsev in this case seems to happen in a completeely different function than it happened at the stephenson-siemens save, so maybe this is a different bug?
I just loaded stephenson-siemens game running simutrans under gdb to confirm this produces the same trace as is did for freddyhayward. But yet it did not crash for me after 5 minutes in fast forward.
However, maybe this should be spit to a different bugreport as it seems to be a different bug to me.
Thread 1 "simutrans-exten" received signal SIGSEGV, Segmentation fault.
0x0000000000722d89 in fabrik_t::smoke (this=0x38380f40) at simfab.cc:1706
1706 wolke_t *smoke = new wolke_t(gr->get_pos(), offsetx, offsety, rada->get_images() );
(gdb) bt full
#0 0x0000000000722d89 in fabrik_t::smoke (this=0x38380f40) at simfab.cc:1706
rot = 3 '\003'
offsetx = 0 '\000'
smoke = 0x10100000071c781
size = {x = 1, y = 1, static invalid = {x = -1, y = -1, static invalid = <same as static member of an already seen type>, static north = {x = 0, y = -1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = {x = 0, y = 1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = {x = 1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = {x = -1, y = 0, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = {{x = 0, y = -1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 0, y = 1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 1, y = 0,
static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>,
static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>,
static from_hang = <same as static member of an already seen type>}, {x = -1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}}, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>,
static from_hang = <same as static member of an already seen type>}, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>,
static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}
ro = {x = 3, y = -2, static invalid = {x = -1, y = -1, static invalid = <same as static member of an already seen type>, static north = {x = 0, y = -1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = {x = 0, y = 1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = {x = 1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = {x = -1, y = 0, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = {{x = 0, y = -1, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 0, y = 1, static invalid = <same as static member of an already seen type>,
static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, {x = 1, y = 0,
static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>,
static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>,
static from_hang = <same as static member of an already seen type>}, {x = -1, y = 0, static invalid = <same as static member of an already seen type>, static north = <same as static member of an already seen type>,
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}}, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static west = <same as static member of an already seen type>,
static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>,
static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static east = <same as static member of an already seen type>,
static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>,
static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>},
static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>,
--Type <RET> for more, q to quit, c to continue without paging--c
static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}, static north = <same as static member of an already seen type>, static south = <same as static member of an already seen type>, static east = <same as static member of an already seen type>, static west = <same as static member of an already seen type>, static nsew = <same as static member of an already seen type>, static neighbours = <same as static member of an already seen type>, static second_neighbours = <same as static member of an already seen type>, static from_ribi = <same as static member of an already seen type>, static from_hang = <same as static member of an already seen type>}
gr = 0x0
offsety = -6 '\372'
rada = 0xac46df0
#1 0x00000000007249fd in fabrik_t::step (this=0x38380f40, delta_t=100) at simfab.cc:2244
min_change = 1
periods = 4
slot_interval = 16384
#2 0x00000000007b421d in karte_t::step (this=0x23e5fce0) at simworld.cc:5648
f = 0x38380f40
once1__5647 = false
iter__5647 = 0x382d9f70
end__5647 = 0x382d9f78
break__5647 = true
container___5647 = @0x23e60ca0: {data = 0x382d9660, size = 512, count = 291}
once0__5647 = false
time = 368452
delta_t = 100
check_city_routes = false
season_change = false
snowline_change = false
dt = 100
#3 0x00000000007c6187 in karte_t::interactive (this=0x23e5fce0, quit_month=2147483647) at simworld.cc:10459
time = 368425
hashes_ok = {data = 0x0, size = 0, count = 0}
ms_difference = 0
#4 0x000000000075c62f in simu_main (argc=8, argv=0x7fffffffdb08) at simmain.cc:1382
pause_after_load = false
welt = 0x23e5fce0
view = 0x12fdabf0
eventmanager = 0x12fe90c0
resolutions = {{640, 480}, {800, 600}, {1024, 768}, {1280, 1024}, {704, 560}}
disp_width = 704
disp_height = 560
fullscreen = 0
quit_month = 2147483647
path_sep = 0x88533e "/"
pak_diagonal_multiplier = 724
pak_tile_height = 8 '\b'
pak_height_conversion_factor = 2 '\002'
found_settings = true
found_simuconf = true
multiuser = true
simuconf = {file = 0x0}
path_to_simuconf = "config/simuconf.tab\000\000\000\000"
version = 0x885410 "Simutrans version 120.2.1 Extended Nightly development build 14.5 from Aug 25 2019 #1f9227c\n"
cli_syslog_enabled = false
cli_syslog_tag = 0x0
file = {mode = 6, saving = false, buffered = false, curr_buff = 4158526191, buf_pos = {32767, 8}, buf_len = {0, 4160457504}, ls_buf = {0x1 <error: Cannot access memory at address 0x1>, 0x0}, version = 120004, extended_version = 14, extended_revision = 12, ident = 32767, pak_extension = "settings only\000\000\000\335_\024\364\377\177\000\000\000\000\000\000\000\000\000\000h\344\377\367\377\177\000\000\060\305\377\377\377\177\000\000 \305\377\377\377\177\000\000>$\336\367\001\000\000\000\020\341\377\367\377\177\000\000\n<@\000\000\000\000\000\377\377\377\377\000\000\000\000\307\324\335\367\377\177\000\000\060B\206\366\377\177\000\000\340$\374\367\377\177\000\000衧\362\377\177\000\000衧\362\377\177\000\000\350\301(\000\000\000\000\000\003\000\000\000\377\177\000\000\060\305\377\377\377\177\000\000\003\000\000\000\377\177\000\000\000\000\000\000\000\000\000\000\020\307\377\377\377\177\000\000\006\000\000\000\000\000\000\000\002{\025\000\000\000\000\000\340\340\377\367\377\177\000\000\320S\266\000\000\000\000\000"..., filename = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xd04600 "settings-extended-debug.xml"}, _M_string_length = 27, {_M_local_buf = "\036\000\000\000\000\000\000\000\060B\206\366\377\177\000", _M_allocated_capacity = 30}}, fd = 0xd04140, static save_mode = loadsave_t::zipped, static autosave_mode = loadsave_t::zipped}
xml_filename = "settings-extended-debug.xml\000\000\000\000"
xml_settings_found = true
obj_conf = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xd982a0 "/home/dome/simutrans/simuconf.tab"}, _M_string_length = 33, {_M_local_buf = "*\000\000\000\000\000\000\000\066\340\343\371\000\000\000", _M_allocated_capacity = 42}}
themes_ok = true
parameter = {0, 0}
new_world = false
loadgame = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x766d0e0 ""}, _M_string_length = 0, {_M_local_buf = "\036\000\000\000\000\000\000\000X\304\377\377\377\177\000", _M_allocated_capacity = 30}}
#5 0x000000000076f6f0 in sysmain (argc=8, argv=0x7fffffffdb08) at simsys.cc:825
buffer2 = 0x0
buffer = "/home/dome/games/simutrans-ex-src/simutrans-extended/build/default/simutrans-extended\000\000\000\060\316\377\377\377\177\000\000\310\352~\362\377\177\000\000\000\000\000\000\000\000\000\000?\356~\362\377\177\000\000\322D\336\367\377\177\000\000\000\000\000\000\000\000\000\000`\021\337\367\377\177\000\000\000\000\000\000\000\000\000\000\210\327\377\377\377\177\000\000\200\327\377\377\377\177\000\000\177\327\377\377\377\177\000\000\240D\336\367\377\177\000\000\220\327\377\377\377\177\000\000\000\000\000\000\000\000\000\000"...
length = 85
#6 0x000000000083abb3 in main (argc=8, argv=0x7fffffffdb08) at simsys_s.cc:729
No locals.
QuoteHowever, maybe this should be spit to a different bugreport as it seems to be a different bug to me.
While I don't know the cause of either of these, the crash on bridgewater-brunel is instantaneous upon loading the save. Also, I'm not sure how to run simutrans-extended on gdb - up until now I have been using it on core dumps.
There _should_ not be a difference in creating the trace from a coredump or using gdb as far as I have read in the last few days.
However, running simutrans-ex using gdb is as sinple as
gdb ./simutrans-extended
Then, from within gdb enter
run -server
which would execute ./simutrans-extended -server under gdb. For sure you can add as many args as you want.
When the game crashes, enter
bt full
and you will get the trace.
Edit: After a whole night and morning of running in fast forward, the stephenson-siemens save from this thread is still running using the same build that I had provided in this thread.
It seems that I can't reproduce the crash by just running the game without taking action.
another backtrace from a 11-08-19 save. this one is slightly different in that the map and UI will load before immediately crashing. the problems seem to be at the same locations as earlier.
(gdb) bt full
#0 0x000000000040e0aa in grund_t::ist_bruecke (this=0x0)
at bauer/../boden/grund.h:322
No locals.
#1 0x00000000006eec89 in convoi_t::get_route_infos (this=0xbe54a4f0)
at simconvoi.cc:1200
tile = {x = 6437, y = 1474, z = 7 '\a', static invalid = {x = -1,
y = -1, z = -1 '\377',
static invalid = <same as static member of an already seen type>}}
gr = 0x0
j = 2284
current_info = @0x18cbb96f8: {speed_limit = 12160,
steps_from_start = 435467, direction = 9 '\t'}
this_info = @0x18cbb9704: {speed_limit = 12160,
steps_from_start = 435648, direction = 9 '\t'}
this_tile = {x = 6437, y = 1475, z = 7 '\a', static invalid = {x = -1,
y = -1, z = -1 '\377',
static invalid = <same as static member of an already seen type>}}
this_weg = 0x0
next_tile = {x = 6437, y = 1474, z = 7 '\a', static invalid = {x = -1,
y = -1, z = -1 '\377',
static invalid = <same as static member of an already seen type>}}
this_gr = 0x54201a10
bridge_tiles_ahead = 0
--Type <RET> for more, q to quit, c to continue without paging--
route_count = 2777
current_tile = {x = 6438, y = 1475, z = 8 '\b', static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}
current_weg = 0x0
touchdown_index = 2704
bridge_tiles = 1
front = @0xbe551180: {<vehicle_base_t> = {<obj_t> = {_vptr.obj_t = 0x898b08 <vtable for air_vehicle_t+16>, static show_owner = false, pos = {x = 7674, y = 2472, z = 3 '\003', static invalid = {x = -1,
y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, xoff = -16 '\360', yoff = 8 '\b', owner_n = 7 '\a', flags = 5 '\005',
static welt = {<No data fields>}, type = obj_t::air_vehicle}, gr = 0x0, weg = 0x0, static dxdy = "\376\001\376\377\374\000\000\002\002\377\002\001\004\000\000\376",
static diagonal_vehicle_steps_per_tile = 181 '\265', static old_diagonal_vehicle_steps_per_tile = 181 '\265', static diagonal_multiplier = 724, static overtaking_base_offsets = {
"\364", <incomplete sequence \372>, <incomplete sequence \372>, <incomplete sequence \372>, <incomplete sequence \364>, "\f\006", "\364\006", "\000\006", "\022"}, direction = 3 '\003',
use_calc_height = 0 '\000', drives_on_left = 0 '\000', disp_lane = 2 '\002', dx = 4 '\004', dy = 0 '\000', steps = 180 '\264', steps_next = 180 '\264', pos_next = {x = 7675, y = 2472, z = 3 '\003',
static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, zoff_start = 0 '\000', zoff_end = 0 '\000', image = 8950,
current_livery = "default", next_lane = 0 '\000', class_reassignments = 0xbe54a420 ""}, <test_driver_t> = {_vptr.test_driver_t = 0x898c70 <vtable for air_vehicle_t+376>}, purchase_time = 23617,
sum_weight = 28030, pre_corner_direction = {data = {360, 0 <repeats 191 times>}, size = 1 '\001', head = 0 '\000', tail = 0 '\000'}, direction_steps = -23636, hill_up = 0 '\000', hill_down = 0 '\000',
is_overweight = false, reversed = false, diagonal_costs = 0, base_costs = 0, static sound_ticks = 0, speed_limit = 768, previous_direction = 1 '\001', target_halt = {static data = 0xb4e23ee0,
static next = 8193, static size = 16384, entry = 0}, current_friction = 4, route_index = 2, total_freight = 9, fracht = 0xbe5513f8, desc = 0xa0a0940, cnv = 0xbe54a4f0, pos_prev = {x = 0, y = 0,
z = 0 '\000', static invalid = {x = -1, y = -1, z = -1 '\377', static invalid = <same as static member of an already seen type>}}, number_of_classes = 5 '\005', leading = true, last = true,
smoke = true, check_for_finish = false, has_driven = true, hop_count = 0 '\000', last_stop_pos = {x = 7674, y = 2473, z = 3 '\003', static invalid = {x = -1, y = -1, z = -1 '\377',
static invalid = <same as static member of an already seen type>}}}
current_route_index = 2
corner_data = {data = {45, 45, 90, 45, 360, 360, 360, 360, 360, 315, 90 <repeats 18 times>, 180, 270, 270, 270, 270, 315, 315, 270, 270, 270, 270, 270, 270, 315, 360, 315, 360, 360, 360, 315, -19548, -1,
3, 0, -5072, 15139, 0, 0, -19616, -1, 1023, 0, -21685, 113, 0, 0, -19472, -1, 8, 0, -5072, 15139, 0, 0, -19472, -1, 32767, 0, -23324, 113, 0, 0, 0, -1, 0, 0, -14528, 404, 3, 0, 608, 0, 384, 0,
-19472, -1, 32767, 0, -18625, -1, 32767, 12338, -6400, 14677, 17773, -29123, -18656, -1, 32767, 0, 0, 0, 0, 0, 31, 0, 0, 0, -19472, -1, 32767, 0, -11898, 132, 0, 0, -19088, -1, 32767, 0, 10042,
27885, 0, 0, -19384, -1, 32767, 0, -19440, -1, 32767, 0, 27564, 71, 0, 0, -32767, -1107, 32512, 0, -32768, 27884, 0, 0, -19384, -1, 32767, 0, 9952, 27885, 8, 0, -19328, -1, 32767, 0, 24468, 71, 0, 0,
-19392, -1, 32512, 0, -7680, 64, 0, 0, -19278, -1, 32767, 0, 9952, 27885, 0, 0, -19328, -1, 32767, 0, 1405, 64, 0, 0}, size = 10 '\n', head = 0 '\000', tail = 9 '\t'}
waytype = air_wt
takeoff_index = 10
i = 2283
start_info = @0x18cbb2c00: {speed_limit = 320, steps_from_start = 0, direction = 3 '\003'}
#2 0x000000000080b0c1 in air_vehicle_t::can_enter_tile (this=0xbe551180, gr=0x6d142d08, restart_speed=@0x7fffffffb850: -1) at vehicle/simvehicle.cc:8781
__PRETTY_FUNCTION__ = "virtual bool air_vehicle_t::can_enter_tile(const grund_t*, sint32&, uint8)"
route = @0xbe54a588: {route = {<vector_tpl<koord3d>> = {data = 0xbe54db30, size = 2778, count = 2777}, <No data fields>}, max_axle_load = 4294967295, max_convoy_weight = 4294967295,
static MAX_NODES_ARRAY = 2 '\002', static _nodes = {0x7fff2a4e5010, 0x7fff2771e010}, static _nodes_in_use = {false, false}, static MAX_STEP = 1500000, static max_used_steps = 604}
route_infos = @0x1458c30: {<vector_tpl<convoi_t::route_info_t>> = {data = 0x1e38f7000000, size = 3496, count = 270535366}, hp_start_index = 4497, hp_end_index = 1200, hp_start_step = 532,
hp_end_step = 761}
next_block = 0
last_index = 0
#3 0x00000000007eacc8 in vehicle_t::can_enter_tile (this=0xbe551180, restart_speed=@0x7fffffffb850: -1, second_check_count=0 '\000') at vehicle/simvehicle.cc:1628
ok = false
gr = 0x6d142d08
#4 0x00000000006f2eab in convoi_t::step (this=0xbe54a4f0) at simconvoi.cc:2260
restart_speed = -1
autostart = false
position = 0 '\000'
rev = true
gr = 0xf00026b17
str = 0x46ffffb901
__PRETTY_FUNCTION__ = "void convoi_t::step()"
lines = {data = 0x0, size = 0, count = 0}
#5 0x00000000007b364a in karte_t::step (this=0x1458c30) at simworld.cc:5476
cnv = {static data = 0xba5a7150, static next = 4097, static size = 8192, entry = 1404}
i = 2616
time = 99758
delta_t = 319
--Type <RET> for more, q to quit, c to continue without paging--
check_city_routes = false
season_change = false
snowline_change = false
dt = 0
#6 0x00000000007c67c1 in karte_t::interactive (this=0x1458c30, quit_month=2147483647) at simworld.cc:10531
time = 99645
hashes_ok = {data = 0x0, size = 0, count = 0}
ms_difference = 0
#7 0x000000000075c62f in simu_main (argc=1, argv=0x7fffffffe488) at simmain.cc:1382
pause_after_load = false
welt = 0x1458c30
view = 0x1463bf0
eventmanager = 0x1463b00
resolutions = {{640, 480}, {800, 600}, {1024, 768}, {1280, 1024}, {704, 560}}
disp_width = 704
disp_height = 560
fullscreen = 0
quit_month = 2147483647
path_sep = 0x88533e "/"
pak_diagonal_multiplier = 724
pak_tile_height = 8 '\b'
pak_height_conversion_factor = 2 '\002'
found_settings = false
found_simuconf = true
multiuser = true
simuconf = {file = 0x0}
path_to_simuconf = "config/simuconf.tab\000\000\000\000"
version = 0x885410 "Simutrans version 120.2.1 Extended Nightly development build 14.5 from Aug 25 2019 #1f9227c\n"
cli_syslog_enabled = false
cli_syslog_tag = 0x0
file = {mode = 4, saving = false, buffered = false, curr_buff = 4192460854, buf_pos = {0, 0}, buf_len = {0, 4209674}, ls_buf = {0x7ffff7ffe480 "\340\343\377\367\377\177",
0x7fffffffcec0 "\377\377\377\377"}, version = 0, extended_version = 0, extended_revision = 0, ident = 32767,
pak_extension = "\b\000\000\000\000\000\000\000\240\242\230\367\377\177\000\000\001", '\000' <repeats 15 times>, "\001\000\000\000\000\000\000\000 \341\377\367\377\177\000\000h\317\377\377\377\177\000\000\240\242\230\367\377\177\000\000 \341\377\367\377\177\000\000\240\064\377\367\001\000\000\000\200\344\377\367\377\177\000\000\000\000\000\000\000\000\000\000\320\325\377\377\377\177\000\000b\240\375\367\377\177\000\000\377\377\377\377\000\000\000\000\000P\002\000\000\000\000\000\210\254{\367\377\177\000\000\360\224\230\367\377\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000P\002\000\000\000\000\000\000\360\026\000\000\000\000\000\375\346\026\000\000\000\000\000\375\346\026\000\000\000\000\000\000P\002\000\000\000\000\000"..., filename = "", fd = 0xd03f10, static save_mode = loadsave_t::zipped,
static autosave_mode = loadsave_t::zipped}
xml_filename = "settings-extended-debug.xml\000\000\000\000"
xml_settings_found = false
obj_conf = "/home/freddy/simutrans/simuconf.tab"
themes_ok = true
parameter = {0, 0}
new_world = false
loadgame = ""
#8 0x000000000076f6f0 in sysmain (argc=1, argv=0x7fffffffe488) at simsys.cc:825
buffer2 = 0x0
buffer = "/home/freddy/simutrans/Simutrans-Extended-Complete/simutrans/simutrans-extended-debug\000\000\000\035\352\375\367\377\177\000\000\340\r\031\000\000\000\000\000`\232\230\367\377\177\000\000/\236\230\367\377\177\000\000\024\000\000\000\000\000\000\000\364\314\313\367\377\177\000\000\004\000\000\000\000\000\000\000Q\345td\006", '\000' <repeats 11 times>, "\220\325\377\377\377\177\000\000\023\347\375\367\377\177\000\000\377\375\377o\000\000\000\000\220\325\377\377\377\177\000\000\200\232\230\367\377\177\000\000"...
length = 85
#9 0x000000000083abb3 in main (argc=1, argv=0x7fffffffe488) at simsys_s.cc:729
No locals.
(gdb)
Edit: since the issue began on roughly 11/8, and references to simconvoi.cc:1200, it seems possible to have something to do with James's commit on bridge weight limits: https://github.com/jamespetts/simutrans-extended/commit/e93f72b6eb773d26077834ed3691e2a087de4096
So i build binaries from that said commit and from one commit behind tat one and will run both for the night.
So maybe we can say tomorrow that it is very likely the changes of that commit are causing the error.
Could you please upload the binary so I can run it with the bridgewater-brunel saves?
Sure.
dome.xileks.de/simutrans/simutrans-extended_f3b6d42dedec041ae25d95a855edda97e33552fd
dome.xileks.de/simutrans/simutrans-extended_e93f72b6eb773d26077834ed3691e2a087de4096
No test results for me yet.
I tried both versions with the bridgewater-brunel save and can now confirm that commit e93f72b is the cause of the crash.
James, as soon as you read this, please revert commit e93f72b until the issue can be fixed.
Edit: at line 1200 in simconvoi.cc,
gr->ist_bruecke()
is called, where
gr = 0x0
in the backtrace. is this a problem?
James - have you read my last reply to this thread (https://forum.simutrans.com/index.php/topic,19159.0.html) where I have identified the cause of the bug? Fixing it temporarily would only involve reverting the commit (e93f72b) on bridge weight limits.
I have done some more testing by saving the file in the older build and loading it in the latest build. What I have consistently found is that the save will not crash upon loading if enough time has been given (roughly 15 in-game minutes) in the older build (f3b6d42) for the planes at Halford Airport to take off. Given that this crash has yet to be reproduced without that specific save, it could be avoided for the time-being simply by updating the savegame used by bridgewater-brunel.
James: I'd be happy to upload the fixed save (run for 15 in-game minutes) for you to replace the existing on bridgewater-brunel.
Thank you all very much for testing: this is most helpful. I believe that Freddy Hayward identified the issue correctly in his post of the 28th of August: gr was not checked to see whether it was NULL. I have now added this check, which should be available in the next nightly builds. I should be grateful if people could report whether this fixes the problem with the server as of to-morrow morning.
My apologies for not having had the chance to look into this sooner: I was away all last week.
I did not have any server crashes for a while now but I'll try the old broken savegame with tomorrows build.
Just trying to understand Simutrans code, I am actually wondering how gr can be null in that case?
You are iterating over route indices, and gr is always the ground of a coordinate in that route.
If I got it right, welt->lookup will return NULL in two cases: The coordinate does not exist on the map or the coordinate exists but there is nothing at the given height at this coordinate.
So how can this happen?
If I got it right, this should situation should get logged as an error as this would be a bug somewhere else in the code.
Additionally I see the following potential bugs in calculation:
1. When a trains route ends on a bridge, the length of the bridge is only calculated up to that point.
2. When a bridge immediately follows another bridge, the code would threat them as one.
The server is now working again!