[0.13.8] [Pending] on_research_finished research crash.

This subforum contains all the issues which we already resolved.
JackB1024
Burner Inserter
Burner Inserter
Posts: 11
Joined: Wed Jul 13, 2016 2:06 pm
Contact:

[0.13.8] [Pending] on_research_finished research crash.

Post by JackB1024 »

While trying to update the Research Queue mod (viewtopic.php?f=92&t=17219) to work on Factorio v0.13.8, I ran into a MEMORY_ACCESS_EXCEPTION.
Was looking into the LUA code trying to figure out what could cause this exception and nothing was sticking out, so opened up Visual Studio and decided to Debug Factorio with it to try and see what was happening and found the cause of this bug.
I will use the symbol names below that VS gave me to help isolate where the issue is.
I also found another related issue which wont cause a crash, but instead an infinite loop (or close enough) in Factorio. As they are both related I will talk about them both here, however I will talk about the MEMORY_ACCESS_EXCEPTION one first.

Quick background into the code
In the function ResearchManager::onResearchProgressChanged you do a call to Technology::setResearchAndApply. During that function call another call is made out to the LUA on_research_finished event. After Technology::setResearchAndApply finishes, you decrement a value (I will call it "Research Flag" from now on, it has no symbol associated with it), check Research Flag is zero and returns.
If a LUA script calls game.forces[event.research.force.name].current_research = (new value) then this will cause a new research to be started. As part of that process Research Flag is set to 1.

Memory Access Crash
The game does need to be in a specific state for this crash to occur, otherwise instead of crashing, it will just cause an infinite loop. The state the game needs to be in is:
No research is currently going on.
A LUA script calls game.forces[some force].current_research = (new value) anywhere in its code.
Once this happens, the following will cause the crash.

The issue occurs when the LUA script call to set the research is done during the on_research_finished event. In this case:
Technology::setResearchAndApply is called
The LUA script is called
The LUA script will set the new technology to research, Research Flag is set to 1.
Technology::setResearchAndApply returns
Research Flag's value is decremented by 1.
Research Flag's value is checked against zero, is found equal and the function returns.

However the game is now in a unusual state, because research is going on but ResearchFlag's value is set to zero. If the next time ResearchManager::onResearchProgressChanged() is called the LUA script again sets a new research, the above steps will again happen, the game will continue to run, but will still be in this unexpected state.

The next step of this issue occurs when the LUA script does not set a new research. In this case the following happens
Technology::setResearchAndApply is called
The LUA script is called
The LUA script does not set the new technology to research, Research Flag stays at 0.
Technology::setResearchAndApply returns
Research Flag's value is decremented by 1. It now is -1
Research Flag's value is checked against zero, is found not to be equal and the code continues.
Code reads from a pointer that is uninitialized (nullptr), this causes a MEMORY_ACCESS_EXCEPTION and the game crashes.



Infinite Loop
To set up this case, the game must already be doing a research when Research Queue is told to start up a new queue that has the same technology. (eg, you are researching Automation 1, and Research Queue is told to research everything up to Electronics 1).

In this case during the last stage of the MEMORY ACCESS crash, the following will occur:
Technology::setResearchAndApply is called
The LUA script is called
The LUA script does not set the new technology to research, Research Flag is stays at 0.
Technology::setResearchAndApply returns
Research Flag's value is decremented by 1. It now is -1
Research Flag's value is checked against zero, is found not to be equal and the code continues.
Code checks a pointer (but in this case it is initialized) and continues on, everything seems to be working - but we are still in a bad state.
After some time a new research is told to start. As part of the code to start a new research it will clear any existing researches and as it thinks there is existing research (Research Flag's value is != 0) it will cause an almost infinite loop by constantly trying to clear research until research flag is set back to zero.
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5286
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [0.13.8] on_research_finished research crash.

Post by Klonan »

Thanks for the report,

Could you provide the mod you are working with and the log file generated from the crash?
JackB1024
Burner Inserter
Burner Inserter
Posts: 11
Joined: Wed Jul 13, 2016 2:06 pm
Contact:

Re: [0.13.8] [Pending] on_research_finished research crash.

Post by JackB1024 »

Sure, attached is the log file as well as the mod file for Research Queue.
I removed a lot of my own debug logging from the log file (most of the [RQ] in function X logs), but otherwise it is the same.

Note, with the infinite loop situation, no log file is produced.
Attachments
research-queue_1.2.7.zip
Research Queue Mod File, partly updated for Facotrio v0.13.8
(50.18 KiB) Downloaded 168 times
factorio-current_researchNullptr.log
Nullptr exception log file.
(7.04 KiB) Downloaded 179 times
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5286
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [0.13.8] [Pending] on_research_finished research crash.

Post by Klonan »

Im having trouble reproducing the issue,

Could you provide a specific set of lua script console commands that can reproduce the issue?
Specific steps to reproduce would be great too, as i tried understanding what you'd written but must be doing something wrong :)
JackB1024
Burner Inserter
Burner Inserter
Posts: 11
Joined: Wed Jul 13, 2016 2:06 pm
Contact:

Re: [0.13.8] [Pending] on_research_finished research crash.

Post by JackB1024 »

So there seems to be several different ways to make it crash, at different spots but they all revolve around this one issue.
This version actually crashes in a different place to where it was crashing with research queue, however it is from the same cause.

I just wrote my own mod to create this error everytime.
Just install the mod, and start a new sandbox (it would probably also work on normal mode, but I cannot be bothered manually getting up to that point just for a crash).
Then lay out a simple lab setup and manually select Automation 1 as your research.
When the research completes, the research window will show up again - press escape. Do NOT select the research here, doing so will reset the "research flag" variable.
The mod will now start researching electronics - the game is now in the unexpected state. "Research Flag" is zero yet research is going on.
When electronics finishes the mod should automatically start researching Automation 2. This time the research windows should NOT show up. If it does then you are in a different state than I was.
Once Automation 2 finishes, the game will crash with the MEMORY_ACCESS_EXCEPTION. - With ResearchQueue it will be inside the ResearchManager::onResearchProgressChanged function just before a call to startNewResearch() when it is getting a pointer to pass into the function, with this mod it is inside the Lab::checkIngredients function, just after a check to see if some two neighbouring members of the same object are equal (they are at object+0x20 and object+0x28), after that check fails and right before the next call it will crash.


So below is more technical and includes assembly code and stuff like that to help you understand exactly where the issue is occuring.

If you are debugging the game with an IDE and can watch variable values and when functions are called, look for the function luaWriteCurrentResearch(lua_State* L) being called during the call to Technology::setResearchAndApply(). If this call happens, it will call the ResearchManager::enqueueResearch function which will change the value for "research flag". It is the change here that can cause issues. Because once Technology::setResearchAndApply() returns, "Research Flags" value will be decremented, but the research started by ResearchManager::enqueueResearch will continue on.

Also "Research Flag" is a 64bit int (the assembly is sub qword(ebx + 0x20h) to decrement it) and the code will shortly branch between returning (which it basically always does under normal circumstances because there is no way to set Research Flag to a value > 1), or calling ResearchManager::startNewResearch().
If you are live watching the code and variables, if before Technology::setResearchAndApply() is called, the value of "Research Flag" is 0, you are in the invalid state.
The crash will occur slightly later in the onResearchProgressChanged() function, after the call to std::dequeue there is a branch if the dereferenced value returned by dequeue is nullptr (it wont be).
You get a few more objects and 2 commands before the call to startNewResearch you get an object from an array. With Research Queue, this command is the one that can crash because it is:
mov rdx, qword ptr[rdx + rcx * 8] but at this point rdx and rcx are both 0.
If it doesn't crash here (which it wont with my mod because rdx is initialized due to the user manually starting the automation research I believe), it will crash on the next update tick when it does a call to Lab::checkIngredients().

In cases of the infinite loop, that is caused by ResearchManager::enqueueResearch first trimming the queue - which is why Research Flag can never be >1 under normal circumstances. It uses the "Research Flag" variable to get the queue length, and while != 0 will dequeue an item. Given Research Flag is 64bits and is currently -1, it isn't going to become 0 anytime soon.
Attachments
Crash Factorio_0.0.1.zip
Crashes Factorio v0.13.8... Do not run it unless you like crashes.
(1.09 KiB) Downloaded 140 times
Rseding91
Factorio Staff
Factorio Staff
Posts: 14345
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.13.8] [Pending] on_research_finished research crash.

Post by Rseding91 »

Fixed for 0.13.9:

- Fixed crash when setting new research in the on_research_completed event.
If you want to get ahold of me I'm almost always on Discord.
dee-
Filter Inserter
Filter Inserter
Posts: 416
Joined: Mon Jan 19, 2015 9:21 am
Contact:

Re: [0.13.8] [Pending] on_research_finished research crash.

Post by dee- »

JackB1024, that was pretty cool! Respect.
Even without knowing or seeing the code I could understand what was going on from your explanation.
User avatar
steinio
Smart Inserter
Smart Inserter
Posts: 2638
Joined: Sat Mar 12, 2016 4:19 pm
Contact:

Re: [0.13.8] [Pending] on_research_finished research crash.

Post by steinio »

When is 0.13.9 released?

I load the save and 3 seconds later a research is finished and i'm probably traped in this bug.

Code: Select all

   0.001 2016-07-15 19:13:43; Factorio 0.13.8 (build 23239, win64, steam)
   0.002 Operating system: Windows 10 
   0.002 Program arguments: "D:\SteamLibrary\steamapps\common\Factorio\bin\x64\Factorio.exe" "--wait-to-close" "4964" 
   0.002 Read data path: D:/SteamLibrary/steamapps/common/Factorio/data
   0.002 Write data path: D:/SteamLibrary/steamapps/common/Factorio
   0.002 Binaries path: D:/SteamLibrary/steamapps/common/Factorio/bin
   0.019 Graphics options: [FullScreen: true] [VSync: false] [UIScale: 125%] [MultiSampling: OFF] [Graphics quality: normal] [Video memory usage: all] [Light scale: 100%] [Screen: 255] [DXT: false]
   0.020 Available display adapters: 1
   0.020  [0]: \\.\DISPLAY1 - Intel(R) HD Graphics Family {0x05, [0,0], 1920x1080, 32bit, 60Hz}
   0.020 Create display on adapter 0. Size 1600x900 at position [150, 72].
   0.141 Initialised Direct3D:[0] NVIDIA GeForce GT 735M; driver: nvd3dumx.dll 10.18.13.6869
   0.146     Video memory size (dedicated video/dedicated system/shared system/available): 2020/0/4045/4088 MB
   0.187 Desktop composition is active.
   0.500 Loading mod core 0.0.0 (data.lua)
   0.504 Loading mod base 0.13.8 (data.lua)
   0.627 Loading mod Big_Brother 0.3.0 (data.lua)
   0.723 Loading mod blueprint-string 3.0.3 (data.lua)
   0.801 Loading mod Crafted Artifacts 2.0.0 (data.lua)
   0.880 Loading mod angelsores-disableinfiniteores 0.1.1 (data.lua)
   0.949 Loading mod Bergius_Process 0.1.2 (data.lua)
   1.039 Loading mod BetterFluidColors 1.0.1 (data.lua)
   1.105 Loading mod BigDrill 0.3.5 (data.lua)
   1.175 Loading mod BigWoodenPowerPole 0.0.3 (data.lua)
   1.261 Loading mod bobconfig 0.13.1 (data.lua)
   1.335 Loading mod boblibrary 0.13.1 (data.lua)
   1.423 Loading mod color-coding 1.1.0 (data.lua)
   1.502 Loading mod Concrete_Lamppost 0.1.1 (data.lua)
   1.578 Loading mod EvoGUI 0.4.104 (data.lua)
   1.663 Loading mod factorio-reach 2.0.3 (data.lua)
   1.735 Loading mod FactorioMaps 0.6.0 (data.lua)
   1.814 Loading mod Flow Control 2.0.0 (data.lua)
   1.904 Loading mod Fluid Void 1.0.3 (data.lua)
   1.977 Loading mod Honk 2.0.0 (data.lua)
   2.055 Loading mod KS_Power 0.1.4 (data.lua)
   2.135 Loading mod Loader 0.0.1 (data.lua)
   2.238 Loading mod MagneticFloor 0.1.1 (data.lua)
   2.315 Loading mod MapLabels 0.1.1 (data.lua)
   2.392 Loading mod Potato 1.0.0 (data.lua)
   2.471 Loading mod RailTanker 1.3.32 (data.lua)
   2.472 Script data.lua:18: done
   2.579 Loading mod ScoreExtended 1.0.9 (data.lua)
   2.658 Loading mod Stainless Steel Wagon 1.0.1 (data.lua)
   2.754 Loading mod UraniumPower 0.6.4 (data.lua)
   2.847 Loading mod VoidChestInstant 1.0.1 (data.lua)
   2.955 Loading mod Warehousing 0.0.10 (data.lua)
   3.043 Loading mod YARM 0.7.101 (data.lua)
   3.137 Loading mod yi_railway 0.3.10 (data.lua)
   3.276 Loading mod Yuoki 0.3.55 (data.lua)
   3.408 Loading mod bobenemies 0.13.1 (data.lua)
   3.551 Loading mod bobores 0.13.1 (data.lua)
   3.717 Loading mod yi_engines 0.3.16 (data.lua)
   3.869 Loading mod z_yira_american 0.3.4 (data.lua)
   4.045 Loading mod z_yira_UP 0.3.3 (data.lua)
   4.191 Loading mod z_yira_yuokirails 0.3.3 (data.lua)
   4.361 Loading mod bobtech 0.13.0 (data.lua)
   4.527 Loading mod bobplates 0.13.2 (data.lua)
   4.693 Loading mod angelsrefining 0.2.5 (data.lua)
   4.928 Loading mod bobassembly 0.13.0 (data.lua)
   5.097 Loading mod bobelectronics 0.13.1 (data.lua)
   5.285 Loading mod bobgreenhouse 0.13.2 (data.lua)
   5.499 Loading mod boblogistics 0.13.4 (data.lua)
   5.694 Loading mod bobmining 0.13.1 (data.lua)
   5.899 Loading mod bobpower 0.13.1 (data.lua)
   6.156 Loading mod bobrevamp 0.13.0 (data.lua)
   6.352 Loading mod angelsinfiniteores 0.3.1 (data.lua)
   6.566 Loading mod angelsprocessing 0.2.0 (data.lua)
   6.799 Loading mod bobmodules 0.13.0 (data.lua)
   7.075 Loading mod bobwarfare 0.13.4 (data.lua)
   7.305 Loading mod Orbital Ion Cannon 1.3.0 (data.lua)
   7.536 Loading mod Satellite Uplink Station 1.0.0 (data.lua)
   7.787 Loading mod Big_Brother 0.3.0 (data-updates.lua)
   8.105 Loading mod bobconfig 0.13.1 (data-updates.lua)
   8.336 Loading mod bobenemies 0.13.1 (data-updates.lua)
   8.601 Loading mod bobores 0.13.1 (data-updates.lua)
   8.928 Loading mod bobtech 0.13.0 (data-updates.lua)
   9.159 Loading mod MiningTools 1.0.16 (data-updates.lua)
   9.441 Loading mod rso-mod 2.0.9 (data-updates.lua)
   9.671 Loading mod bobplates 0.13.2 (data-updates.lua)
   9.950 Loading mod angelsrefining 0.2.5 (data-updates.lua)
  10.223 Loading mod bobassembly 0.13.0 (data-updates.lua)
  10.469 Loading mod bobelectronics 0.13.1 (data-updates.lua)
  10.763 Loading mod bobgreenhouse 0.13.2 (data-updates.lua)
  11.011 Loading mod boblogistics 0.13.4 (data-updates.lua)
  11.016 Script technology-functions.lua:24: Technology inserter-stack-size-bonus-4 does not exist.
  11.252 Loading mod bobmining 0.13.1 (data-updates.lua)
  11.573 Loading mod bobpower 0.13.1 (data-updates.lua)
  11.807 Loading mod bobrevamp 0.13.0 (data-updates.lua)
  12.051 Loading mod bobmodules 0.13.0 (data-updates.lua)
  12.359 Loading mod bobwarfare 0.13.4 (data-updates.lua)
  12.592 Loading mod Orbital Ion Cannon 1.3.0 (data-updates.lua)
  12.824 Loading mod RailTanker 1.3.32 (data-final-fixes.lua)
  13.072 Loading mod Squeak Through 1.1.3 (data-final-fixes.lua)
  13.356 Loading mod bobelectronics 0.13.1 (data-final-fixes.lua)
  13.613 Loading mod angelsinfiniteores 0.3.1 (data-final-fixes.lua)
  13.858 Checksum for core: 714099156
  13.858 Checksum for mod base: 1905699976
  13.858 Checksum for mod Big_Brother: 180679385
  13.858 Checksum for mod blueprint-string: 2370144521
  13.858 Checksum for mod Crafted Artifacts: 2576711156
  13.858 Checksum for mod angelsores-disableinfiniteores: 459381050
  13.858 Checksum for mod Bergius_Process: 4267996501
  13.858 Checksum for mod BetterFluidColors: 1223381635
  13.858 Checksum for mod BigDrill: 3670343886
  13.858 Checksum for mod BigWoodenPowerPole: 1632622646
  13.858 Checksum for mod bobconfig: 3903115925
  13.858 Checksum for mod boblibrary: 3719200648
  13.858 Checksum for mod bobtechsave: 0
  13.858 Checksum for mod color-coding: 1364593114
  13.858 Checksum for mod Concrete_Lamppost: 2883059235
  13.858 Checksum for mod EvoGUI: 1040096666
  13.858 Checksum for mod factorio-reach: 223169401
  13.858 Checksum for mod FactorioMaps: 1004700098
  13.858 Checksum for mod Flow Control: 4252853042
  13.858 Checksum for mod Fluid Void: 1461162325
  13.858 Checksum for mod Honk: 2302555571
  13.858 Checksum for mod KS_Power: 181953323
  13.858 Checksum for mod Loader: 2235975466
  13.858 Checksum for mod MagneticFloor: 1992541304
  13.859 Checksum for mod MapLabels: 3727818788
  13.859 Checksum for mod Potato: 210546998
  13.859 Checksum for mod RailTanker: 886730006
  13.859 Checksum for mod ScoreExtended: 3052219186
  13.859 Checksum for mod Squeak Through: 3024636449
  13.859 Checksum for mod Stainless Steel Wagon: 1462541304
  13.859 Checksum for mod UraniumPower: 432379650
  13.859 Checksum for mod VoidChestInstant: 798133373
  13.859 Checksum for mod Warehousing: 3149064619
  13.859 Checksum for mod YARM: 1471126532
  13.859 Checksum for mod yi_railway: 4124911212
  13.859 Checksum for mod Yuoki: 4150692765
  13.859 Checksum for mod bobenemies: 236131212
  13.859 Checksum for mod bobores: 3064781262
  13.859 Checksum for mod steinios_logistic_sensor: 0
  13.859 Checksum for mod steinios_research_sensor: 0
  13.859 Checksum for mod steinios_wind_sensor: 0
  13.859 Checksum for mod yi_engines: 195227622
  13.859 Checksum for mod z_yira_american: 1662702490
  13.859 Checksum for mod z_yira_UP: 3289932843
  13.859 Checksum for mod z_yira_yuokirails: 735296978
  13.859 Checksum for mod bobtech: 84910783
  13.859 Checksum for mod MiningTools: 2956757149
  13.859 Checksum for mod rso-mod: 27849727
  13.859 Checksum for mod bobplates: 996338412
  13.859 Checksum for mod angelsrefining: 3483595302
  13.859 Checksum for mod bobassembly: 73411764
  13.859 Checksum for mod bobelectronics: 718470343
  13.859 Checksum for mod bobgreenhouse: 2288073750
  13.859 Checksum for mod boblogistics: 2182177295
  13.859 Checksum for mod bobmining: 3435149013
  13.859 Checksum for mod bobpower: 2782224193
  13.859 Checksum for mod bobrevamp: 1272453139
  13.859 Checksum for mod angelsinfiniteores: 269307132
  13.859 Checksum for mod angelsprocessing: 282447012
  13.859 Checksum for mod bobmodules: 2066445511
  13.859 Checksum for mod bobwarfare: 1061803940
  13.859 Checksum for mod Orbital Ion Cannon: 4247862195
  13.859 Checksum for mod Satellite Uplink Station: 4148500026
  16.086 Initial atlas bitmap size is 16384
  16.127 Created atlas bitmap 16384x16382
  17.178 Created atlas bitmap 16384x11938
  17.806 Created atlas bitmap 4096x1784
  43.079 Sprites loaded
  43.079 Convert atlas 4096x1784 to: trilinear-filtering 
  44.648 Loading sounds...
  47.062 Custom inputs active: 0
  47.103 Factorio initialised
  75.425 Loading map D:/SteamLibrary\steamapps\common\Factorio\saves\_autosave1.zip
  75.458 Info Scenario.cpp:127: Map version 0.13.8-1
  75.899 Checksum for script D:/SteamLibrary/steamapps/common/Factorio/temp/currently-playing/control.lua: 900459546
  75.903 Checksum for script __Big_Brother__/control.lua: 751753306
  75.912 Checksum for script __blueprint-string__/control.lua: 1853645101
  75.914 Checksum for script __BigDrill__/control.lua: 3882048750
  75.915 Checksum for script __bobtechsave__/control.lua: 1098752798
  75.916 Checksum for script __Concrete_Lamppost__/control.lua: 3837682243
  75.920 Checksum for script __EvoGUI__/control.lua: 2392634121
  75.923 Checksum for script __FactorioMaps__/control.lua: 3263891712
  75.924 Checksum for script __Flow Control__/control.lua: 2993992164
  75.925 Checksum for script __Fluid Void__/control.lua: 1021643490
  75.926 Checksum for script __Honk__/control.lua: 732705837
  75.928 Checksum for script __KS_Power__/control.lua: 1219573510
  75.930 Checksum for script __MagneticFloor__/control.lua: 2215458914
  75.932 Checksum for script __MapLabels__/control.lua: 4242473369
  75.932 Checksum for script __Potato__/control.lua: 1656324814
  75.934 Checksum for script __RailTanker__/control.lua: 843196296
  75.936 Checksum for script __ScoreExtended__/control.lua: 1899618805
  75.940 Checksum for script __UraniumPower__/control.lua: 2663311719
  75.941 Checksum for script __VoidChestInstant__/control.lua: 3529544710
  75.942 Checksum for script __Warehousing__/control.lua: 3153892539
  75.946 Checksum for script __YARM__/control.lua: 616803594
  75.948 Checksum for script __yi_railway__/control.lua: 993953413
  75.949 Checksum for script __Yuoki__/control.lua: 1545924437
  75.950 Checksum for script __bobores__/control.lua: 3583780511
  75.951 Checksum for script __steinios_logistic_sensor__/control.lua: 3458621932
  75.952 Checksum for script __steinios_research_sensor__/control.lua: 2700498688
  75.954 Checksum for script __steinios_wind_sensor__/control.lua: 224040895
  75.956 Checksum for script __yi_engines__/control.lua: 3862663743
  75.959 Checksum for script __MiningTools__/control.lua: 538781287
  75.970 Checksum for script __rso-mod__/control.lua: 3833272620
  75.970 Checksum for script __angelsrefining__/control.lua: 884011260
  75.971 Checksum for script __boblogistics__/control.lua: 1944473365
  75.976 Checksum for script __Orbital Ion Cannon__/control.lua: 2573826740
  75.978 Checksum for script __Satellite Uplink Station__/control.lua: 2668329648
  80.251 Error CrashHandler.cpp:109: Exception Code: c0000005, Address: 00007FF647B2BEE5
  80.251 Error CrashHandler.cpp:119: Exception Context:
rax=ffffffffffffffff, rbx=0000023c9e52c910, rcx=0000000000000000,
rdx=0000000000000000, rsi=0000023ca9822da0, rdi=0000023c9e52c910,
rip=00007ff647b2bee5, rsp=000000b42e0ff0c0, rbp=000000b42e0ff229,
 r8=0000000000000001,  r9=0000000000000000, r10=0000000000000000,
r11=0000000000000064, r12=000000000035b9d6, r13=0000023c96036720,
r14=0000000000000000, r15=0000023d97934b10
Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-vechcs\libraries\stackwalker\stackwalker.cpp (906): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-vechcs\src\util\logger.cpp (328): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-vechcs\src\util\logger.cpp (382): Logger::logStacktrace
c:\cygwin64\tmp\factorio-vechcs\src\util\crashhandler.cpp (84): CrashHandler::writeStackTrace
c:\cygwin64\tmp\factorio-vechcs\src\util\crashhandler.cpp (129): CrashHandler::SehHandler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE3CF47E1E)
00007FFE3CF47E1E (KERNELBASE): (filename not available): UnhandledExceptionFilter
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE4070D998)
00007FFE4070D998 (ntdll): (filename not available): memset
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE406F5B26)
00007FFE406F5B26 (ntdll): (filename not available): _C_specific_handler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE40709AFD)
00007FFE40709AFD (ntdll): (filename not available): _chkstk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE40694FE9)
00007FFE40694FE9 (ntdll): (filename not available): RtlImageNtHeaderEx
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE40708C0A)
00007FFE40708C0A (ntdll): (filename not available): KiUserExceptionDispatcher
c:\cygwin64\tmp\factorio-vechcs\src\technology\researchmanager.cpp (160): ResearchManager::onResearchProgressChanged
c:\cygwin64\tmp\factorio-vechcs\src\entity\lab.cpp (224): Lab::update
c:\cygwin64\tmp\factorio-vechcs\src\surface\chunk.cpp (479): Chunk::update
c:\cygwin64\tmp\factorio-vechcs\src\surface\surface.cpp (911): Surface::update
c:\cygwin64\tmp\factorio-vechcs\src\map\map.cpp (1097): Map::update
c:\cygwin64\tmp\factorio-vechcs\src\game.cpp (141): Game::update
c:\cygwin64\tmp\factorio-vechcs\src\scenario\scenario.cpp (776): Scenario::update
c:\cygwin64\tmp\factorio-vechcs\src\mainloop.cpp (337): MainLoop::gameUpdateStep
c:\cygwin64\tmp\factorio-vechcs\src\mainloop.cpp (473): MainLoop::updateLoop
c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional (214): std::_Func_impl<std::_Binder<std::_Unforced,void (__cdecl&)(ThreadBarrier * __ptr64,boost::chrono::time_point<boost::chrono::steady_clock,boost::chrono::duration<__int64,boost::ratio<1,1000000000> > > * __ptr64,boost::chrono::time_point<boost::chrono::steady_clock,boost::chrono::duration<__int64,boost::ratio<1,1000000000> > > * __ptr64,bool * __ptr64,bool,enum MainLoop::HeavyMode),ThreadBarrier * __ptr64,boost::chrono::time_point<boost::chrono::steady_clock,boost::chrono::duration<__int64,boost::ratio<1,1000000000> > > * __ptr64,boost::chrono::time_point<boost::chrono::steady_clock,boost::chrono::duration<__int64,boost::ratio<1,1000000000> > > * __ptr64,bool * __ptr64,bool & __ptr64,enum MainLoop::HeavyMode & __ptr64>,std::allocator<int>,void>::_Do_call
c:\cygwin64\tmp\factorio-vechcs\src\util\thread.cpp (34): Thread::loop
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF648298BD3)
00007FF648298BD3 (Factorio): (filename not available): boost::thread::start_thread_noexcept
d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp (115): thread_start<unsigned int (__cdecl*)(void * __ptr64)>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE40488102)
00007FFE40488102 (KERNEL32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFE406BC5B4)
00007FFE406BC5B4 (ntdll): (filename not available): RtlUserThreadStart
  82.143 Error CrashHandler.cpp:85: Map tick at moment of crash: 3520982
  82.143 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.
If i'm wrong here i will make a new thread, but this was my first thought on event.

Greetings steinio
Image

Transport Belt Repair Man

View unread Posts
Post Reply

Return to “Resolved Problems and Bugs”