Page 1 of 1

Crash on laptop resume

Posted: Fri Sep 11, 2015 1:17 am
by suprnova74
paused the game (saved beforehand luckily) and suspended the laptop and on resume it stopped responding and then crashed.
When I suspended, McAfee Antivirus was running a scheduled full scan so that was paused in mid-scan as well. I've suspended the laptop many times with factorio playing and resumed without issue so I'm thinking mcafee may be the cause of this one. Here's the crash log:

Code: Select all

   0.001 2015-09-09 20:05:17; Factorio 0.11.22 (Build 14011, win32)
   0.001 Operating system: Windows 7 Service Pack 1
   0.001 Read data path: C:/factorio/Factorio_0.11.22/data
   0.001 Write data path: C:/factorio/Factorio_0.11.22
   0.001 Binaries path: C:/factorio/Factorio_0.11.22/bin
   0.136 Initialised video: NVIDIA NVS 5200M
   0.214 Graphics options: [FullScreen: false] [VSync: true] [UIScale: 100%] [MultiSampling: OFF] [Graphics quality: normal] [Video memory usage: all]
   0.330 Loading mod core 0.0.0 (data.lua)
   0.380 Loading mod base 0.11.22 (data.lua)
   1.421 Loading mod base 0.11.22 (data-updates.lua)
   2.379 Initial atlas bitmap size is 8192
   2.392 Created atlas bitmap 8192x8187
   2.394 Created atlas bitmap 8192x4935
  35.366 Info Updater.cpp:717: Downloading https://www.factorio.com/updater/get-available-versions?username=suprnova74&token=<private>&apiVersion=2
  35.560 0 packages available to download (experimental updates disabled).
  35.735 Factorio initialised
 129.346 Loading map 
 129.353 Info Scenario.cpp:158: Map version 0.11.22-0
8515.636 Info GenerateMapGui.cpp:362: Invalid exchange string(Map version 0.12.4-3 cannot be loaded)
8518.742 Loading map 
8518.745 Info Scenario.cpp:158: Map version 0.11.22-0
Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\factorio\libraries\stackwalker\stackwalker.cpp (903): StackWalker::ShowCallstack
c:\factorio\src\util\logger.cpp (261): Logger::writeStacktrace
c:\factorio\src\util\logger.cpp (315): Logger::logStacktrace
c:\factorio\src\util\crashhandler.cpp (79): CrashHandler::writeStackTrace
c:\factorio\src\util\crashhandler.cpp (137): CrashHandler::SignalHandler
f:\dd\vctools\crt\crtw32\misc\winxfltr.c (366): _XcptFilter
f:\dd\vctools\crt\crtw32\startup\crt0.c (267): __tmainCRTStartup
f:\dd\vctools\crt\crtw32\misc\i386\exsup4.asm (391): _EH4_CallFilterFunc
f:\dd\vctools\crt\crtw32\misc\i386\chandler4.c (360): _except_handler4
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 77C97179)
77C97179 (ntdll): (filename not available): RtlRaiseStatus
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 77C9714B)
77C9714B (ntdll): (filename not available): RtlRaiseStatus
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 77C96FD7)
77C96FD7 (ntdll): (filename not available): KiUserExceptionDispatcher
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 6E5A3B4E)
6E5A3B4E (d3d9): (filename not available): Direct3DCreate9Ex
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 6E5A39BE)
6E5A39BE (d3d9): (filename not available): Direct3DCreate9Ex
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 6E5CEA4E)
6E5CEA4E (d3d9): (filename not available): Direct3DShaderValidatorCreate9
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 6E5CEA24)
6E5CEA24 (d3d9): (filename not available): Direct3DShaderValidatorCreate9
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 6E5CE9A9)
6E5CE9A9 (d3d9): (filename not available): Direct3DShaderValidatorCreate9
c:\factorio\libraries\allegro\src\win\d3d_disp.cpp (2741): d3d_flush_vertex_cache
c:\factorio\libraries\allegro\src\win\d3d_bmp.cpp (209): d3d_draw_textured_quad
c:\factorio\libraries\allegro\src\win\d3d_bmp.cpp (800): d3d_draw_bitmap_region
c:\factorio\libraries\allegro\src\bitmap_draw.c (54): _bitmap_drawer
c:\factorio\libraries\allegro\src\bitmap_draw.c (116): _draw_tinted_rotated_scaled_bitmap_region
c:\factorio\libraries\allegro\src\bitmap_draw.c (235): al_draw_tinted_scaled_rotated_bitmap_region
c:\factorio\src\graphics\imagedraworder.cpp (67): ImageDrawOrder::render
c:\factorio\src\graphics\guirenderer.cpp (49): GuiRenderer::render
c:\factorio\src\mainloop.cpp (361): MainLoop::render
c:\factorio\src\mainloop.cpp (393): MainLoop::tickStep
c:\factorio\src\mainloop.cpp (461): MainLoop::run
c:\factorio\src\main.cpp (267): wmain
f:\dd\vctools\crt\crtw32\startup\crt0.c (255): __tmainCRTStartup
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 762EEE6C)
762EEE6C (kernel32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 77CB399B)
77CB399B (ntdll): (filename not available): RtlInitializeExceptionChain
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 77CB396E)
77CB396E (ntdll): (filename not available): RtlInitializeExceptionChain
88284.942 Error Util.cpp:43: Unexpected error occurred. You can help us to solve the problem by posting the contents of the log file on the Factorio forums.


Re: Crash on laptop resume

Posted: Thu Sep 17, 2015 12:49 pm
by kovarex
I moved it to minor issues.

Re: Crash on laptop resume

Posted: Sun Nov 13, 2016 1:15 pm
by suprnova74
This still persists (with a different laptop now as well) and I think i found the sequence of events that causes it. In Windows 7 x64 anyway (I don't have a Win 10 laptop at the moment), if you change number of monitors while the screen is locked (suspend automatically locks with computer), it creates the crash. You can lock the workstation and not suspend and it will cause it when changing number of monitors. I do not know if a desktop with multiple monitors will exhibit the same behavior when one is disconnected/connected while in a locked state.

89569.975 Error Util.cpp:57: Unable to create sprite (1362X742) probably not enough of video memory.

I can get it to crash at anytime if you need extra debugging. Again, i think this is still lower priority unless other people are experiencing it as well. I use a docking station with extra monitors so i switch number of connected devices quite regularly which may explain why I see it more readily than others.

Re: Crash on laptop resume

Posted: Thu Dec 15, 2016 6:04 pm
by GoldenPorkchop80
suprnova74 wrote:89569.975 Error Util.cpp:57: Unable to create sprite (1362X742) probably not enough of video memory.
suprnova74 wrote:paused the game (saved beforehand luckily) and suspended the laptop and on resume it stopped responding and then crashed
Well, this was kind of expected. :|

Do excuse me if I get anything wrong. I am a high school student taking AP Computer Sciences and i've been dismantling, programming, building, and working with computers since I was 6. I might sound like a genius, but believe me, i'm not (at least in my own opinion). I still have a lot to learn, so please take my facts with a grain of salt.

SO!

When your laptop is running Factorio, you're using 3 types of memory: RAM (Random Access Memory), VRAM or GRAM (Video RAM or Graphics RAM), and HD Memory.
So, to show how all of this works, i'm going to use the Classroom analogy.

So, in your computer, there is a math class that is split into one larger room (RAM and V/GRAM) and one smaller room (HD Memory) with a door between them. All 50 students in the class are all squeezed into the smaller room. One day, the teacher says: "I want 10 students who know ________ the best to come into the larger room!". So those ten students come into the larger room*, and they are told by the teacher to tell him everything they know about ________ (This is the RAM). Unfortunately, about 5 minutes later, they tell him stuff about _________ that is so complex, that he cannot understand it. So, the teacher says: "I need 10 more students to create posters for the __________ students to help me understand what the __________ students are saying!" So, 10 more students come out, talk to the ___________ students, and creates posters for them (This is the V/GRAM).
After about an hour of talking about ___________, making posters, and periodically checking in with the others in the smaller room, the teacher says: "Ok, all of you go back to the smaller room for lunch and I will get back to you afterwards." (When your laptop goes into hibernate/sleep). So, lunchtime comes, the students socialize, they exchange info about today, etc...
So, after lunch, the teacher asks the students that were here before lunch to come back to the larger room. The students come back, but something is very wrong.
Some of the students are mixed up, and some are just outright missing (The memory errors).
The teacher then asks what happened to the other students, but they don't know what happened, because they weren't told to keep track of the others.
The teacher, obviously frustrated, tells the students to go into the smaller room and to write a report of what they think happened (Crashlog created).
As soon as they finished writing their reports, the bell rings, and they all leave for their next class.

*There is no real data transfer. when it comes from the HD Memory to RAM, a copy is simply created for easy access. When it's from RAM to HD Memory (Memory Dump), the portion containing the original data is simply overwritten by the new data in the RAM. Afterwards, the RAM copy is deleted.

Hopefully this is a much simpler analogy to understand!
Best of luck!

EDIT: I just realized that this topic has over ~3000 hits. I guess I am happy?