[MDEV-8669] MTR client connections on Windows became much slower Created: 2015-08-24 Updated: 2015-11-05 Resolved: 2015-11-05 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Tests |
| Affects Version/s: | 10.0, 10.1 |
| Fix Version/s: | 10.0.23 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Vladislav Vaintroub |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Sprint: | 10.1.9-2 | ||||||||
| Description |
|
On 10.0 commit aad8667f8a4e2a26652494b29ee6c12824865ac8 the test goes almost instantly:
On 10.0 commit a453a280403faef3377db0441560c57b4ae1235b it takes much much longer:
Also, the complete test run on win64-release2 seems to take twice as much as it used to, ~3:30 vs 1:40. |
| Comments |
| Comment by Vladislav Vaintroub [ 2015-10-29 ] |
|
This is a side-effect of the fix for the client tries to connect to addresses returned by getaddrinfo() , in the order in which this function returns IP addresses. So, getaddrinfo gives 2 addresses for localhost, the IPv6 and IPv4, in this order. Prior to |
| Comment by Sergei Golubchik [ 2015-10-29 ] |
|
So, what could the fix be? Can we just tell the client to connect to IPv4 address, like --host=127.0.0.1 ? |
| Comment by Vladislav Vaintroub [ 2015-10-29 ] |
|
There would improve the speed, in general case. For example we could change fix_host() in lib/My/ConfigFactory.pm to return "127.0.0.1" rather than "localhost" . Connections that are done within tests itself, ánd reference localhost, like connect(con1,localhost,root,,); would still be somewhat slower. Maybe this is not a big deal. Maybe adding --bind-address=* to the server options on Windows would help as well. On the other hand, perhaps it is possible to fix mtr to ignore the warnings from |
| Comment by Sergei Golubchik [ 2015-10-29 ] |
|
Ignoring warnings from Specifying --bind-address=* on Windows, again, would be fine, but at the moment my.cnf files don't have per-os sections and mtr my.cnf templates are not per-os either. Still, we can have fix_bind() function that will return * for Windows and 127.0.0.1 otherwise. That should be easy to do. |