[0.14.13] Crash related to trains and rails on MP

Bugs that we were not able to reproduce, and/or are waiting for more detailed info.
Post Reply
danielgweb
Inserter
Inserter
Posts: 25
Joined: Mon Sep 05, 2016 3:23 pm
Contact:

[0.14.13] Crash related to trains and rails on MP

Post by danielgweb »

The server just crashed. The log is attached.

Code: Select all

System info: [CPU: Intel(R) Xeon(R) CPU E5-1660 v3 @ 3.00GHz, 4 cores, RAM: 4096MB]

Code: Select all

15741.808 Info TransferSource.cpp:140: Block request by a peer we're not serving for (56)
15743.113 Info ServerMultiplayerManager.cpp:733: mapTick(8170933) received stateChanged peerID(57) oldState(ConnectedLoadingMap) newState(TryingToCatchUp)
15755.299 Info ServerMultiplayerManager.cpp:733: mapTick(8171665) received stateChanged peerID(57) oldState(TryingToCatchUp) newState(WaitingForCommandToStartSendingTickClosures)
15755.300 Info GameActionHandler.cpp:2547: MapTick(8171665) processed PlayerJoinGame peerID(57) playerIndex(186) mode(create)
15755.474 Info ServerMultiplayerManager.cpp:733: mapTick(8171675) received stateChanged peerID(57) oldState(WaitingForCommandToStartSendingTickClosures) newState(InGame)
15809.366 Error CrashHandler.cpp:230: Received SIGSEGV
Factorio crashed. Generating symbolized stacktrace, please wait ...
15810.347 Warning Logger.cpp:364: Symbols.size() == 19, usedSize == 13
#0  0x000000000080d98d in Logger::logStacktrace(StackTraceInfo*) at /tmp/factorio-Tzjt63/src/Util/Logger.cpp:386
#1  0x000000000096d75b in CrashHandler::writeStackTrace() at /tmp/factorio-Tzjt63/src/Util/CrashHandler.cpp:105
#2  0x000000000096d9d4 in CrashHandler::SignalHandler(int) at /tmp/factorio-Tzjt63/src/Util/CrashHandler.cpp:235
#3  0x00007fa275c9d2f0 in ?? at ??:0
#4  0x00000000007fd949 in Train::tryReserveSignalsUpTo(double) [clone .constprop.73671] at /tmp/factorio-Tzjt63/src/Entity/RailSignalBase.hpp:82
#5  0x0000000000c0e2ca in tryReserveSignalsUpTo at /tmp/factorio-Tzjt63/src/Rail/Train.cpp:1582
#6  0x0000000000c47582 in TrainManager::update(bool) at /tmp/factorio-Tzjt63/src/Rail/Train.cpp:1031
#7  0x0000000000c4b852 in update at /tmp/factorio-Tzjt63/src/Rail/TrainManager.cpp:172
#8  0x0000000000c5d3b2 in Map::update() at /tmp/factorio-Tzjt63/src/Map/Map.cpp:1121
#9  0x0000000000c5e121 in Scenario::update() at /tmp/factorio-Tzjt63/src/Game.cpp:144
#10 0x0000000000cef9ad in update at /tmp/factorio-Tzjt63/src/Scenario/Scenario.cpp:837
#11 0x00007fa275c88a40 in MainLoop::gameUpdateStep(MultiplayerManagerBase*, Scenario*, AppManager*, MainLoop::HeavyMode) [clone .constprop.71557] at /tmp/factorio-Tzjt63/src/MainLoop.cpp:739
#12 0x0000000000406c69 in MainLoop::gameUpdateLoop(MainLoop::HeavyMode) at /tmp/factorio-Tzjt63/src/GlobalContext.cpp:969
15811.218 Warning Logger.cpp:364: Symbols.size() == 18, usedSize == 12
15811.218 Error CrashHandler.cpp:106: Map tick at moment of crash: 8174908
15811.218 Error Util.cpp:77: Unexpected error occurred. If you're running the latest version of the game you can help us solve the problem by posting the contents of the log file on the Factorio forums.
Please also include the save file(s), any mods you may be using, and any steps you know of to reproduce the crash.
Also I just append the Undecorator mod script on control.lua

Map file: control.lua

Code: Select all

script.on_event(defines.events.on_player_created, function(event)
  local player = game.players[event.player_index]
  player.insert{name="iron-plate", count=8}
  player.insert{name="pistol", count=1}
  player.insert{name="firearm-magazine", count=10}
  player.insert{name="burner-mining-drill", count = 1}
  player.insert{name="stone-furnace", count = 1}
  player.force.chart(player.surface, {{player.position.x - 200, player.position.y - 200}, {player.position.x + 200, player.position.y + 200}})
  if (#game.players <= 1) then
    game.show_message_dialog{text = {"msg-intro"}}
  else
    player.print({"msg-intro"})
  end
end)

script.on_event(defines.events.on_player_respawned, function(event)
  local player = game.players[event.player_index]
  player.insert{name="pistol", count=1}
  player.insert{name="firearm-magazine", count=10}
end)

script.on_event(defines.events.on_rocket_launched, function(event)
  local force = event.rocket.force
  if event.rocket.get_item_count("satellite") == 0 then
    if (#game.players <= 1) then
      game.show_message_dialog{text = {"gui-rocket-silo.rocket-launched-without-satellite"}}
    else
      for index, player in pairs(force.players) do
        player.print({"gui-rocket-silo.rocket-launched-without-satellite"})
      end
    end
    return
  end
  if not global.satellite_sent then
    global.satellite_sent = {}
  end
  if global.satellite_sent[force.name] then
    global.satellite_sent[force.name] = global.satellite_sent[force.name] + 1   
  else
    game.set_game_state{game_finished=true, player_won=true, can_continue=true}
    global.satellite_sent[force.name] = 1
  end
  for index, player in pairs(force.players) do
    if player.gui.left.rocket_score then
      player.gui.left.rocket_score.rocket_count.caption = tostring(global.satellite_sent[force.name])
    else
      local frame = player.gui.left.add{name = "rocket_score", type = "frame", direction = "horizontal", caption={"score"}}
      frame.add{name="rocket_count_label", type = "label", caption={"", {"rockets-sent"}, ":"}}
      frame.add{name="rocket_count", type = "label", caption=tostring(global.satellite_sent[force.name])}
    end
  end
end)

local CHUNK_SIZE = 32

local function removeDecorationsArea(surface, area )
	for _, entity in pairs(surface.find_entities_filtered{area = area, type="decorative"}) do
		entity.destroy()
	end
end

local function removeDecorations(surface, x, y, width, height )
	removeDecorationsArea(surface, {{x, y}, {x + width, y + height}})
end

local function clearDecorations()
	local surface = game.surfaces["nauvis"]
	for chunk in surface.get_chunks() do
		removeDecorations(surface, chunk.x * CHUNK_SIZE, chunk.y * CHUNK_SIZE, CHUNK_SIZE - 1, CHUNK_SIZE - 1)
	end
	
	for _, player in pairs(game.players) do
		player.print("Decorations removed")
	end
end

script.on_event(defines.events.on_chunk_generated, function(event)
	removeDecorationsArea( event.surface, event.area )
end)

script.on_event(defines.events.on_tick, function(event)

	if not global.fullClear then
		clearDecorations()
		global.fullClear = true
	end
	
	script.on_event(defines.events.on_tick, nil)
end)
Attachments
server.zip
(19.91 MiB) Downloaded 94 times
factorio-current.log
(523.03 KiB) Downloaded 90 times

User avatar
HanziQ
Former Staff
Former Staff
Posts: 630
Joined: Fri Mar 27, 2015 7:07 am
Contact:

Re: [0.14.13] Crash related to trains and rails on MP

Post by HanziQ »

I couldn't reproduce the problem with the attached save file, do you have a way to reproduce it?

danielgweb
Inserter
Inserter
Posts: 25
Joined: Mon Sep 05, 2016 3:23 pm
Contact:

Re: [0.14.13] Crash related to trains and rails on MP

Post by danielgweb »

Sorry. I got no way to reproduce it.

I wasn't playing when it occurred. People just told me the server had crashed, so I collected the logs and posted it here.

It's interesting no more crashes happened so far. I think this is a rare crash.

Post Reply

Return to “Pending”