terrymacdonald / DisplayMagician

DisplayMagician is an open source tool for automatically configuring your displays and sound for a game or application from a single Windows Shortcut.
https://displaymagician.littlebitbig.com
GNU General Public License v3.0
423 stars 17 forks source link

the type initializer for 'DisplayMagician.ShortcuRepository' threw an exception #68

Closed fifowole closed 2 years ago

fifowole commented 2 years ago

Describe the bug After upgrade from 2.1.1 to latest 2.1.2.3 version app throws err msg and gets frozen then

To Reproduce Steps to reproduce the behaviour:

  1. Upgrade from to 2.1.1 to 2.1.2 latest version
  2. Run DisplayMagician (shortcut or .exe file doesn't matter)
  3. After short load you can See error
  4. Aplication must be killed from Win Task Manager
  5. Downgrade, Uninstall, reinstall didn't help :(
  6. Shortcuts for display change works.
  7. Game shortcuts work too
  8. Expected behaviour Gui should became visible to modify my settings

Screenshots image task manager: image

Reporting Logs If DisplayMagician starts:

If DisplayMagician does not:

Enviroment (please complete the following information):

Additional context Add any other context about the problem here.

terrymacdonald commented 2 years ago

Hi,

Can you please attempt to run DisplayMagician again, and then when it crashes please use task manager to kill the process again.

Then please go and get the DisplayMagician.log file from C:\Users\\AppData\Local\DisplayMagician\Logs, and then come back here with your web browser and upload the log file to this issue (you can drag the log file over a new comment to upload it).

Then please also upload the Settings_2.1.json, Shortcuts_2.0.json, and DisplayProfiles_2.1.json files from the other folders in C:\Users\\AppData\Local\DisplayMagician.

With those four files I should be able to understand where the issue is.

Thanks Terry

On Mon, 20 Dec 2021, 05:32 fifowole, @.***> wrote:

Assigned #68 https://github.com/terrymacdonald/DisplayMagician/issues/68 to @terrymacdonald https://github.com/terrymacdonald.

— Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/68#event-5789306913, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LHN3IRRUFJ6WH336RTURYCJJANCNFSM5KMBV5LA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were assigned.Message ID: @.*** com>

terrymacdonald commented 2 years ago

@fifowole I've been looking at this and doing my own testing, and everything works for me. I don't have your issue at all. I cannot replicate it.

I think it is likely related to your particular configuration JSON files, so I'm very keen to look at them and see what's in your logs so it might give me a bit more information on what is failing.

My gut feeling is that you have a particular game or configuration that doesn't like some of the recent logic changes that have been made. I won't be able to validate that without seeing the logs and the three JSON config files I mentioned earlier.

I'll keep having a dig around to see if I can see any possible code changes in that area of the codebase that may have caused an issue like this.

Thanks Terry

terrymacdonald commented 2 years ago

Ok - I've given that whole area of the codebase a review and have added in some more logging for the next version, just in case that there is a problem there. Can you please install this test version of DisplayMagician, and then get the log files and JSON configuration files I mentioned earlier, zip them up together, and upload them here please.

Test DisplayMagician v2.1.2.6: DisplayMagicianSetup-v2.1.2.6.zip

Thanks Terry

terrymacdonald commented 2 years ago

Oops sorry. Closed it accidentally.

Just letting you know that I've released DisplayMagician v2.1.3.1. I've tried to make the Shortcut Repository code a bit more robust to see if that corrects the error you're seeing. It may not, or it may just move the error to another bit of the codebase. It's my best guess without having your logs to look at.

Thanks Terry

fifowole commented 2 years ago

Hi Terry, thx for you effort. I upgraded to 2.1.3.1. Now the app starts fine to GUI. If I click "Display Profiles" all works fine However if I click "Game Shortcuts" i get this: image If I click "Continue" app seems to work fine, GUI keeps running and I can edit my game profiles.

Hope this helps, if you need anything else, let me know. Cheers FiFo

terrymacdonald commented 2 years ago

Hi,

Can you please upload the Shortcuts_2.0.json and the Profiles_2.1.json too please? I think the error is in one of those files.

I've finally gotten time to look through your DisplayMagician.log file. It looks like your Shortcuts_2.0.json is not quite right:

2021-12-20 23:07:56.7105|TRACE|DisplayMagician.ShortcutItem|ShortcutItem/RefreshValidity: The game library is Steam
2021-12-20 23:07:56.7105|ERROR|DisplayMagician.ShortcutRepository|ShortcutRepository/ShortcutRepository: Exception while trying to load the Shortcuts from the ShortcutRespository initialiser. You probably have an issue with the configuration of your Shortcuts JSON file.
2021-12-20 23:07:56.7474|TRACE|DisplayMagician.UIForms.MainForm|MainForm/MainForm_Load: Main Window has loaded.

I looked back in the earlier log entries, and found this:

2021-12-20 23:07:56.6681|DEBUG|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Loading shortcuts from C:\Users\fifo\AppData\Local\DisplayMagician\Shortcuts\Shortcuts_2.0.json into the Shortcut Repository
2021-12-20 23:07:56.7055|DEBUG|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Connecting Shortcut profile names to the real profile objects
2021-12-20 23:07:56.7055|ERROR|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Shortcut 'Apex Legends (3xSingle144Hz)' profile UUID is null or whitespace! Skipping this processing this entry, and setting ProfileToUse to null.
2021-12-20 23:07:56.7055|ERROR|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Shortcut 'Dota 2 (3xSingle144Hz)' profile UUID is null or whitespace! Skipping this processing this entry, and setting ProfileToUse to null.
2021-12-20 23:07:56.7055|ERROR|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Shortcut 'iRacingUI (Tripple)' profile UUID is null or whitespace! Skipping this processing this entry, and setting ProfileToUse to null.
2021-12-20 23:07:56.7055|ERROR|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Shortcut 'RBRCIT (Tripple)' profile UUID is null or whitespace! Skipping this processing this entry, and setting ProfileToUse to null.
2021-12-20 23:07:56.7055|ERROR|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Shortcut 'rFactor 2 (Tripple)' profile UUID is null or whitespace! Skipping this processing this entry, and setting ProfileToUse to null.
2021-12-20 23:07:56.7055|ERROR|DisplayMagician.ShortcutRepository|ShortcutRepository/LoadShortcuts: Shortcut 'Tom Clancy's The Division® 2 (1xSingle144Hz)' profile UUID is null or whitespace! Skipping this processing this entry, and setting ProfileToUse to null

It looks like you have a few shortcuts that refer to a Profile that no longer exists. That's fine and shouldn't cause a problem.

But your RBR shortcut is doing something that DisplayMagician doesn't like, and that seems to crash the loading of the rest of the Shortcuts. The specific shortcut is the one that references G:\Richard Burns Rally\RBRCIT.exe.

I'm very keen to take a look at the Shortcuts_2.0.json and the DisplayProfiles_2.1.json files so that I can check to see what's wrong.

I have a couple of questions too:

Thanks Terry

fifowole commented 2 years ago

Hi Terry, there you go:

I have a couple of questions too:

Shortcut and Display JSON ShortDispJson.zip

terrymacdonald commented 2 years ago

@fifowole I think I know what's the issue. I found a logic bug in the processing of null UUIDs. I've fixed that, and I've added additional logging to get closer to where the underlying bug is in the code. I still think there is a bug somewhere and I need you to test this test version of DisplayMagician I've just released below:

DisplayMagicianSetup-v2.1.3.3.zip

Please install this version, and then send me the DisplayMagician.log and a screenshot of any errors you see when you use it.

Thanks Terry

fifowole commented 2 years ago

Hi, here you go. Screenshot: still comes the same error when I click "Game shortcuts" image DisplayMagician.log

terrymacdonald commented 2 years ago

@fifowole GAH! Still nothing obvious popping out in the logs, so I've added yet more logging to see where the problem is. I've created a new test build for you with the additional logging. Can you please do the same thing you did last time, and we'll see if we can log from the bit that's broken.

DisplayMagicianSetup-v2.1.3.4.zip

I've got a feeling this is a weird edge case, but at this stage I just don't know where it is....

Thanks Terry

terrymacdonald commented 2 years ago

@fifowole Awesome news! I haven't fixed it yet, but I have managed to generate the same error using your Shortcuts_2.0.json file. It's pretty late here right now so I'll have to work on it tomorrow, but at least now I can generate the error consistently myself and I can troubleshoot it with my debugger! This is great news!

I'm hoping to figure out what's wrong tomorrow, and I'd really love to have a new release out in time for the end of the year. I'd really like to give people a stable simracing holiday period so that they can use their new sim racing gear they got over the holiday period in peace :).

Hopefully I'll have some new for you tomorrow.

Thanks Terry

fifowole commented 2 years ago

That is great news Terry. I can see our time zones differ a lot since it's morning here ;) I'm glad you could reproduce it so it's not just something happening on my PC only..

Take your time and when you need to test anything just let me know.

Cheers mate FiFo

On Wed, Dec 22, 2021 at 10:19 AM terrymacdonald @.***> wrote:

@fifowole https://github.com/fifowole Awesome news! I haven't fixed it yet, but I have managed to generate the same error using your Shortcuts_2.0.json file. It's pretty late here right now so I'll have to work on it tomorrow, but at least now I can generate the error consistently myself and I can troubleshoot it with my debugger! This is great news!

I'm hoping to figure out what's wrong tomorrow, and I'd really love to have a new release out in time for the end of the year. I'd really like to give people a stable simracing holiday period so that they can use their new sim racing gear they got over the holiday period in peace :).

Hopefully I'll have some new for you tomorrow.

Thanks Terry

— Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/68#issuecomment-999416622, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADTVVMOM5WNFJMNHT36G5MTUSGJ3PANCNFSM5KMBV5LA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

-- Filip

terrymacdonald commented 2 years ago

@fifowole So this was an excellent issue to have as it helped me find a couple of trickier bugs that would have been much harder to find otherwise. So thanks for logging it.

The reason DisplayMagician was crashing was that it was hitting a Uplay Game in the Steam Library. This was not a valid thing to see. The reason DisplayMagician was doing that was because of a bug in the way that the list of installed games was combined. This bug has been in all 2.x versions of DisplayMagician, and would have affected anyone with Steam and any one more GameLibrary (e.g. GOG, Epic, Uplay etc).

The fix was simply to

I also managed to find a potential issue with editing shortcuts that I've hopefully now averted. We now properly

Additionally, I found a recursive logic flaw that meant that DisplayMagician used WAAAAAAAAAAAAAY more memory than it needed to. I'm talking 5GB of memory rather than the 129MB it was supposed to do. So I'm so thankful that you logged this issue so I could find that one :).

So here is another version to test: Please get back to me as soon as you can so that I can release the fix as I think this issue could be hurting a few people :(.

DisplayMagicianSetup-v2.1.3.10.zip

Thanks Terry

fifowole commented 2 years ago

Hi Terry, I'm happy you were able to clean up this great app during our debug. That is cool! So let's continue with good news ;) Clicking on "Game shortcuts" does not come with error message anymore, so that is fixed. I know it's Christmas time, bud I have Bad news too, clicking "New" or "Edit" comes with the error image If i click "Continue" for the error, GUI gets frozen like this: image

So I guess there is still something to be done about it. Logs are here:

DisplayMagician-Support-20211223-2109.zip

Good luck, fingers crossed mate ;)

terrymacdonald commented 2 years ago

Hi @fifowole

Yeah, erbkaiser found that last night in his testing too ☹️. I'm refactoring the code in the shortcut form to stop these sorts of issues happening again. That section of code grew organically, and it was always breaking when I made changes. So I think now is the time to change it and made it more robust.

I'm now expecting to be finished on Dec 26th, so if you're around I'll get you to test it out for me.

Thanks for being so patient. Terry

On Fri, 24 Dec 2021, 09:11 fifowole, @.***> wrote:

Hi Terry, I'm happy you were able to clean up this great app during our debug. That is cool! So let's continue with good news ;) Clicking on "Game shortcuts" does not come with error message anymore, so that is fixed. I know it's Christmas time, bud I have Bad news too, clicking "New" or "Edit" comes with the error [image: image] https://user-images.githubusercontent.com/15162033/147287124-a6cec684-ffed-4ce6-be1a-22e660adc19d.png If i click "Continue" for the error, GUI gets frozen like this: [image: image] https://user-images.githubusercontent.com/15162033/147287424-3535d1a1-7ed2-4a04-8296-971aa3c7c732.png

So I guess there is still something to be done about it. Logs are here:

DisplayMagician-Support-20211223-2109.zip https://github.com/terrymacdonald/DisplayMagician/files/7771195/DisplayMagician-Support-20211223-2109.zip

Good luck, fingers crossed mate ;)

— Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/68#issuecomment-1000504404, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LBEZHOLZIFRNUZW3KTUSN65TANCNFSM5KMBV5LA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you modified the open/close state.Message ID: @.***>

fifowole commented 2 years ago

Hi, I'll be around on 26th so no problem to test it.

regards Filip

On Fri, Dec 24, 2021 at 12:47 AM terrymacdonald @.***> wrote:

Hi @fifowole

Yeah, erbkaiser found that last night in his testing too ☹️. I'm refactoring the code in the shortcut form to stop these sorts of issues happening again. That section of code grew organically, and it was always breaking when I made changes. So I think now is the time to change it and made it more robust.

I'm now expecting to be finished on Dec 26th, so if you're around I'll get you to test it out for me.

Thanks for being so patient. Terry

On Fri, 24 Dec 2021, 09:11 fifowole, @.***> wrote:

Hi Terry, I'm happy you were able to clean up this great app during our debug. That is cool! So let's continue with good news ;) Clicking on "Game shortcuts" does not come with error message anymore, so that is fixed. I know it's Christmas time, bud I have Bad news too, clicking "New" or "Edit" comes with the error [image: image] < https://user-images.githubusercontent.com/15162033/147287124-a6cec684-ffed-4ce6-be1a-22e660adc19d.png

If i click "Continue" for the error, GUI gets frozen like this: [image: image] < https://user-images.githubusercontent.com/15162033/147287424-3535d1a1-7ed2-4a04-8296-971aa3c7c732.png

So I guess there is still something to be done about it. Logs are here:

DisplayMagician-Support-20211223-2109.zip < https://github.com/terrymacdonald/DisplayMagician/files/7771195/DisplayMagician-Support-20211223-2109.zip

Good luck, fingers crossed mate ;)

— Reply to this email directly, view it on GitHub < https://github.com/terrymacdonald/DisplayMagician/issues/68#issuecomment-1000504404 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/ABLU5LBEZHOLZIFRNUZW3KTUSN65TANCNFSM5KMBV5LA

. Triage notifications on the go with GitHub Mobile for iOS < https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675

or Android < https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

You are receiving this because you modified the open/close state.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/68#issuecomment-1000566999, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADTVVMOEFTHD643HAIRILWDUSOYIZANCNFSM5KMBV5LA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

-- Filip

terrymacdonald commented 2 years ago

@fifowole I've now got a new DisplayMagician to test!

I've completely rewritten the Shortcut Editing Form logic, and it's WAY more logical and robust. I've also taken the time to add a couple of new features because... well why not?

Features:

Can you please test 2.1.4.67 which I've attached to this issue. It is nearly ready to go out as a release, so I'd really appreciate it if you could test the Shortcut Editing Form for me.

DisplayMagicianSetup-v2.1.4.67.zip

Thanks Terry

fifowole commented 2 years ago

Hi @terrymacdonald , so I tested it today and I have no bad news at all :)

I did all possible shortcuts management and there was no issue. From my point of view, all is working now like a charm! ;)

So thank you for all the help and you can expect some coffee donation from me ;)

Keep up the good work and wish you all the best for 2022. Regards FiFo

terrymacdonald commented 2 years ago

@fifowole Glad I could be of help. All the best for 2022 for you too!

Thanks Terry