Profile image

[BUG - Windows] Log File's Appended Crash Directory Path is Invalid

4,167 Formula350  2.6 years ago

(Note: I'm not certain the crash is SP's fault, but just instability in my computer's overclock; I will happily provide the crash report if interested).

SP Version: v1.11.106.0

TL;DR - The Logging system using 8.3 Conversion while providing the directory path for the Crash Reports causes the path to be invalid (unrecognizable by Windows) due to the use of Forward-Slashes in said provided directory path -- specifically the ones leading up to the username.
Instead, using the following would prevent that from being a problem for players with a Windows Username over 8-characters, allowing them to use the provided directory to navigate tot he Crashes folder:
%TEMP%/Jundroo/SimplePlanes/Crashes

The Bug:

SP randomly crashed in the background today, and as I checked the PlayerLog.txt to see why, it ended with saying (emphasis mine):

A crash has been intercepted by the crash handler. For call stack and other details, see the latest crash report generated in:
* C:/Users/FORMUL~1/AppData/Local/Temp/Jundroo/SimplePlanes/Crashes

The Issue:

This is not a valid Windows directory path, as it contains Forward Slashes instead of Backslash, and copy-pasting it into a folder's directory (or via Start Menu) produces the error of:

File Explorer
Windows can't find 'C:/Users/FORMUL~1/AppData/Local/Temp/Jundroo/SimplePlanes/Crashes'. Check the spelling and try again.

It seems as though the cause is actually the old-school (common in DOS/Win9x era) "8.3 Conversion" of directory names -- ie "FORMUL~1" instead of the folder's actual name of "Formula350". If I replace ONLY the / after C:, Users and FORMUL~1 with \, then it works fine!

Solutions:

There are probably multiple ways one could 'fix' this, but the three easiest that come to mind -- assuming the crash reports aren't auto uploaded, making this a moot-point entirely -- would be:
1) Replace all instances of the / with \.
2) Disable using the 8.3 Conversion on the Username.
3) [Best?] Replace the ENTIRE beginning of the path completely, by using:

%TEMP%/Jundroo/SimplePlanes/Crashes

OR
If you feel that is too much and would prefer it a bit longer, you can replace it with:

%USERPROFILE%/AppData/Local/Temp/Jundroo/SimplePlanes/Crashes

In either case, those are the hard-coded "shortcuts" Windows offers to jump to the directory in question even if it has been changed to something other than the default path, since Window's still has to know that path internally in order to work. (The % are necessary, and no Drive Letter is needed; type %TEMP% into a folder, hit enter, and it'll navigate to that the Temp directory in AppData.)
There are Environment Variables that are "System" and ones that are "User". The above paths are using the latter as that's what you'd be using, since on a multi-user system they may not have access to another user's profile (unless they're also the Admin profile) and thus wouldn't be able to navigate there either way. :P

REFERENCE:
https://docs.microsoft.com/en-us/windows/deployment/usmt/usmt-recognized-environment-variables
Section: Variables that are recognized only in the user context
(halfway down the page)

  • Log in to leave a comment
  • Profile image
    4,167 Formula350

    I know v1.11 is out of beta, but is using the Google Form WNP had provided in the Beta blog post, preferred by the devs for us to submit bugs to?
    Or is this Bugs subforum (well, tagging) system acceptable?
    .
    I'd use "User Voice" if the system there wasn't so flawed that it then becomes impractical for the purpose it was designed for. Namely, the "Points" system imposed, to vote on submissions, and undoubtedly to prevent spam. Alas, if we only have X-amount of points to use, and have spent them on upvoting issues/suggestions, we're unable to create anything new it seems. (Unless this has been rectified since I was there last a month or two ago...?)

    2.6 years ago