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

Asset library doesn't load when using a dual stack IPv4/IPv6 network #36418

Closed
affemannen opened this issue Feb 21, 2020 · 27 comments · Fixed by #50365
Closed

Asset library doesn't load when using a dual stack IPv4/IPv6 network #36418

affemannen opened this issue Feb 21, 2020 · 27 comments · Fixed by #50365

Comments

@affemannen
Copy link

Godot version:
3.2
OS/device including version:
Linux Mint Cinnamon 19.3
Issue description:
Get the message "Can't connect to host: https://godotengine.org/asset-library/api"
Steps to reproduce:
Top middle choice "AssetLib"
Minimal reproduction project:
assetlib

@Calinou
Copy link
Member

Calinou commented Feb 21, 2020

Are you using a proxy on your system? Godot doesn't support HTTP proxies yet, see #6100.
Also, double-check there's not a firewall blocking access to https://godotengine.org/asset-library/api/asset (try loading that URL in your browser).

@affemannen
Copy link
Author

No proxy, exceptions in Firewall are in place. The URL works in browser, yes.
Could my HMA-VPN be causing this?

@affemannen
Copy link
Author

affemannen commented Feb 21, 2020

https://godotengine.org/asset-library/api/asset (worked in browser)
https://godotengine.org/asset-library/api/ (didn't work in browser)

@Calinou
Copy link
Member

Calinou commented Feb 21, 2020

https://godotengine.org/asset-library/api/ (didn't work in browser)

This is expected, as that URL is the base API URL. The resource URL (such as /asset) is appended to the base API URL.

Could my HMA-VPN be causing this?

If the VPN affects all processes run by your user, it should work fine. Do HTTP requests work in a project if you try to follow the example given here?

@affemannen
Copy link
Author

https://godotengine.org/asset-library/api/ (didn't work in browser)

above address is what is displayed in Godot. Can I add /asset to it or is it done automatically?

@Faless
Copy link
Collaborator

Faless commented Feb 21, 2020

Could my HMA-VPN be causing this?

Well, maybe, try disabling it and we'll know. Maybe another case of #27864 ?

@affemannen
Copy link
Author

No, disabling VPN didn't work.

@Faless
Copy link
Collaborator

Faless commented Feb 22, 2020

I see, can you run the editor in verbose mode (via --verbose) and post the console output after clicking on the assetlib tab? Should give more informations about the network failure.
Can you also post the output of ifconfig in your machine (with VPN disabled)

@affemannen
Copy link
Author

affemannen commented Feb 22, 2020

Thanks Faless, could you elaborate on what I need to do? I'm kind of new to Linux so I could use some help to give you what you need.

@Faless
Copy link
Collaborator

Faless commented Feb 22, 2020

@affemannen

  • Open a terminal, type ifconfig press enter. Copy paste the result here.
  • Open a terminal, type /path/to/godot.bin --verbose -e --path /path/to/your/project. Change /path/to/godot.bin to the path of the godot binary, and /path/to/your/project with the path of your project folder.

@affemannen
Copy link
Author

affemannen commented Feb 22, 2020

The ifconfig gives:

enp5s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether c8:60:00:4a:38:03  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2597  bytes 231100 (231.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2597  bytes 231100 (231.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 100.120.93.60  netmask 255.255.248.0  destination 100.120.93.60
        inet6 2001:db8:123::2  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::c2ae:7f96:6c24:5e1  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 1023752  bytes 1339108558 (1.3 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 526950  bytes 34825539 (34.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.112  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::8aad:6f8b:763b:f753  prefixlen 64  scopeid 0x20<link>
        inet6 fdaa:bbcc:ddee:0:a0d1:428b:96f5:3f2b  prefixlen 64  scopeid 0x0<global>
        inet6 fdaa:bbcc:ddee:0:3dd5:c868:6242:98e5  prefixlen 64  scopeid 0x0<global>
        inet6 fdaa:bbcc:ddee:0:c460:316c:848:1fbe  prefixlen 128  scopeid 0x0<global>
        ether 00:08:ca:f3:ac:74  txqueuelen 1000  (Ethernet)
        RX packets 1991575  bytes 2577236899 (2.5 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1025126  bytes 179129388 (179.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Without the VPN

enp5s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether c8:60:00:4a:38:03  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2599  bytes 231178 (231.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2599  bytes 231178 (231.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.112  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::8aad:6f8b:763b:f753  prefixlen 64  scopeid 0x20<link>
        inet6 fdaa:bbcc:ddee:0:a0d1:428b:96f5:3f2b  prefixlen 64  scopeid 0x0<global>
        inet6 fdaa:bbcc:ddee:0:3dd5:c868:6242:98e5  prefixlen 64  scopeid 0x0<global>
        inet6 fdaa:bbcc:ddee:0:c460:316c:848:1fbe  prefixlen 128  scopeid 0x0<global>
        ether 00:08:ca:f3:ac:74  txqueuelen 1000  (Ethernet)
        RX packets 1992811  bytes 2577547693 (2.5 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1025853  bytes 179288579 (179.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

I don't understand your second request as I've just installed Godot and was about to start using it when this problem occurred. I've made a project but it doesn't contain much.

Ah, shit, I'm trying to make this readable but the forum fails...

@Calinou
Copy link
Member

Calinou commented Feb 22, 2020

Ah, shit, I'm trying to make this readable but the forum fails...

Wrap the pasted text in triple backticks (```), like this:

```
Some text
```

@affemannen
Copy link
Author

Ok, that's better :-)

@Faless
Copy link
Collaborator

Faless commented Feb 22, 2020

Mmhhh, might be a case of broken dual stack? Can you try those 2 commands in terminal? (I hope they are installed)

  • ping -c 5 godotengine.org
  • ping6 -c 5 godotengine.org

and post the result?

@affemannen
Copy link
Author

PING godotengine.org (212.85.158.4) 56(84) bytes of data.
64 bytes from web.tuxfamily.net (212.85.158.4): icmp_seq=1 ttl=47 time=59.0 ms
64 bytes from web.tuxfamily.net (212.85.158.4): icmp_seq=2 ttl=47 time=56.2 ms
64 bytes from web.tuxfamily.net (212.85.158.4): icmp_seq=3 ttl=47 time=60.3 ms
64 bytes from web.tuxfamily.net (212.85.158.4): icmp_seq=4 ttl=47 time=58.8 ms
64 bytes from web.tuxfamily.net (212.85.158.4): icmp_seq=5 ttl=47 time=59.0 ms

--- godotengine.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 56.240/58.708/60.312/1.354 ms

Clearly, it has something to do with my VPN. I shut it down for the command but I don't want to not have it up and running, it has to. Maybe there is something in the VPN script that can be edited?

@Faless
Copy link
Collaborator

Faless commented Feb 22, 2020

@affemannen oh, so it does work without your VPN? I thought it still didn't work 😕
Anyway, what about the second command?
ping6 -c 5 godotengine.org
What does that output?

@affemannen
Copy link
Author

~$ ping6 -c 5 godotengine.org
connect: Network is unreachable

@affemannen
Copy link
Author

However, with VPN active this came up:

~$ ping6 -c 5 godotengine.org
PING godotengine.org(web.tuxfamily.net (2a02:2178:1000:201::4)) 56 data bytes

--- godotengine.org ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4084ms

@Faless
Copy link
Collaborator

Faless commented Feb 22, 2020

Yep, that's what a broken dual stack network looks like.
Probably something to do with the VPN tunnels tricking the engine into thinking there is an IPv6 network thus resolving the address as IPv6.
Not much we can do here unless someone wants to implement Happy Eyeballs into HTTPClient (which is the standardized hack to deal with broken dual stack network).
I wish we could finally call IPv4 dead and move on 😭

@affemannen
Copy link
Author

I'll contact the HMA support on this and see what they come up with... probably nothing.

Thanks for all your help anyway, very much appreciated.

@jonbonazza
Copy link
Contributor

I wonder if you can use some /etc/hosts hackery to force that particular domain to resolve to an ipv4 addr

@jamie-pate
Copy link
Contributor

@jabcross
Copy link
Contributor

jabcross commented Oct 4, 2021

I just managed to work around this problem on my end, so posting here to help fellow Google users, as as of 3.3.4 stable the fix is not merged yet.

I managed to solve it by setting up a IPV6 DNS override on my network adapter, as apparently the one provided my my ISP wasn't working. (I used OpenDNS). Try this before cherry-picking a commit!

@jamie-pate
Copy link
Contributor

jamie-pate commented Oct 4, 2021 via email

@cacilhas
Copy link

Why this issue is closed? The problem still exists in 3.3.4. 😡

@aaronfranke
Copy link
Member

@cacilhas It's fixed in the master branch (what will become Godot 4.0).

@akien-mga
Copy link
Member

@cacilhas It's fixed in the master branch (what will become Godot 4.0).

And in 3.4, as documented in the PR which closed this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants