goatcorp / FFXIVQuickLauncher

Custom launcher for FFXIV
https://goatcorp.github.io/
GNU General Public License v3.0
2.78k stars 328 forks source link

"Checking for updates" takes a long time #515

Open skuffe opened 3 years ago

skuffe commented 3 years ago

Hey there, not sure if this is the intended behavior or not, but when I launch XIVLauncher, it takes quite a while for it to check for updates before I'm presented with the login window.

The launcher is advertised as being fast, but it takes like 45-60 seconds before its ready to login. Any idea what could be going on here?

SchwartzLizer commented 3 years ago

same problem too

ghost commented 3 years ago

same here, I usually close it and reopen it until it works

reiichi001 commented 3 years ago

This is a connection issue between your computer, your internet, and GitHub. Under normal circumstances, it shouldn't take more than a few seconds, but we've been noticing more issues with people connecting to GitHub lately. We are looking into trying to get version checks working better for everyone.

ghost commented 3 years ago

ig ot it to stop checking forever and actually work by going to my antivirus and whitelisting the folder/exe/PID. then i restarted my computer and none of it mattered.. back to checking for ever.. i found out that when it does check forever the portable marketboard plugin does not work.. when it did check and connect after whitelisting it.. it did work..

dekkai commented 3 years ago

Getting the same issue, and afterward the game launches as a black screen "Not Responding" for about a minute until it finally continues. The only solution I have found is to restart my computer before starting xivlauncher. Not using any antivirus software and the program is whitelisted in windows firewall.

Waitsnake commented 3 years ago

Same issue here (Windows 10 21H1 and using FFXIVQuickLauncher v6.0.6.0). "Checking for updates" is there for ca. 88 sec before Launcher Login Options are visable. Login from Launcher Login Options to the Game itself is then really quick just needs 15 sec until main menu of game is visable. I have all the time an working internet connection and in browser the github page quickly loads.

I did not have installed any extra firewall from any other vendor. It is just a completly updated Windows 10 21H1 with all recomended security options enabled (Windows Virusscan and Windows Firewall Enabled).

Also adding the launcher exe explicitly to Windows Firewall and allowing local and public network did not help to speed things up.

Also Windows Virusscan did not report any virus detection.

Waitsnake commented 3 years ago

Checking the source code and compareing it to what I see I really think that the importet class UpdateManager.GitHubUpdateManager is having a hard time to look for Github updates (maybe Github Servers changed something that this class is needing more time to work?), but still did not raise an exception, because I did not saw the CustomMessageBox "updatefailureerror" .

GitHubUpdateManager is used in this project in method run() of Updates class in Updates.cs source file. https://github.com/goatcorp/FFXIVQuickLauncher/blob/8685db4a0e8ec53235fb08cd88aded7c7061d9fb/src/XIVLauncher/Updates.cs

If I force in my C:\Windows\System32\drivers\etc\hosts file the url "github.com" to be linked to localhost/127.0.0.1 then I get this CustomMessageBox "updatefailureerror". This is no workaround because without update possible the hole App closes after the error message box. But it shows that the UpdateManager.GitHubUpdateManager class was able to "error free" reach github.com and check for updates. Check for it just need a hell of a time!

Could you please add an option to disable the forced check for updates on github.com ? I would rather check for updates on Github manually than having to wait 1-2 minutes each time I like to start FF14.

Waitsnake commented 3 years ago

As quick and dirty workaround I downloaded the project from Github, comment out theese two lines in Method run() of Update.cs and rebuild the project:

//var a = await updateManager.CheckForUpdate(); //newRelease = await updateManager.UpdateApp();

The new build starts very quickly "Checking for updates" is there for ca. 1 sec and Launcher Login Options are visable after maybe 4 sec after start. Also starting the game still works without those Github update check and login from Launcher Login Options to the Game itself is still just needs 15 sec until main menu of game is visable.

With this workaround it realy earns the name FFXIVQuickLauncher.

reiichi001 commented 3 years ago

Disabling the update check is not going to be an accepted solution to the updater hanging.

Goat's looking into changing hosts so that we don't have to deal with GitHub timing out as this is likely due to a lot more traffic hitting the repo than before. It's basically outgrown free hosting.

EDIT: To note, there's a far more elegant way to disable the update checks without modifying the launcher's code. Doing so though will mean will not prove any support if the launcher is outdated. (Hint: check the environment variable handling)

Waitsnake commented 3 years ago

Thanks for the advice. I miss the environment variable handling.

Now I made a small bat file to start the FFXIVQuickLauncher without Github Update checking to use the original release binary 6.0.6. C:\Windows\System32\cmd.exe /c "SET XL_NOAUTOUPDATE=true && START /D ^"C:\Users\MyUserName\AppData\Local\XIVLauncher^" XIVLauncher.exe"

While playing today with the environment variable I saw even with update enabled the FFXIVQuickLauncher starts today really quick. Just 5 sec until Launcher Login Options are visible when updates are enabled. 5 sec today to compared 88 sec yesterday is a huge difference. It seems sometimes Github really throttle down the data rate that is allowed. Maybe they did it because of too much traffic of a project(?).

This means this issue is not really an issue of FFXIVQuickLauncher itself, but rather of the used Update Server performance from Github. When project likes to stay on Github with the sometimes incredibly slow performing servers I could imagine that the update process had an timeout event (maybe 5 sec ?) implemented for days when Github performance is really bad and if the timeout triggers it starts the launcher anyway instead of closing the application or waiting endless as it did now.