Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Licensing: Online checks fail when a broken IPv6 default route is present, causes long startup times, unable to log in #7152

Closed
1 of 2 tasks
Dobby233Liu opened this issue Aug 7, 2024 · 10 comments
Assignees
Labels
ide-bug Bugs with the GameMaker IDE
Milestone

Comments

@Dobby233Liu
Copy link

Dobby233Liu commented Aug 7, 2024

Description

Personally I connect to the proxy service all day. However this causes a small inconvenience: when I start the GM IDE, some kind of online check appears to timeout and fail, and some account features will not be available. It's not an urgency as the IDE is still mostly usable, but waiting a long time for the IDE to start is not pleasing.

With a web browser I am able to reach the URLs the IDE tries to access as written in ui.log. Setting up the client to not proxy api.gamemaker.io and gms.yoyogames.com lets me use account features (at least IIRC), but it doesn't eliminate the issue. The issue disappears entirely when I turn off the proxy.

The Contact Us package.

Expected Change

No response

Steps To Reproduce

I'm in Mainland China, which may or may not be relevant.

  1. With Cloudflare's official client, connect to the proxy in "1.1.1.1 + WARP mode"
  2. Start the GM IDE
  3. Watch as the steps "Checking Network" "User Processing" take forever and eventually fail silently
  4. Click the blue account icon on the up-right side of the screen (if you have logged in) and click "GameMaker Account", then be told that you're offline

How reliably can you recreate this issue using your steps above?

Always

Which version of GameMaker are you reporting this issue for?

2024.6.2 (Monthly)

Which operating system(s) are you seeing the problem on?

Windows 11

Are you running GameMaker from inside your Steam library?

No

Contact Us Package Attached?

  • I have attached my Contact Us Package

Sample Project Added?

  • I have included a small sample project
@Dobby233Liu Dobby233Liu added the ide-bug Bugs with the GameMaker IDE label Aug 7, 2024
@YYDan
Copy link
Collaborator

YYDan commented Aug 7, 2024

Could you try the current 2024.800 Beta and let us know if that's still the same for you, please?

There are already changes released to make that start up pause much shorter and also to check less frequently when starting second/third GameMaker windows, etc., so in terms of "GameMaker takes too long to start when I am connected to my proxy server" you may find this is already much better. Hopefully...

@YYDan YYDan changed the title Online check fails when Cloudflare WARP proxy is enabled system-wise Licensing: Online checks fail when Cloudflare WARP proxy is used, causes long startup times Aug 7, 2024
@Dobby233Liu
Copy link
Author

Dobby233Liu commented Aug 7, 2024

Could you try the current 2024.800 Beta and let us know if that's still the same for you, please?

Still happens in Beta 2024.800.0.602 unfortunately. It fails to access the runtime RSS feed as well and kicks me out. (Failing to access RSS feeds probably happens in Monthly as well, I just never paid attention.)
image

warpbug-800_602-uilog.zip

@YYDan
Copy link
Collaborator

YYDan commented Aug 7, 2024

Thanks for the speedy update!

Yup, can see (as you say) that GM is not able to reach any sites it uses to check online access or our own servers:

[17:33:57:309(b870)] InternalCheckForInternetConnection :: Unable to reach site https://api.gamemaker.io/api/health-check 
[17:33:57:309(b870)] System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at System.Threading.Tasks.Task.GetExceptions(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at YoYoStudio.Core.Utils.HttpUtil.<>c__DisplayClass52_0.<InternalCheckForInternetConnection>b__0()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
--- End of stack trace from previous location ---

@Dobby233Liu
Copy link
Author

Dobby233Liu commented Aug 7, 2024

Just found out something:

With WARP on, when I ping api.gamemaker.io in cmd, it gets an ipv6 address and tries to ping that; however, it times out because my router is ipv4-only. The pinging is successful when I disable the proxy or force ipv4 with the -4 switch.
However, curl and MS Edge can access https://api.gamemaker.io/health-check completely fine, so that's pretty weird.

So maybe WARP somehow fooled the system into thinking ipv6 can be done over my ethernet, so while "the smart programs" can tell that's not the case, ping and GM IDE proceed to connect in ipv6 mode like fools. I think it's probably a CloudFlare bug, but GM should deal with it anyway.

I'm not certain though so I'm not changing the title for now. Maybe this could happen even if ipv6 is available.

@jackerley jackerley moved this from Triage to Backlog in Team Workload Aug 8, 2024
@yoyo-danielc
Copy link

This appears to be the result of having a broken IPv6 route on the system.

If I drop all traffic to the IPv6 addresses of api.gamemaker.io at my boundary router, the IDE pauses as described during startup and logs errors from InternalCheckForInternetConnection, additionally, I can't sign in to the IDE after launching in that state (it doesn't even try connecting to the account server if the internet check at startup failed, AFAICT).

We should probably implement the "Happy Eyeballs" algorithm in the IDE to handle this case, there has been an ongoing issue about adding it to the .NET runtime since 2018: dotnet/runtime#26177

@Dobby233Liu
Copy link
Author

I'm not certain though so I'm not changing the title for now.

To reaffirm that that was causing the bug: I disabled IPv6 for the CloudflareWARP network adapter and the bug disappeared.

@yoyo-danielc yoyo-danielc changed the title Licensing: Online checks fail when Cloudflare WARP proxy is used, causes long startup times Licensing: Online checks fail when a broken IPv6 default route is present Aug 9, 2024
@yoyo-danielc yoyo-danielc changed the title Licensing: Online checks fail when a broken IPv6 default route is present Licensing: Online checks fail when a broken IPv6 default route is present, causes long startup times, unable to log in Aug 9, 2024
@yoyo-danielc yoyo-danielc added this to the 2024.10 milestone Aug 9, 2024
@yoyo-danielc
Copy link

Fixed in 2024.10 branch.

@YYDan
Copy link
Collaborator

YYDan commented Oct 4, 2024

Reopening, as we now have multiple reports (linked above) from Mac and Ubuntu IDE users that HappyEyeballs is causing crashes on startup in the current Beta.

@YYDan YYDan reopened this Oct 4, 2024
@github-project-automation github-project-automation bot moved this from Ready for QA to Triage in Team Workload Oct 4, 2024
@stuckie stuckie moved this from Triage to Todo in Team Workload Oct 7, 2024
@yoyo-danielc
Copy link

Closing per #7894 and #7896

@github-project-automation github-project-automation bot moved this from Todo to Done in Team Workload Oct 16, 2024
@gurpreetsinghmatharoo gurpreetsinghmatharoo moved this from Done to Ready for QA in Team Workload Oct 16, 2024
@sihammill sihammill self-assigned this Nov 7, 2024
@sihammill
Copy link

Fix verified in IDE v2024.1100.0.674 Runtime v2024.1100.0.700

@sihammill sihammill moved this from Ready for QA to Verified in Team Workload Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ide-bug Bugs with the GameMaker IDE
Projects
Status: Verified
Development

No branches or pull requests

4 participants