IPv6 connection is unavailable in South Korea due to ISP issue.
See original GitHub issueYesterday, KT(one of the biggest ISP companies in Korea) had a connection issue for whole regions in South Korea.
After they resolved the problem, Google’s Firestore service is not working properly. (Only in Android apps)
While I’m investigating the issue, I noticed Firestore Android SDK uses gRPC library for network connection.
This issue can be resolved if you connect by only using IPv4.
But since we can’t inform to whole users to change their connection to IPv4 from their Android setting, it should be done with client app level.
We found this java -Djava.net.preferIPv4Stack=true
command is not working for gRPC client.
I actually have no many knowledges about gRPC, so I aplogize if my question is not proper.
Is there any way to force whole connection to use IPv4 while using this library?
This problem is happening whole services which uses Firestore in South Korea.
I hope someone can give me a tip.
Thanks in advance.
Issue Analytics
- State:
- Created 2 years ago
- Comments:7 (2 by maintainers)
Top GitHub Comments
Have you contacted Google support?
Do you know in which way IPv6 is broken? What happens when IPv6 is attempted? It hangs trying to connect? I would expect it should eventually attempt an IPv4 address, but if things are really broken it may take a while (might take minutes, but it depends a lot on the specifics).
BaseDnsNameResolverProvider
was replaced in https://github.com/grpc/grpc-java/commit/6a7e47b8a5e4d2dc5acf7249e84e8aff4a28be3d, which means your version of gRPC is at least 1.5 years old.If this issue is relating to Android, then what is
java -Djava.net.preferIPv4Stack=true
talking about? You don’t use thejava
binary to execute Java code on Android.We
deregister
the provider in the default NameResolverRegistry andregister
a custom one that extendsBaseDnsNameResolverProvider
, which provides a newDnsNameResolver
with a custom address resolver set bysetAddressResolver
.