So, I've tried to do some testing to try and determine the cause of the random freezes in Windows 8. To recap, the game client freezes for about a minute under some of the following events:
-Closing the mailbox
-Closing the Resident Menu from housing channel banker
-Closing the house management menu from the Brownie
-Skipping some cutscenes (possibly still happens when watching through them?)
-Possibly other cases?
Finally, I got a chance to try this problem myself...
According to my test, it does not randomly happens and has nothing with abyss or crackshield.
I tried closing mailbox by hitting
Quit and
Close button:
In clear client, press 'quit' will close conversion normally, press 'close' will cause client freeze, then terminate.
In client with crackshield, press 'quit' will also close conversion normally, press 'close' will cause client freeze several minutes, but continue.
Indeed, it's an old bug about micro thread always normally throw a c++ exception for termination, but not all caller have try/catch statement.
Since UnhandledExceptionFilter has set to handle all c++ exception, it seems not a big problem before windows 8.
But in windows 8,
WER seems try to classify any uncaught exception before executing UnhandledExceptionFilter, and
dump FULL memories into temp folder for creating minidump file. Even I played with crackshield and client didn't crash, I still got a minidump file in my CrashDumps folder after froze up...
I tried blocking exception "esl::E_MTTerminated" throwing from micro thread (only one byte modified), and everything looks fine....
Maybe abyss could consider to include this patch, even I don't think it is a good idea...