xvwyh / BuildPad

A build storage plugin for ArcDPS
https://buildpad.gw2archive.eu
MIT License
29 stars 3 forks source link

All builds are invalid after the last update #6

Closed michaelstephens closed 1 year ago

michaelstephens commented 4 years ago

Describe the bug After the last GW2 and Buildpad update, all of my builds are now labeled as invalid. If its at all relevant it is installed using GW2 Addon Manager

To Reproduce Steps to reproduce the behavior:

  1. Update GW2 to the latest version
  2. Update BuildPad to the latest version
  3. Open BuildPad

Expected behavior My builds would appear as labeled with the correct codes

Screenshots image

xvwyh commented 4 years ago

What's the version of BuildPad you're currently running? Click the settings menu and tell me what's written on the bottommost button.

michaelstephens commented 4 years ago

Oh yeah that might be helpful to put 😅 sorry about that. Version 2020-08-30, for what its worth I updated through the BuildPad UI and also checked for updates after using GW2 Addon Manager

xvwyh commented 4 years ago

Oh, you actually replied faster than I edited my message, that doesn't happen often. :D Please attach your Guild Wars 2\addons\arcdps\arcdps.buildpad\config.ini file so I can check what's wrong.

michaelstephens commented 4 years ago

Haha! Perks of constantly being on Github. Below is the config.ini file:

[Builds]
=5||0|0||<INVALID BUILD #1 VERSION: 5>
=5||0|0||<INVALID BUILD #2 VERSION: 5>
=5||0|0||<INVALID BUILD #3 VERSION: 5>
=5||0|0||<INVALID BUILD #4 VERSION: 5>
=5||0|0||<INVALID BUILD #5 VERSION: 5>
=5||0|0||<INVALID BUILD #6 VERSION: 5>
=5||0|0||<INVALID BUILD #7 VERSION: 5>
=5||0|0||<INVALID BUILD #8 VERSION: 5>
=5||0|0||<INVALID BUILD #9 VERSION: 5>
=5||0|0||<INVALID BUILD #10 VERSION: 5>
=5||0|0||<INVALID BUILD #11 VERSION: 5>
=5||0|0||<INVALID BUILD #12 VERSION: 5>
=5||0|0||<INVALID BUILD #13 VERSION: 5>
=5||0|0||<INVALID BUILD #14 VERSION: 5>
=5||0|0||<INVALID BUILD #15 VERSION: 5>
=5||0|0||<INVALID BUILD #16 VERSION: 5>
=5||0|0||<INVALID BUILD #17 VERSION: 5>
=5||0|0||<INVALID BUILD #18 VERSION: 5>
=5||0|0||<INVALID BUILD #19 VERSION: 5>
=5||0|0||<INVALID BUILD #20 VERSION: 5>
=5||0|0||<INVALID BUILD #21 VERSION: 5>
=5||0|0||<INVALID BUILD #22 VERSION: 5>
=5||0|0||<INVALID BUILD #23 VERSION: 5>
=5||0|0||<INVALID BUILD #24 VERSION: 5>
=5||0|0||<INVALID BUILD #25 VERSION: 5>
=5||0|0||<INVALID BUILD #26 VERSION: 5>
=5||0|0||<INVALID BUILD #27 VERSION: 5>
=5||0|0||<INVALID BUILD #28 VERSION: 5>
=5||0|0||<INVALID BUILD #29 VERSION: 5>

[Filter]
Profession = 0
Flags = 0

[Settings]
LastLaunchedVersion = 2020-08-30
SkipUpdateVersion = 
ArcDPSMigrationHintHidden = 1
KeyBindToggleBuilds = ALT+SHIFT+D
APILocale = en
ShowFilterPanel = 1
ShowProfessionFilter = 1
ShowNameFilter = 1
ShowFlagsFilter = 1
ShowSettingsButton = 1
SimpleFlagsFilter = 0
ClearFiltersOnWindowClose = 0
LessTransparentButtons = 0
HideFlagsMask = 122880
HiddenFiltersHintHidden = 0
UseProfessionColors = 1
ProfessionColorsUnfilteredOnly = 1
ProfessionColors = #574D5C80,#ADEFF80,#FFD43D80,#E3732980,#87DE0A80,#CC5E7380,#F7383880,#CC3BD180,#5E37D80,#A1292980
SortBuildsByProfession = 1
SortBuildsByProfessionCurrentFirst = 0
SortBuildsByProfessionShowIcons = 1
SortBuildsByProfessionShowNames = 1
SortBuildsByProfessionSpacing = 4
SortBuildsAlphabetically = 1
AllowBuildReordering = 0
TooltipDelay = 500
UIScale = 100
LockWindowPosition = 0
WindowPositionX = 1289
WindowPositionY = 400
LockWindowSize = 0
WindowSizeW = 376
WindowSizeH = 441
AutoWindowHeight = 0
HideWindowHeader = 0
KeepWindowInBounds = 1
GearIconSet = 
Snow = 1
xvwyh commented 4 years ago

Huh. Lol. It actually saved them like this. I have no idea what happened there, somehow you must have upgraded to a newer version, but then downgraded to an older one, and it failed to read the saved builds from the newer version. But now you're on the newer version again, you say, so how this happened you will have to figure out yourself.

Anyway, go look inside \Guild Wars 2\addons\arcdps\arcdps.buildpad\backups\, there are a bunch of backup files. Find the latest one that still has your builds intact and replace config.ini with it.

michaelstephens commented 4 years ago

I wonder if it got in a wonky state due to the built in upgrade system vs GW2 addon manager. Thats the only thing I can think of since I haven't done anything manual to upgrade/downgrade

michaelstephens commented 4 years ago

Woo! Restoring from a backup has solved it. 10/10 for having a built in backup system. I also am a believer in redundancy so I maintain two lists of my builds, BuildPad for convenience and Google Sheets for sharability so any missing builds I have not lost!

xvwyh commented 4 years ago

Maybe. I never used it, so I'm not familiar what it's doing. When you "update" buildpad, is simply downloads a newer .dll and puts it back-to-back with the old one, and the next time you startup GW2 it only loads the newer one and deletes the old one. Maybe the addon manager found the first best file that contains "buildpad" in the name (which happened to be the older version) and deleted the rest? My guess is as good as yours here.

michaelstephens commented 4 years ago

Yeah this will probably be an unsolved mystery, but thank you so much for the help. Going to close out this issue!

michaelstephens commented 4 years ago

Soooo. it happened again... I have not touched/updated it but upon exiting and reopening the game all my builds are invalid again:

[Builds]
=5||0|0||<INVALID BUILD #1 VERSION: 5>
=5||0|0||<INVALID BUILD #2 VERSION: 5>
=5||0|0||<INVALID BUILD #3 VERSION: 5>
=5||0|0||<INVALID BUILD #4 VERSION: 5>
=5||0|0||<INVALID BUILD #5 VERSION: 5>
=5||0|0||<INVALID BUILD #6 VERSION: 5>
=5||0|0||<INVALID BUILD #7 VERSION: 5>
=5||0|0||<INVALID BUILD #8 VERSION: 5>
=5||0|0||<INVALID BUILD #9 VERSION: 5>
=5||0|0||<INVALID BUILD #10 VERSION: 5>
=5||0|0||<INVALID BUILD #11 VERSION: 5>
=5||0|0||<INVALID BUILD #12 VERSION: 5>
=5||0|0||<INVALID BUILD #13 VERSION: 5>
=5||0|0||<INVALID BUILD #14 VERSION: 5>
=5||0|0||<INVALID BUILD #15 VERSION: 5>
=5||0|0||<INVALID BUILD #16 VERSION: 5>
=5||0|0||<INVALID BUILD #17 VERSION: 5>
=5||0|0||<INVALID BUILD #18 VERSION: 5>
=5||0|0||<INVALID BUILD #19 VERSION: 5>
=5||0|0||<INVALID BUILD #20 VERSION: 5>
=5||0|0||<INVALID BUILD #21 VERSION: 5>
=5||0|0||<INVALID BUILD #22 VERSION: 5>
=5||0|0||<INVALID BUILD #23 VERSION: 5>
=5||0|0||<INVALID BUILD #24 VERSION: 5>
=5||0|0||<INVALID BUILD #25 VERSION: 5>
=5||0|0||<INVALID BUILD #26 VERSION: 5>
=5||0|0||<INVALID BUILD #27 VERSION: 5>
=5||0|0||<INVALID BUILD #28 VERSION: 5>
=5||0|0||<INVALID BUILD #29 VERSION: 5>

[Filter]
Profession = 0
Flags = 0

[Settings]
LastLaunchedVersion = 2020-08-30
SkipUpdateVersion = 
ArcDPSMigrationHintHidden = 1
KeyBindToggleBuilds = ALT+SHIFT+D
APILocale = en
ShowFilterPanel = 1
ShowProfessionFilter = 1
ShowNameFilter = 1
ShowFlagsFilter = 1
ShowSettingsButton = 1
SimpleFlagsFilter = 0
ClearFiltersOnWindowClose = 0
LessTransparentButtons = 0
HideFlagsMask = 122880
HiddenFiltersHintHidden = 0
UseProfessionColors = 1
ProfessionColorsUnfilteredOnly = 1
ProfessionColors = #574D5C80,#ADEFF80,#FFD43D80,#E3732980,#87DE0A80,#CC5E7380,#F7383880,#CC3BD180,#5E37D80,#A1292980
SortBuildsByProfession = 1
SortBuildsByProfessionCurrentFirst = 0
SortBuildsByProfessionShowIcons = 1
SortBuildsByProfessionShowNames = 1
SortBuildsByProfessionSpacing = 4
SortBuildsAlphabetically = 1
AllowBuildReordering = 0
TooltipDelay = 500
UIScale = 100
LockWindowPosition = 0
WindowPositionX = 1289
WindowPositionY = 400
LockWindowSize = 0
WindowSizeW = 376
WindowSizeH = 441
AutoWindowHeight = 0
HideWindowHeader = 0
KeepWindowInBounds = 1
GearIconSet = 
Snow = 1
xvwyh commented 4 years ago

Veeeersion!

xvwyh commented 4 years ago

I don't know what to tell you, that ONLY case when this could happen is when you try to open config.ini with an earlier version of BuildPad. That's literally the only way. Starting with 2020-08-25 case 5: is there, so it's impossible to reach that code AND have VERSION: 5> outputted there.

Maybe you have the game installed in several locations, and in one of them BuildPad is updated, but in the other it isn't? Gw2Launcher has an option to do it like that, keep several copies of the game, one for each accounts, so it's possible to have different assortments of addons for each account.

michaelstephens commented 4 years ago

Only one installation, version has remained consistent at 2020-08-30 😢 you can close this out if you have no idea but i figured id open it back up since it happened without me doing anything

xvwyh commented 4 years ago

Well, I'm dying to know what in the world is happening to you there, but I doubt I have anything to do with it. I suppose you restored the backup again. Keep playing and keep an eye on the version every time you launch GW2, maybe it'll happen again...

michaelstephens commented 4 years ago

interesting development, it corrupts while the game is running. I loaded a fresh backup and during play it changed config.ini to invalid

xvwyh commented 4 years ago

That sounds absolutely wild. Because the addon is only supposed to automatically save config.ini when you're closing the game. Or, rather, when ArcDPS is being unloaded. Are you absolutely sure there aren't any lingering Gw2-64.exe instances running in the background, doing god knows what?

xvwyh commented 4 years ago

And while you're at it, go into bin64 and see if there is, by any chance, an old version of buildpad dll present. And if so, try to delete it. If it will refuse to be deleted - then you definitely have some zombie GW2 process that's still opened and still has the old version loaded.

michaelstephens commented 4 years ago

the addon is only supposed to automatically save config.ini when you're closing the game

iiinteresting. when i rummaging for the not corrupted backup file, it had generated multiple backup .ini files with the corrupt info without ever closing the game.

xvwyh commented 4 years ago

I have absolutely no clue what's happening to you.

michaelstephens commented 4 years ago

THIS time it invalidated on quit... It was going stable for the whole time I was playing, and all my backups are valid where as previous times it would backup several invalid versions... super weird

xvwyh commented 4 years ago

Search for an exorcist for your computer.

xvwyh commented 4 years ago

Can I have a look at what's inside your bin64 folder? A screenshot of all the files. And inside Guild Wars 2 folder for that matter, I think ArcDPS loads dlls from there as well.

I'm grasping at straws here, really.

michaelstephens commented 4 years ago

GW2 root dir: image bin64: image

xvwyh commented 4 years ago

Which one of these is ArcDPS even? I don't see anything close to its current filesize of 756 KB. I'd be careful with that "d3d9_chainload.dll.new", ArcDPS is very overzealous with loading everything that has a ".dll" in it.

michaelstephens commented 4 years ago

yeah.. im wondering if the addon manager is biting me here. id assume d3d9.dll is arcdps because thats what it normally is, but you are right its suspiciously small...

xvwyh commented 4 years ago

Oh christ almighty, your d3d9.dll is GW2 Addon Manager's very own "loader addon" which then loads all the other dlls from god knows where. And I'm willing to bet now that one of them is an old version of buildpad. I'm seeing paths addons/%s/gw2addon_%s.dll being used inside it, go explore!

michaelstephens commented 4 years ago

yep... its being suuuper generous with what its messing with, including configs in addons for plugins i have not enabled. I think we may have found the culprit. I'm removing its special d3d9.dll loader addon and resetting to a manual config

xvwyh commented 4 years ago

Did you find it? I'd like to see what's inside that addon folder, and the subfolder, and... just execute the tree "W:\athever\Guild Wars 2" command inside a cmd window and copy the output. :D

michaelstephens commented 4 years ago

ah im sorry :( I blew away the addon manager already

xvwyh commented 4 years ago

I mean, the intentions behind it are certainly good. He wants to make a proper framework for addons. But the reality is that his tool has not yet become the de facto standard in the community, and I, for one, never heard of it when I was developing my plugin. I think the author was somewhat annoyed at me for making my own way to update the addon that didn't quite gel with his design. :D

michaelstephens commented 4 years ago

Yeah I made the assumption that the maintainer had reached out to the addons it supports since tools like d912pxy have it listed as a supported way to install the tool. that was a bad assumption on my end.

xvwyh commented 4 years ago

Well you're the first one complaining to me about issues like this one, so I suppose it's been working fine all this time, and just recently something broke, or maybe it was just for you because of some very specific circumstances.

xvwyh commented 4 years ago

Say, had you ever, throughout all this discussion, opened ArcDPS's settings window? The one that opens with Alt-Shift-T?

michaelstephens commented 4 years ago

😂 definitely not a complaint, i am super grateful to your work on this. I might open an issue on their repo to at least make them aware that some funky business is going on. Deleting the addon manager config and .dlls and custom installing them has solved the issue, no more invalid builds.

Also yeah, I've opened it up a few times

xvwyh commented 4 years ago

No-no, I didn't mean that you're complaining about my work, but about an issue like this in general. You couldn't have known, of course, that the bug wasn't in BuildPad.

Also yeah, I've opened it up a few times

So I guess you didn't find anything weird in there, because you didn't say anything. Nothing like there being 2 buttons to open BuildPad at the same time. Which would've been a sure sign that 2 instances of the plugin were loaded at the same time. Eh, I don't even know.

michaelstephens commented 4 years ago

No-no, I didn't mean that you're complaining about my work, but about an issue like this in general. You couldn't have known, of course, that the bug wasn't in BuildPad.

❤️ I took it that way but wanted to be clear just in case

So I guess you didn't find anything weird in there, because you didn't say anything. Nothing like there being 2 buttons to open BuildPad at the same time. Which would've been a sure sign that 2 instances of the plugin were loaded at the same time. Eh, I don't even know.

Yeah nothing weird on that front, I've specifically opened it a few times from that menu so I'm fairly confident I didn't see two buttons

byg0n3 commented 4 years ago

ok, i'm on the board now with the same problem and addon manager :D image

two questions: is there any info that i can provide to resolve this issue and avoid it in the future? is there any chance to restore saved build?

xvwyh commented 4 years ago
  1. I dunno. Posting an issue about it on Addon Manager's github project page would be a start.
  2. Inside \Guild Wars 2\addons\arcdps\arcdps.buildpad\backups\ you can find backups, find the latest one that has your builds intact and replace config.ini in the parent folder with it.
xvwyh commented 4 years ago

Also you do have 2 BuildPad buttons showing up, so I was correct in my assumption that there are 2 separate DLLs loaded, one (older) by Addon Manager from god knows where, one (newer) from bin64.

michaelstephens commented 4 years ago

Yup, look at that. @dein0s the immediate solution is to stop using the addon manager and rolling your own addons. I haven't gotten around to creating an issue on the addon manager repo, so lets coordinate

byg0n3 commented 4 years ago

@xvwyh to be honest - i've never bothered with manual installation of addons, just because it's too much hustle compared to other games i'm playing :) so i have no clue where from those two buttons are, but it's def have something to do with addon manager and probably their installation instructions https://github.com/gw2-addon-loader/Approved-Addons/blob/master/buildPad/update-placeholder.yaml and if there's another dll loaded from somewhere outside bin64 - it's also loaded by addon manager

and thanks for the backups hint! now i won't suffer trying to re-create all my builds :)

byg0n3 commented 4 years ago

and yes.. found another dll from june in arcdps folder :D

❯ ls -Path . -Recurse -Include *build*

    Directory: D:\Guild Wars 2\addons\arcdps

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         9/5/2020   3:12 AM                arcdps.buildpad
-a----        7/28/2020  11:06 PM        1498112 d3d9_arcdps_buildpad_2020-06-11.dll

    Directory: D:\Guild Wars 2\bin64

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         9/2/2020  10:32 PM        1500672 d3d9_arcdps_buildpad_2020-08-30.dll
xvwyh commented 1 year ago

Probably won't be an issue anymore after switching to arcdps's own extension autoupdater.