APT

apt:main

Last commit made on 2021-07-29
Get this branch:
git clone -b main https://git.launchpad.net/apt

Branch merges

Branch information

Name:
main
Repository:
lp:apt

Recent commits

6442107... by Julian Andres Klode

Release 2.3.7

410a6d9... by Julian Andres Klode

Merge branch 'pu/fetch-at' into 'main'

Main-process-side implementation of retry back-off

See merge request apt-team/apt!181

3ca5e18... by Julian Andres Klode

tests (retry-downloads): Avoid delay in second test

This delay of 4+2+1=7 seconds in unnecessary.

70ee966... by Julian Andres Klode

Enhance test to check time spent

This is subject to clock skew, unfortunately, as we cannot read
monotonic time in shell.

We check for >=5s out of the 7s it should take to reduce the
risk of skew a bit.

4001af8... by Julian Andres Klode

Add support for a maximum delay and testing of delay

This is very basic support on the testing side, we just test
the debug output but not how long it actually took. Would be
nice to check time really.

51ee79e... by Julian Andres Klode

Properly convert PulseInterval to timeval

Fix the typo, and use the helper function to convert it, so we
do not end up with 5 seconds encoded as 0s and 5*10^6 microseconds.

48a7ece... by Julian Andres Klode

Convert to monotonic clock

This yields more accurate delays and avoids issues with clock
skew.

7e88def... by Julian Andres Klode

acquire: Automatically reduce select() timeout as needed

If there is an item with fetchAfter at the top of a queue,
reduce sleep() timeout so we can detect it and start it,
by calling Cycle() on the queue in the next iteration.

For some reasons we have to call select() with a 0s timeout
if we just marked an item as ready. Oh well.

Previous versions of this patch only called global Bump() after a timeout
from select(); this was unfortunately incorrect - it meant that we
never bumped a queue that did not start yet while other queues were
running, potentially significantly delaying retries.

121ccd0... by Julian Andres Klode

Implement exponential delay between retries

Add a new Item field called FetchAfter, which determines the earliest
time the item should be fetched at. Adjust insertion into queue to
take it into account alongside priority, and only fill pipelines
with items that are ready.

363e3a4... by Julian Andres Klode

pkgAcqIndex::CommonFailed: Set StatIdle before calling Init()

Enqueuing by calling Init(), and then resetting the status to
idle means that the item can get enqueued twice if we call
Cycle() from inside pkgAcquire::Run().

Reset the status to StatIdle before calling Init()