Hugo Osvaldo Barrera
- hobarrera
- hobarrera
- America/Argentina/Buenos_Aires
- Yes
- No
2 issues
Key
Summary
Status
Reporter
Assignee
Created
Deleted Comment:
Is there any update on this?
It's been over half a year where many users can't play multiplayer (after having paid, btw!) - and the situation only gets worse as more and more ISPs transition to IPv6.
> Sadly many people have broken ipv6 stacks running on their system and they break when you try to use them. This is why we opted eons ago to prefer ipv4.
So you break the game for people with PROPERLY configured networks so it'll work fine for people with broken configurations?
My network is properly configured and running perfectly (it's pure IPv6 with NAT64 at an ISP level), but I can't play with anyone due to this issue, and all so people with broken configurations can play fine. The worst part is, there's no fix for me. There's nothing I can do, since my network is not broken. All I can do is sit back and NOT play minecraft.
If you fix the game so people with sane networks can play, the people with broken networks configuration will inevitable fix theirs. At least there something they can do about it. There's nothing people with non-broken networks can do.
IPv6 addresses usually jus take the format of 2001:41d0:4f96::1. The brackets generally only are used when specifying a port, ej: [2001:41d0:4f96::1]:59382
Convincing all of my friends to downgrade won't be so trivial though.

I also need to somehow grab the game files without the launcher (minecraft.jar), which doesn't work over IPv6 either.
I have native (pure) IPv6, but they don't even actually their ISP to provide IPv6, setting up two VMs with IPv6 interfaces is really enough to test all these things.
The main issue here is that they're giving priority to people with broken network setups (and those can be fixed), while they screw us with PROPER network setups (I can't fix what's not broken), leaving us with no way to play the game. :-/
I had read that issue you've linked and this is not a duplicate of it: "This appears to be a problem with the Minecraft.exe launcher, rather than the minecraft.jar file itself.".
This issue is on GNU/Linux, as described above, Minecraft.exe is completely unrelated.
> "They've made the choice that results in the fewest complaints and bug reports."
This sound like an awful policy. You're saying "screw you" to people with properly configured networks, only to support people with broken ones. You basically explicitly broke minecraft so that it works on broken networks. Breaking more stuff so that it all fits together will only worsen everything in the long run.
> "However, I believe a possible workaround would be to set up a local IPv4 to IPv6 bridge."
A bridge has no way of fixing this because a bridge works on layer 2, and the issue is minecraft using the wrong layer 3 protocol. There's no way a bridge can fix anything.
My network has NAT64 (provided at an ISP level) to contact remote IPv4 hosts and this works just fine. Minecraft needs to use my existing network.
I feel that it's wrong to close this issue as "resolved" then paying customers are completely incapable of using the game on a perfectly configured and well-working network. It's not resolved. It's being ignored.
I honestly do not know of the inner workings of Minecraft.exe, nor do I have any access to any wintel systems to try and understand how it works.
But the first sentence on the linked issue says it's an issue on minecraft.exe and not minecraft.jar. It that's mistaken, could you please update it? As-is, it clearly states that it's not this issue.
Pointing to a FAQ on how to fix these configurations (simply OS's manuals) would have been way easier and less controversial to fix.
But there's one thing that makes me uneasy: how do others solve the issue with these broken network configurations?
If the user's configuration is broken, other software should have the same issues (eg: browsers, im clients, email clients, package managers). How do these applications deal with these issues and, most importantly, can't their solution be used by minecraft?
—
That aside,
MCL-2627covers the launcherMC-3776covers LAN playAre there any issues still open that address the issue of not being able to play online either? Or should
MC-3776be updated to include this?Please update the summary; the problem is not minecraft.exe, as this issue is present on GNU/Linux with minecraft.jar. The first sentance of this issue indicates the contray.
Also, "Local Network" isn't the only thing affected. Playing online does not work either. Maybe the summary should be updated to include this issue as well?
Regarding the launcher
I agree that adding an option (even if it's just a CLI one) would be an acceptable solution (not the best, IMHO, but it'd be enough to keep me happy).
MagicLauncher does not work: http://sprunge.us/XgFB
MultiMC works half way: The launcher work, but the game still has IPv6 disabled (both LAN and online). So the game can be run, but single player only.
Since the launcher itself is rather simple and small, and does not actually contain game code or anything secret, would you consider open sourcing it so we can at least fix the issues for ourselves? I'd much rather mantain a patched version for myself than use a third party launcher.
Otherwise, why not provide an IPv6 minecraft.jar on your website? It's basically the same code with two lines commented out, I don't think it's much of a hastle.
Regarding the game
Are there any know workaround? I've managed to install it, but I'm still limited to single player only.
Also, have you actually considered the implications of this issue? Many, MANY paying customers cannot play the game, and will not be able to for an undefined future, just because some people out there have broken networks. You guy basically took my money and are unwilling to give me a working game in return.
If there's no workaround, can I get a refund? I mean, I either want a game that runs, or my money, you can't expect me to settle for none of both choices.
Yes, sorry, I sort of mixed up two issues; not preferring IPv6 by default is not unacceptable. Completely disabling IPv6 is an issue, because you assume that all users have IPv4 connectivity. But that's what
MC-3776is about, and this issue is just about preference, so I'll just shut up here and limit that discussion to the proper issue. Sorry for the noise.@Thue:
While I agree (I have no IPv4 connectivity), what you're discussing is the topic of
MC-3776. I'd suggest you move the discussion over there, since this thread deals merely with which is preferred. The preference cannot be changed untilMC-3776is fixed.This comment describes a bit why IPv6 is completely disabled:
I belive he meant the preferIPv6Addresses, but the rest still applies.
So I installed eclipse and got to hacking some code:
A wrapper
This tiny piece of code wraps around the launcher and enables IPv6 before the launcher can disable it. I'm leaving this here as a solution for users who are interested in downloading the game and this is not mean to be mainstream.
For some reason though, the game itself still won't have any network capabilities. I'm not sure if the laucher spawns a new VM, of the game has something else hardcoded to disabled IPv4.
A solution
This sample code re-enables IPv6 only AFTER having tested that it works properly. If it fails, it will bail and to nothing.
If you can review this and integrate this into minecraft, we can finally fix (and not simply "resolve") this issue.
If (or rather, hopefully, when) you include this into minecraft, the result would be:
In short, nothing breaks, not even for people with broken configurations, which I think is what's most important here.
—
As for future issues (though not quite related), here's an example:
I'm pretty sure the "Open to LAN" only has an IPv4 multicast literal for announcing/listening, so that would require further changes on behalf of the devs to work. However, that would be a completely new issue once these changes get integrated into the game.
I'd appreciate some feedback for this.
The fact that it's not obfuscated doesn't make it legal to alter it or provide modified versions to third parties. Also, source is easier to edit than decompiled classes.
@Torabi:
Ok, using my wrapper, nope, there's something else going on, and I'm not sure what it is: "java.net.SocketException: Protocol family unavailable".
This is curious:
It's not a network or routing error, it's a 500 error that came from the server, so the game used IPv6 up to when it reaches the menu...
That's understandable, the game is probably using an IPv4 literal for that, and it's not working.
However, when connecting to a server:
Looks like the game itself isn't using IPv6. Maybe a new VM is started? I'm really confused.
In any case, can you forward the sample code I linked above to the devs? It fixes the issue (at least for minecraft.jar and the launcher) while not affecting any current user negatively (or, if you're one of the dev, can you give me some feedback for that?). Thanks!
Not exactly. It means that it tried to bind an IPv4 socket, and IPv4 is unavailable on that interface.
Indeed the issue is java. On an IPv6-only system, it tried to use IPv4 by default until I set the preferIPv6Addresses property to true. Regrettably, java is well know for it's poor network IPv6 compatibility.
(I don't blame you for that though!)
That's why it's so very important to fix launcher.jar first. Without fixing it, the game can't even be downloaded. Once launcher.jar works, further issues can be addressed. Have you considered integrating the sample code I provided above? (I just updated it a bit). It will only alter the value of preferIPv6Addresses and preferIPv4Stack after having succesfully tested and made sure IPv6 works correctly and not affect any other scenario, which is what you care about. It shouldn't take more than five minutes to review and integrate it. There'll be no regressions, even for broken network setups.
Nope, running 1.7.9 on a clean install performed yesterday (I could not install minecraft on my desktop before I wrope the crappy wrapper mentioned above).
I'll try the same client on a network with IPv4 tomorrow (my university has IPv4 so I'll use that oportunity to test it) and confirm if the realms issue is or isn't a client issue.
Yes, I am. Any other IPv6 literal gives the same issue.
Indeed, it is interesting (and confusing) that realms connects and Multiplayer does not. They're inconsistent, but, AFAIK, the same VM. However, now that you've mentioned netty, I can't avoid thinking that it may have a different setting for disabling IPv6, and that's the issue.
Also, notice how it uses sun.nio.ch.Net, instead of java.net, which again, makes me think it uses a different setting, which has also been hardcoded. (I've failed to find further details on this though).
It fails, as expected, with the expected error message:
Or course, this will happen for any address != 127.0.0.1, since there are no IPv4 addreses or routes.
@Torabi: Any updates on this?
> Unless this documentation is wrong, your sample code isn't going to accomplish anything. java.net.preferIPv4Stack is only read at VM startup time, so setting it using System.setProperty() is pointless, because the VM is already running..
Using preferIPv6Address is enough to determine if java uses IPv4 or IPv6:
My sample code uses reflection to overwrite the the value of preferIPv6Address after is has been read, hence overcoming the limitation of it being read only once. Here's how it works:
Hence, IPv6 will only be used if it has been proven to work.
I would advise against using he preferIPv4Stack flag since:
> Or maybe the documentation is flat-out wrong.
This would not surprise me coming from Oracle.
—
While I understand that there are some other issues pending, I would appreciate if this issue is given a higher priority. As the game is right now, it cannot be played in any form of multiplayer (eg: Open-to-LAN, Online, Realms, or with a dedicated VPS running a server) by users with no native-IPv4.
In other words, it's a critical issue, which prevents users with a properly working PC and network from playing the game, with absolutely no workaround. Considering that it's a product we pay for, I think I have a right to complain if there is absolutely no way for me to use it.
preferIPv4Stack alters preferIPv6Address, which causes this issue. Setting preferIPv6Address is enough to achieve the behaviour you want, and setting preferIPv4Stack cannot be undone programatically. preferIPv4Stack, by transitivity also achieves the behaviour you want, but cannot be alterned, even through reflection.
It does not. As we discussed before, the game seems to alter this setting programatically. There's still the Protocol family unavailable error.
preferIPv6Addresses is the name of the java property, preferIPv6Address is the name of the variable where the setting is stored internally. We're still talking about the same thing here. From java.net.InetAddress:
Sorry about the confusion on this one.
Again, if the source for bootstrap were made available, I'm sure I could submit a proper patch for this. I see no reason for you not to release it, since it doesn't actually contain game code or any other secrets (AFAIK).
Unlike the above commentor, I have no IPv4 addresses or routes. I've been completely unable to play a game (which I payed for, btw), for several months now.
Any idea on when this critical and fatal issue will be fixed? I kinda passes on all my holidays being completely unable to play at all.
Is there any update on this?
It's been over half a year since I, like many other users can't play multiplayer (after having paid, btw!) - and the situation only gets worse as more and more ISPs transition to IPv6. This is getting completely ridiculous, I wanted to play during the holidays with my friends, the holidays started and ended, and we could not because of code that explicitly breaks support for non-broken networks!
> I run a private cloud that only uses native IPv6. This seems like a large oversight to disable a fundamental networking protocol in this day and age.
Indeed, this issue meant the end of minecraft (forever) for those of us where our desktops and laptops only have native IPv6.
> @Daniel L: Because the problem is more complicated than it appears (read the comments on this issue, and
MC-15525), and fixing it (at least the way suggested) might very well break it for an even larger chunk of users. That isn't a non-issue for Mojang, no matter whether it's right or wrong. IPv6 support in Java was not great, though perhaps it has improved in Java 8.No, not problem is not complicated as it appear. Is main issue here, is that you did a workaround to fix this for people who had broken network settings, while breaking the game for people with their network properly set-up (in other words: I can't use a product I paid for because you prefer to satisfy people who have broken configurations!). The solution is simple, fix IPv6 and:
> Interesting, however, that you report IPv6 as working on Linux. Has anyone tested this with the new, native launcher / bootstrap? One of the barriers to getting this fixed was Mojang's hesitation to push out a new bootstrap, because they couldn't update it automatically, and it must be downloaded manually. However, they released a native installer for Windows in December/January, and are planning on doing the same for Macs in the future.
Where can I find this? The one at https://minecraft.net/download has the same sha512 as eight months ago, so there's been no change there.
> I've tested on Linux, I can connect to IPv6, but it requires me to add the address to my hosts file and than use the name rather than the address. Not ideal.
Can you elaborate further? Did you add the IPv6 of the remote game server to /etc/hosts? Minecraft completely ignores IPv6 AFAIK, what else did you do to get it to connect?
> I added it go the /etc/hosts and I believed I passed an argument for it to prefer IPv6.
What argument did you pass to the game for it to do this? AFAIK, it completely disables IPv6 on startup. Or are you just talking about the bootstrap?
> 22% of Internet users in the USA is on IPv6. This is a large group of people that you would be affecting by disabling the IPv6 Stack.
It would seem Mojang simply does not care. For two years, many of us have been completely incapable of playing online, at all, even though we paid the full price for the game.
Note that this bug is not accidental, but deliberate, as a workaround for people with broken network configurations (while breaking for other people, with no workaround possible). It would seem that not logical reasoning will make this go away soon, or ever.
Just get used to not-playing minecraft: it seems to be the only choice.
> How would you go about reproducing it, unless you have an IPv6-only internet connection?
It's quite simple to reproduce: with a dual-stack connection, disable IPv4.
You can optionally enable something like NAT64, or another transition mechanism if your server is running on IPv4-only, but since these are really transparent, they're not necessary for the purpose of analysing this ticket.
> Disabling the IPv6 stack has no effect on people who also have IPv4 access, and resolved an issue for a substantial number of customers.
From what has been described, the root cause of these issues, were misconfigured networks. Properly configuring those networks is the proper solution, and could have satisfied everyone.
Personally, I've IPv6-only, with NAT64. I don't have issues reaching hosts (except less than a dozen misconfigured servers - during a period of >2 years).
> Mojang made the decision to disable IPv6 based on a substantial volume of complaints and support requests that Minecraft no longer worked.
"volume of complaints" should not be the only factor involved. Relevancy of the complaint should be a factor too. If the root cause of a complaint is a misconfigued network (as mentioned several times around IPv6-related issues), then those issues should not be relevant to Mojang or the developers. Tell the users how to configure their network, don't break the game for others.
I paid for the game. And I can't play. Reason: Mojang prioritizes people with broken setups. This isn't an aggressive complaint, I'm trying to get a message across: I paid, and now you're saying you don't care about the fact that I cannot play the game.