[Bug 1308200] Re: apt-get not RFC6555 (Happy Eyeballs) compliant

Julian Andres Klode 1308200 at bugs.launchpad.net
Wed Jan 3 15:36:51 UTC 2018


Fixed in the Git repository. This will be part of 1.6~alpha6 very
shortly

You can see the commit message below, and you can check the diff of the
fix at:

    https://anonscm.debian.org/cgit/apt/apt.git/diff/?id=3bbd328
---
commit 3bbd328396745d0dd6c5585935040082a2c41e3e
Author: Julian Andres Klode <jak at debian.org>
Date:   Tue Jan 2 22:15:50 2018 +0100

    Add rapid "happy eyeballs" connection fallback (RFC 8305)

    Try establishing connections in alternating address families in
    rapid intervals of 250 ms, adding more connections to the wait
    list until one succeeds (RFC 8305, happy eyeballs 2).

    It is important that WaitAndCheckErrors() waits until it has
    a successful connection, a time out, or all connections failed
    - otherwise the timing between tries might be wrong, and the
    final long wait might exit early because one connection failed
    without trying the others. Timing wise, this only works correctly
    on Linux, as select() counts down there. But we rely on that in
    some other places too, so this is not the time to fix that.

    Timeouts are only reported in the final long wait - the short
    inner waits are expected to time out more often, and multiple
    times, we do not want to report them.

    Closes: #668948
    LP: #1308200
    Gbp-Dch: paragraph

** Changed in: apt (Ubuntu)
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1308200

Title:
  apt-get not RFC6555 (Happy Eyeballs) compliant

Status in apt package in Ubuntu:
  Fix Committed
Status in apt package in Debian:
  New

Bug description:
  Disclaimer: I'm not sure if this is a bug, or a feature. If it is not
  a bug, I think reporting this issue is useful anyway because it causes
  long delays in apt-get install / apt-get update.

  On dual-stack setups (IPv4 and IPv6), if one of the two paths is slow
  or non-functional at all, the overall application experience can be
  slow.

  An application that uses a Happy Eyeballs (RFC 6555) algorithm checks
  both IPv4 and IPv6 connectivity (with a preference for IPv6) and uses
  the first connection that is returned. This has been implemented in,
  for example, Chrome and Firefox.

  apt / apt-get does not have this functionality. Due to this lack, a
  apt-get run can be very slow: a "sudo apt-get update" can take up to
  15 minutes on a system with a non-functional IPv6 connection, even if
  the system is already uptodate, which normally only takes 15 seconds
  or so.

  "man apt.conf" shows this info:

         ForceIPv4
             When downloading, force to use only the IPv4 protocol.

         ForceIPv6
             When downloading, force to use only the IPv6 protocol.

  So no feature "RFC6555" or "HappyEyeballs".

  An ugly work-around is this: Create a file
  /etc/apt/apt.conf.d/99timeout with these contents

  Acquire::http::Timeout "2";
  Acquire::ftp::Timeout "2";

  That way, after 2 seconds the other path is chosen.

  $ lsb_release -rd
  Description:	Ubuntu 14.04 LTS
  Release:	14.04

  ProblemType: Bug
  DistroRelease: Ubuntu 14.04
  Package: apt 1.0.1ubuntu2
  ProcVersionSignature: Ubuntu 3.13.0-24.46-generic 3.13.9
  Uname: Linux 3.13.0-24-generic x86_64
  ApportVersion: 2.14.1-0ubuntu2
  Architecture: amd64
  CurrentDesktop: Unity
  Date: Tue Apr 15 20:26:25 2014
  InstallationDate: Installed on 2014-04-10 (4 days ago)
  InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Daily amd64 (20140410)
  SourcePackage: apt
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1308200/+subscriptions



More information about the foundations-bugs mailing list