https://bugs.winehq.org/show_bug.cgi?id=44895
Bug ID: 44895 Summary: League Of Legends: Unable to log in if behind OpenWRT based router Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: mail+wine@m-reimer.de Distribution: ---
I don't know how much this really depends on OpenWRT, but that's the way how I can 100% reproduce this bug.
I run LoL with latest wine-staging. I installed using this script: https://github.com/GloriousEggroll/leagueoflegends-linux
So far I always used AVM routers. Fritz!Box 5050 first and as my ISP now uses Annex-J, I had to switch to a Fritz!Box 7270.
With these routers, I never had any problem with logging in from the League client.
Now I wanted to try using a 100% open source router based on OpenWRT. As soon as I do so, connection to the LoL login servers fails.
My brother was able to reproduce this problem on his PC and he also has Windows installed. If he boots into Windows, login works. On Linux with Wine, login doesn't work.
So this is a Wine problem "somehow" as it works on Windows, but it may also have something to do with the router or network infrastructure as it works on Wine if a proprietary router is used.
I can provide more info if required.
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #1 from mail+wine@m-reimer.de --- Created attachment 60968 --> https://bugs.winehq.org/attachment.cgi?id=60968 Error message with wrong password entered
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #2 from mail+wine@m-reimer.de --- Created attachment 60969 --> https://bugs.winehq.org/attachment.cgi?id=60969 Error message if valid password was entered (behind OpenWRT router)
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #3 from mail+wine@m-reimer.de --- I've added two screenshots. It is interesting, that the League client immediately detects a wrong password. I just changed the last character and hit "Login". The client then immediately tells me that my password is wrong.
Trying to login with the valid password immediately after that, again, results in a long "hang" (maybe some kind of timeout) and then I get the error message in the second screenshot.
So different servers/connections seem to be involved. And the League client already knows that my password is correct before the "hangup" happens.
All this does not happen with "real Windows" from exactly the same PC behind exactly the same router.
https://bugs.winehq.org/show_bug.cgi?id=44895
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzhang@codeweavers.com
--- Comment #4 from Zhiyi Zhang zzhang@codeweavers.com --- This is probably not related to wine but linux tcp stack.
Debugging this problem require network traffic to be captured. I recommend WireShark.
A possible cause would be Linux TCP timestamping. You can try "echo 0 > /proc/sys/net/ipv4/tcp_timestamps" with root access to disable timestamping temporarily and see if it helps.
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #5 from Zhiyi Zhang zzhang@codeweavers.com --- If it helps, the server or the router may have tcp fast recycle options enabled. Check tcp_tw_reuse and tcp_tw_recycle on sysctl to ensure they are turned off.
https://stackoverflow.com/questions/8893888/dropping-of-connections-with-tcp...
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #6 from mail+wine@m-reimer.de --- Thank you for your response. I could do network capturing for the "Linux side" but if this is also needed for the "Windows side", I would have to ask my brother and a beginners guide on how to capture the "right suff" would really help.
I've already disabled "tcp timestams" on both, my client PC and the router itself, but I already had the "sysctl" settings in mind. It *may* be possible that the "fix" is hidden somewhere in these settings.
Whatever it is, also "fixes" my TCP packets coming from my Linux PC and no "fixing" is needed if "real Windows" is used.
The Fritz!Box router is actually based on Linux. It has some proprietary components to do the routing but it has to use the Linux TCP stack at least for some parts of the routing process.
At least the Fritz!Box 5050 can be accessed via telnet easily. As soon as I have the required time, I'll try to dump all the sysctl settings on the Fritz!Box Linux and compare them to the OpenWRT settings.
https://bugs.winehq.org/show_bug.cgi?id=44895
jaapbuurman@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jaapbuurman@gmail.com
--- Comment #7 from jaapbuurman@gmail.com --- I have the exact same issue. Same computer works fine running my Windows partition. But it doesn't work when running Linux. It also correctly identifies when my password has been entered incorrectly. But when I use the correct password it also fails to connect to the login queue. I'm also behind an OpenWRT/Lede router.
I'm not very good at inspecting packets, but if you want to compare the packets when using Windows versus the ones when using Linux, you can install tcpdump on your router:
opkg update opkg install tcpdump
tcpdump can write the packets to the console, but you can also write them to file and analyze them with the Wireshark GUI if you want afterwards.
https://bugs.winehq.org/show_bug.cgi?id=44895
zepar stefanfunk1998@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefanfunk1998@gmail.com
--- Comment #8 from zepar stefanfunk1998@gmail.com --- i can confirm that his bug exists, and is affecting a handful of people on the r/leagueoflinux subreddit, including myself, and have the exact same symptoms, including the client being able to instantly recognize, if you password is incorrect. i myself can also confirm that i can normally log in via my windows laptop in the same network i can also confirm that the problem consisted *through* an entire reinstall i did on my system a week ago, which left me quite flabbergasted
https://bugs.winehq.org/show_bug.cgi?id=44895
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #9 from mail+wine@m-reimer.de --- Maybe this should also be added to the OpenWRT bugtracker as clearly OpenWRT also does "something" that makes LoL fail to connect the servers.
I dumped the sysctl settings of my AVM Fritz!Box 5050 and tried to change as much settings as possible of my OpenWRT router to the AVM settings. So far without success.
In the meantime, my brother replaced his OpenWRT router with a selfmade router (Banana Pi, second LAN via USB) installed with Debian and with a selfmade Firewall settings on it. With this setup, he also doesn't have the LoL login issue if run via Wine.
So "something" with OpenWRT is the reason here. They did "some" setting that causes LoL to fail. I just still don't know if this is some kernel setting or a packet filter setting that causes this.
Next thing I'll try is to change the OpenWRT sysctl settings to his Debian sysctl settings. Unfortunately I can't port his Firewall to my OpenWRT router to test this as he didn't use netfilter for his rules.
For me this is not highly critical. I would prefer to use my OpenWRT box, but the proprietary router does its job and maybe at some point a solution for this problem is found...
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #10 from jaapbuurman@gmail.com --- We aren't completely sure where the bug is located, but we found a workaround at least. Check this topic for more information: https://forum.lede-project.org/t/solved-strange-wine-league-of-legends-lede-...
I will file a bug report wherever needed as soon as we track down what's causing this issue.
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #11 from jaapbuurman@gmail.com --- I found out the source of the problem. For some reason, Riot's server doesn't accept fragmented packets. On Windows, the League of Legends launcher sends out a large packet with a Don't Fragment (DF) flag set, which forces the path MTU discovery protocol to tone down the MTU. As can be seen in the following packet capture:
08:40:57.627787 IP (tos 0x0, ttl 128, id 13958, offset 0, flags [DF], proto TCP (6), length 2731) 192.168.1.154.49972 > 104.16.21.24.443: Flags [P.], cksum 0x4a08 (incorrect -> 0xa8db), seq 603:3294, ack 3193, win 255, length 2691 08:40:57.628062 IP (tos 0xc0, ttl 64, id 59635, offset 0, flags [none], proto ICMP (1), length 576) 192.168.1.1 > 192.168.1.154: ICMP 104.16.21.24 unreachable - need to frag (mtu 1492), length 556 IP (tos 0x0, ttl 128, id 13958, offset 0, flags [DF], proto TCP (6), length 2731)
However, on Wine, the same large packet does not have the DF flag set:
08:54:48.047494 IP (tos 0x0, ttl 64, id 45537, offset 0, flags [none], proto TCP (6), length 2731) 192.168.1.153.56746 > 104.16.20.24.443: Flags [P.], cksum 0x4907 (incorrect -> 0x2378), seq 603:3294, ack 3193, win 278, length 2691
So in this case, the packet simply gets fragmented and the router doesn't let the PC know it needs to tone down the MTU. For people like me, that have their LAN with the standard MTU of 1500 and an internet connection over PPPOE with an effective MTU of 1492, this is an issue. The subsequent packets are then send with an MTU 1500, fragmented because the WAN interface only does 1492, and Riot's servers do not like that. For people that also have a MTU of 1500 on the WAN interface, this bug doesn't trigger.
A workaround is to simply decrease the MTU on the LAN interface on the Linux machine to same value as the MTU on the WAN interface of the router, in my case 1492. In order to fix this bug, Wine should set the DF flag on the large packet so that it can discover the correct MTU setting automatically.
For a full discussion of this bug plus better formatted packet captures, please view the following topic: https://forum.lede-project.org/t/solved-strange-wine-league-of-legends-lede-...
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #12 from Hans Leidekker hans@meelstraat.net --- Created attachment 61336 --> https://bugs.winehq.org/attachment.cgi?id=61336 proposed fix
Can you try this patch?
https://bugs.winehq.org/show_bug.cgi?id=44895
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |winsock
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #13 from jaapbuurman@gmail.com --- I am not very familiar with compiling Wine and applying patches. I will look into this now, but expect it to take a while before I am able to report back :) If anyone else is able to test as well, that would be appreciated.
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #14 from jaapbuurman@gmail.com --- I managed to get Wine to compile in its vanilla state. I would now like to apply and test your proposed patch.
Is there an easy way to download your patch as a .patch file and to apply it automatically? I could of course incorporate these changes manually, but surely there must be easier/better ways.
Could somebody point me into the right direction for applying patches? Thank you very much in advance :)
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #15 from jaapbuurman@gmail.com --- Nevermind. I managed to download and apply the patch. Compiling now. Will report back my results.
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #16 from mail+wine@m-reimer.de --- I've also started compiling. But this will take some time.
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #17 from jaapbuurman@gmail.com --- My self-compiled Wine version crashes when trying to launch LoL. I'll see whether I can fix this issue. Not sure what's wrong.
https://bugs.winehq.org/show_bug.cgi?id=44895
--- Comment #18 from mail+wine@m-reimer.de --- My build has finished and I've installed my patched package.
I also got sure that my LAN MTU hack is disabled and double-checked with "ip addr".
If I launch LoL with the wine-staging version which has the "proposed fix" patch activated, then I'm able to log in without any issues even if the OpenWRT router is used.
So for me: This patch definitively fixes the issue.
The only thing that is left and really makes playing LoL a pain for me is: https://bugs.winehq.org/show_bug.cgi?id=45145
https://bugs.winehq.org/show_bug.cgi?id=44895
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |6d6b4bffb3f619ae298669b8887 | |75350223e281f Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED
--- Comment #19 from Hans Leidekker hans@meelstraat.net --- Fixed with 6d6b4bffb3f619ae298669b888775350223e281f. Thanks all for your help!
https://bugs.winehq.org/show_bug.cgi?id=44895
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |3.5 CC| |focht@gmx.net
https://bugs.winehq.org/show_bug.cgi?id=44895
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.8.
https://bugs.winehq.org/show_bug.cgi?id=44895
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |3.0.x
https://bugs.winehq.org/show_bug.cgi?id=44895
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|3.0.x |---
--- Comment #21 from Michael Stefaniuc mstefani@winehq.org --- Removing the 3.0.x milestone from bugs included in 3.0.3.