You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 26, 2024. It is now read-only.
Ganache and pieces thereof remain after the app has nominally been removed. Upgrading and downgrading does not restore a user to where they were before that cycle, and the effective programmatic rules about what stays and what changes are not intuitive and hard to figure out (e.g. depends on what the value was). This produces unexpected effects like the same version of the software having different behavior on the same computer.
Details
On my Windows 10 Pro computer, I previously installed Ganache 1.2.2 on a one-user basis (using a previously posted installer), which does not require admin privileges to install. For a timing point, I reported having "recently updated" to v1.2.2 on 2018-08-28, and the release tag's timestamp is the day before.
Ganache is pinned to my start menu, so I can launch it by clicking on the Start icon and then the program icon. On recently downloading a later version's installer, the installer said it would replace the current installation, and after selecting single-user installation the installer said the program would be in C:\Users\me\AppData\Local\Programs\Ganache (where "me" is my username). However, even when deleting this folder, I can still launch the program from the start menu.
When I open C:\ProgramData\Microsoft\Windows\Start Menu (Start menu shortcuts for all users), there is no Ganache and searching for Ganache returns no results (as expected; this should be a single-user install). When I visit %appdata%\Microsoft\Windows\Start Menu there is one entry for Ganache, and right-click=>Properties shows me that the Target is C:\Users\me\AppData\Local\Programs\Ganache\Ganache.exe - but that "\Ganache" directory no longer exists after the previously mentioned deletion! The shortcut Properties also show no command-line flags. When I double-click the shortcut in Windows Explorer, it reports "The item 'Ganache.exe' that this shortcut refers to has been changed or moved, so this shortcut will no longer work properly." OK, that's what I expect. However, clicking on the Start menu and clicking the pinned Ganache icon launches Ganache. It shows up in Task Manager's list of Apps (under the Processes tab) when it's running, but after closing it there's no mention in that tab even under Background Processes. When running, the interface reports Gas price 2000000000; Gas Limit 6721975; Chain settings shows blank for both but hovering over the field reveals up/down number controls in the right edge of the field. That's the expected behavior except for the fact that the directory the app is supposedly running from no longer exists.
If I run the 1.2.2 installer again, I get a message that "there is already a per-user installation (C:\Users\me\AppData\Local\Programs\Ganache); Will reinstall/upgrade." When I proceed, and click to Run Ganache at the end of the wizard, Ganache 1.2.2 launches, but it behaves differently than the Ganache 1.2.2 which launches when I click on the icon in the Start menu. For example, the interface shows a Gas Price and nonzero Gas Limit which it's pulling from some unknown storage location based on values set during a previous installation, which make the app nonfunctional (see further description). When I go to Settings->Chain and delete both values (helptext says "Leave blank for default."), then Save and Restart, the interface says Gas Price 0 and Gas Limit 0; Chain settings says 0 in both these boxes and it's impossible to get them into the blank state to comply with the helptext suggestion. This tells me that the v1.2.2 the installer is delivering has different behavior than the v1.2.2 my computer is running and has been running for months. Further, the change in what I might call (for this dicussion) v1.2.2b has a change from v1.2.2a that breaks functionality. The project already has issues with undocumented breaking changes in minor/patch releases, and this makes it look like the project has an issue with undocumented breaking changes in updates where not even the patch number in semver gets increased! Whatever the cause, the effect is that good debugging and issue reporting with precise version information becomes unnecessarily difficult. (Note: Per description below, "v1.2.2b" might mean "v1.2.2 run on a system after a higher version has been installed, but still not the same v1.2.2 that's been running on the same system for months and can still be run when launching from the start menu.")
I open that recently installed v1.2.2 and instead of the impossible blank value in chain settings, I set gas limit = 145 and gas price = 10 (both previously unused values, and not in Gwei), and Save and Restart. Those values show up. I then close it and run the installer for v1.2.3. I get the same notice that there's already a per-user installation; will reinstall/upgrade. It's installed into the same directory and when run from the end of the installer, reports those same values for gas price and gas limit. Closing that and running the v2.0.0-beta2 installer produces the same warning about upgrading and installs into the same directory. Running that from the end of the installer and choosing Quickstart, the interface shows gas price = 20000000000 and gas limit = 6721975. Closing that and running the 1.2.2 installer again, with the same notice and going into the same directory, and running from the end of the install wizard, I'm back to seeing gas price 10 and gas limit 145. I clear both out, save and restart, and see both as zero values, because the blank value is impossible in ths 1.2.2b version. I set gas limit to 146, save and restart, and see that in effect. I delete the Ganache directory and run the 1.2.3 installer. Same notice about upgrading (which is odd) and same target directory. Running that, gas price is now 20000000000 and gas limit is 146. Closing and re-running the 1.2.2 installer, it's showing the gas price of 20000000000 and the gas limit of 146. Setting the gas limit to 147 and the gas price to 148, then Save and Restart, I see those values take effect. I can delete the Ganache folder, re-run the 1.2.2 installer (with the same odd "already a per-user installation" note and same target directory), and run Ganache from the end of the installer. I see those same values. I close it and run the "Uninstall Ganache.exe" file from the Ganache directory, which deletes that directory and maybe takes some other steps. I go to the start menu and click on Ganache, and it launches, despite the uninstaller having reported success. It still reports v1.2.2, shows blank values in the Chain settings page, and on the main interface shows gas price = 2000000000 and gas limit = 6721975. I can close and reopen it as many times as I want. When closed, it appears nowhere in Task Manager.
In the narrative above, I always installed into the default directory. However, if I changed that target directory to include some information about version number with the idea of having multiple different versions installed to test differences, it deletes the previous install directory on installing the new one.
The current behavior includes the following issues:
Values in chain settings are retained even after the "Ganache" folder is deleted.
Wherever they are stored, version 1.2.x reads from that but version 2.0.0-beta2 does not.
Nonzero values are retained across upgrades and downgrades, but zero values can get overwritten on upgrade (e.g. to 1.2.3) and not return to previous values on downgrade (e.g. to 1.2.2). An upgrade/downgrade cycle does not restore the user to quite where they were before the cycle, which significantly increases the difficulty of creating steps to reproduce a bug which appears to be produced by upgrading a patch version number.
The helptext suggests using blank values for defaults, but versions 1.2.2b or higher do not allow blank values and instead set blanks to hard 0 (and with a gas limit per block of 0, any transaction exceeds the block gas limit).
Having never built from source and only ever downloaded release packages, I apparently have two different versions of Ganache that both claim to be v1.2.2 running on the same computer, nominally from the same place, with different behavior around whether or not blank values can be stored in the chain settings. I don't know if this 2018-12-17 commit has anything to do with that, but this 2018-11-27 commit seems more of a likely suspect, combined with the point above about how upgrading and downgrading does not get one back to quite the same code state they were in before.
Ganache's uninstaller does not completely uninstall Ganache, and neither does deleting the directory where Ganache is supposedly installed in, where the start menu shortcut (as viewed in File Explorer) points. Even after running the uninstaller, I can still run Ganche from the start menu just fine. To me, it's OK that the start menu shortcut is still there after uninstall, but clicking on it should report that the target is gone instead of launching the app.
I find it difficult to separate these issues into separate reports with clear steps to reproduce, because I can't be confident what version is actually running and from where, and it's relatively hard to switch back and forth between versions to test reproduction steps with confidence, as later installations affect how earlier ones behave.
Expected Behavior
(Weakest point) Deleting the directory Ganache is installed to deletes the app entirely. Reinstalling after this should produce a fresh install.
If some files must be stored elsewhere, e. g. in a workspace, there is documentation about where those other files are, and maybe a shortcut from the application directory.
Upgrading and then downgrading, especially without deleting the app install directory, restores the user to exactly the same state they were in before taking those actions.
When helptext indicates blank values are valid, blank values should be permitted instead of being auto-converted to a hard "0" especially where such a value renders the app no longer useful.
When the same-named software package displays the same version number, on the same computer, nominally running from the same folder, its behavior should be the same. There should not be a reliable difference in functionality (with a more recently installed version having something broken that works in the previously-installed version) depending on how the program is launched, when there is no evidence of difference in command-line flags.
After running the uninstaller for an application, clicking a Start Menu shortcut to that application should NOT launch the app; it should produce an error saying the app cannot be found and an offer to remove the shortcut.
Context
I came across this Issue in the context of ganache-core Issue 161, and even after this and additional investigation stand by my repeat report of the same issue there.
I came across that issue after observing Ganache fail under load testing, with the entire GUI becoming completely white and nonresponsive (to graphical user interaction or RPC calls). I wanted to run the test in a later version to see if a later version included a fix, but got temporarily blocked from proceeding with those tests because code that previously functioned fine failed due to the undocumented breaking change reported in that Issue.
The text was updated successfully, but these errors were encountered:
Summary
Ganache and pieces thereof remain after the app has nominally been removed. Upgrading and downgrading does not restore a user to where they were before that cycle, and the effective programmatic rules about what stays and what changes are not intuitive and hard to figure out (e.g. depends on what the value was). This produces unexpected effects like the same version of the software having different behavior on the same computer.
Details
On my Windows 10 Pro computer, I previously installed Ganache 1.2.2 on a one-user basis (using a previously posted installer), which does not require admin privileges to install. For a timing point, I reported having "recently updated" to v1.2.2 on 2018-08-28, and the release tag's timestamp is the day before.
Ganache is pinned to my start menu, so I can launch it by clicking on the Start icon and then the program icon. On recently downloading a later version's installer, the installer said it would replace the current installation, and after selecting single-user installation the installer said the program would be in C:\Users\me\AppData\Local\Programs\Ganache (where "me" is my username). However, even when deleting this folder, I can still launch the program from the start menu.
When I open C:\ProgramData\Microsoft\Windows\Start Menu (Start menu shortcuts for all users), there is no Ganache and searching for Ganache returns no results (as expected; this should be a single-user install). When I visit %appdata%\Microsoft\Windows\Start Menu there is one entry for Ganache, and right-click=>Properties shows me that the Target is C:\Users\me\AppData\Local\Programs\Ganache\Ganache.exe - but that "\Ganache" directory no longer exists after the previously mentioned deletion! The shortcut Properties also show no command-line flags. When I double-click the shortcut in Windows Explorer, it reports "The item 'Ganache.exe' that this shortcut refers to has been changed or moved, so this shortcut will no longer work properly." OK, that's what I expect. However, clicking on the Start menu and clicking the pinned Ganache icon launches Ganache. It shows up in Task Manager's list of Apps (under the Processes tab) when it's running, but after closing it there's no mention in that tab even under Background Processes. When running, the interface reports Gas price 2000000000; Gas Limit 6721975; Chain settings shows blank for both but hovering over the field reveals up/down number controls in the right edge of the field. That's the expected behavior except for the fact that the directory the app is supposedly running from no longer exists.
If I run the 1.2.2 installer again, I get a message that "there is already a per-user installation (C:\Users\me\AppData\Local\Programs\Ganache); Will reinstall/upgrade." When I proceed, and click to Run Ganache at the end of the wizard, Ganache 1.2.2 launches, but it behaves differently than the Ganache 1.2.2 which launches when I click on the icon in the Start menu. For example, the interface shows a Gas Price and nonzero Gas Limit which it's pulling from some unknown storage location based on values set during a previous installation, which make the app nonfunctional (see further description). When I go to Settings->Chain and delete both values (helptext says "Leave blank for default."), then Save and Restart, the interface says Gas Price 0 and Gas Limit 0; Chain settings says 0 in both these boxes and it's impossible to get them into the blank state to comply with the helptext suggestion. This tells me that the v1.2.2 the installer is delivering has different behavior than the v1.2.2 my computer is running and has been running for months. Further, the change in what I might call (for this dicussion) v1.2.2b has a change from v1.2.2a that breaks functionality. The project already has issues with undocumented breaking changes in minor/patch releases, and this makes it look like the project has an issue with undocumented breaking changes in updates where not even the patch number in semver gets increased! Whatever the cause, the effect is that good debugging and issue reporting with precise version information becomes unnecessarily difficult. (Note: Per description below, "v1.2.2b" might mean "v1.2.2 run on a system after a higher version has been installed, but still not the same v1.2.2 that's been running on the same system for months and can still be run when launching from the start menu.")
I open that recently installed v1.2.2 and instead of the impossible blank value in chain settings, I set gas limit = 145 and gas price = 10 (both previously unused values, and not in Gwei), and Save and Restart. Those values show up. I then close it and run the installer for v1.2.3. I get the same notice that there's already a per-user installation; will reinstall/upgrade. It's installed into the same directory and when run from the end of the installer, reports those same values for gas price and gas limit. Closing that and running the v2.0.0-beta2 installer produces the same warning about upgrading and installs into the same directory. Running that from the end of the installer and choosing Quickstart, the interface shows gas price = 20000000000 and gas limit = 6721975. Closing that and running the 1.2.2 installer again, with the same notice and going into the same directory, and running from the end of the install wizard, I'm back to seeing gas price 10 and gas limit 145. I clear both out, save and restart, and see both as zero values, because the blank value is impossible in ths 1.2.2b version. I set gas limit to 146, save and restart, and see that in effect. I delete the Ganache directory and run the 1.2.3 installer. Same notice about upgrading (which is odd) and same target directory. Running that, gas price is now 20000000000 and gas limit is 146. Closing and re-running the 1.2.2 installer, it's showing the gas price of 20000000000 and the gas limit of 146. Setting the gas limit to 147 and the gas price to 148, then Save and Restart, I see those values take effect. I can delete the Ganache folder, re-run the 1.2.2 installer (with the same odd "already a per-user installation" note and same target directory), and run Ganache from the end of the installer. I see those same values. I close it and run the "Uninstall Ganache.exe" file from the Ganache directory, which deletes that directory and maybe takes some other steps. I go to the start menu and click on Ganache, and it launches, despite the uninstaller having reported success. It still reports v1.2.2, shows blank values in the Chain settings page, and on the main interface shows gas price = 2000000000 and gas limit = 6721975. I can close and reopen it as many times as I want. When closed, it appears nowhere in Task Manager.
In the narrative above, I always installed into the default directory. However, if I changed that target directory to include some information about version number with the idea of having multiple different versions installed to test differences, it deletes the previous install directory on installing the new one.
The current behavior includes the following issues:
I find it difficult to separate these issues into separate reports with clear steps to reproduce, because I can't be confident what version is actually running and from where, and it's relatively hard to switch back and forth between versions to test reproduction steps with confidence, as later installations affect how earlier ones behave.
Expected Behavior
Context
I came across this Issue in the context of ganache-core Issue 161, and even after this and additional investigation stand by my repeat report of the same issue there.
I came across that issue after observing Ganache fail under load testing, with the entire GUI becoming completely white and nonresponsive (to graphical user interaction or RPC calls). I wanted to run the test in a later version to see if a later version included a fix, but got temporarily blocked from proceeding with those tests because code that previously functioned fine failed due to the undocumented breaking change reported in that Issue.
The text was updated successfully, but these errors were encountered: