FS#40933 - [pkgstats] pkgstats attempts to use IPv4 unconditionally

Attached to Project: Arch Linux
Opened by Hugo Osvaldo Barrera (hobarrera) - Sunday, 22 June 2014, 04:50 GMT
Last edited by Bartłomiej Piotrowski (Barthalion) - Saturday, 26 July 2014, 10:54 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Pierre Schmitz (Pierre)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
pkgstats tries to use IPv4 (it actually passes the -4 flag to curl).

This is wrong, since it will fail on any system that does not have native IPv4 connectivity (and there is no valid reason for force IPv4, since pkgstats operates on a higher layer).
It doesn't matter if the remote host is only-IPv4-capable, since NAT64 will get around that.


Additional info:
* package version(s):
pkgstats 2.3-5
* config and/or log files etc.
all the defaults

Steps to reproduce:
$ pkgstats
Collecting data...
Submitting data...
curl: (7) Failed to connect to www.archlinux.de port 443: No route to host
Sorry, data could not be sent.
This task depends upon

Closed by  Bartłomiej Piotrowski (Barthalion)
Saturday, 26 July 2014, 10:54 GMT
Reason for closing:  Fixed
Comment by Pierre Schmitz (Pierre) - Saturday, 12 July 2014, 11:51 GMT
Currently I can only support IPv4 due to lack of IPv6 on the geoip module used on the server side. I'll need to switch to a different solution to make this work with IPv6.
Comment by Hugo Osvaldo Barrera (hobarrera) - Saturday, 12 July 2014, 14:53 GMT
Maybe geoip can be skipped for IPv6-only users?

Having users being unable to submit stats has a worse effect than merely having users for which the geographic data is unknown.
It'll also bias the data, since current data only applies to users with native IPv4 connectivity, so packages used/required by IPv6-only users will see zero installations, etc.

Finally, my network has NAT64, as mentioned before, so if the server is only reachable via IPv4, it'll see the request comming from the IPv4 address my network is routed to. (in case you don't know, NAT64 maps IPv6->IPv4 at a router/ISP level. A whole IPv6 prefix is left aside and used to mapped all of the IPv4 internet, while DNS64 handles the translation).
If it's truly a server issue, then remove all AAAA records, and make the client work over IPv4 OR IPv6. The server will still see all requests comming via IPv4 (and most IPv6-only hosts still have some transition mechanism to make that communication possible).

Loading...