<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/acquire.cc, branch 2.5.2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.5.2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.5.2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2021-09-06T14:51:27Z</updated>
<entry>
<title>Improve error handling of cycling delayed queues</title>
<updated>2021-09-06T14:51:27Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-09-06T14:51:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e664bdcfb287e7456f084e0335b7c68bab89d6e7'/>
<id>urn:sha1:e664bdcfb287e7456f084e0335b7c68bab89d6e7</id>
<content type='text'>
When an item has been delayed and the queue is cycled to start
it, we did not properly report an error from the cycling, and
we would then fail in the assert(), causing all errors to be
lost.

Propagate the error instead and make the assert a warning.
</content>
</entry>
<entry>
<title>Properly convert PulseInterval to timeval</title>
<updated>2021-07-28T11:08:35Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-07-27T15:14:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=51ee79e385d8ccb2f32195cc01f3f9c943197603'/>
<id>urn:sha1:51ee79e385d8ccb2f32195cc01f3f9c943197603</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Convert to monotonic clock</title>
<updated>2021-07-28T11:08:35Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-07-27T14:40:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=48a7ece8d0e065240153a85089f544383e16137f'/>
<id>urn:sha1:48a7ece8d0e065240153a85089f544383e16137f</id>
<content type='text'>
This yields more accurate delays and avoids issues with clock
skew.
</content>
</entry>
<entry>
<title>acquire: Automatically reduce select() timeout as needed</title>
<updated>2021-07-28T11:08:32Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-07-13T10:21:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7e88def0548a92112f8295686c2a12379e4028be'/>
<id>urn:sha1:7e88def0548a92112f8295686c2a12379e4028be</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Implement exponential delay between retries</title>
<updated>2021-07-28T11:04:10Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-07-08T14:49:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=121ccd0e0c2612bab9ba5383d5599b54e29e4643'/>
<id>urn:sha1:121ccd0e0c2612bab9ba5383d5599b54e29e4643</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Keep URIs encoded in the acquire system</title>
<updated>2020-12-18T18:31:19Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-07-09T14:38:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e6c55283d235aa9404395d30f2db891f36995c49'/>
<id>urn:sha1:e6c55283d235aa9404395d30f2db891f36995c49</id>
<content type='text'>
We do not deal a lot with URIs which need encoding, but then we do it is
a pain that we store it decoded in the acquire system as it means we
have to decode and reencode URIs eventually which is potentially giving
us slightly different URIs.

We see that in our own testing framework while setting up redirects as
the config options are effectively double-encoded and decoded to pass
them around successfully as otherwise %2f and / in an URI are treated
the same.

This commit adds the infrastructure for methods to opt into getting URIs
send in encoded form (and returning them to us in encoded form, too) so
that we eventually do not have to touch the URIs which is how it should
be. This means though that we have to deal with methods who do not
support this yet (aka: all at the moment) for which we decode and encode
while communicating with them.
</content>
</entry>
<entry>
<title>Do not hardcode (wrong) group and mode in setup warning</title>
<updated>2020-06-06T09:26:52Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-06-06T09:17:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=83b239c7285ac7450e305643b29596396abc0b3f'/>
<id>urn:sha1:83b239c7285ac7450e305643b29596396abc0b3f</id>
<content type='text'>
Partial directories are created with 0700, but the parent is 0755, while
the error message would report 0700 for both… that isn't right and can
be pretty confusing.

Turns out that the messages aren't marked for translation, so no
unfuzzing is required &amp; we just leave it as untranslated for now.
Especially as the more detailed error strings derived from errno
are translated.

Reported-By: Wakko Warner &lt;wakko@animx.eu.org&gt;
Closes: #962310
</content>
</entry>
<entry>
<title>Fix small memory leak in MethodConfig</title>
<updated>2020-05-27T09:14:44Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-27T08:27:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1941515e1c96f9c33d63e426049d9dad5420c580'/>
<id>urn:sha1:1941515e1c96f9c33d63e426049d9dad5420c580</id>
<content type='text'>
We are leaking a d-pointer currently weighting a boolean in size and
MethodConfig is instantiated in small numbers only, so nobody will
actually notice a difference, but proper cleanup is important.

Reported-By: clang LeakSanitizer
References: 04ab37fecaf286f724bef2e0969d2b67ab5ac1b1
</content>
</entry>
<entry>
<title>Merge pkgAcquire::RunFdsSane back into RunFds</title>
<updated>2020-02-26T13:10:47Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-02-26T13:01:09Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ddc9023474f079d995e07fc1cdffb81865fa9eb2'/>
<id>urn:sha1:ddc9023474f079d995e07fc1cdffb81865fa9eb2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>acquire: Move queue startup after calling log's Start()</title>
<updated>2020-01-08T11:44:38Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-01-08T11:44:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=84176f6cde1fda522a3aad21d8238c7bd603da87'/>
<id>urn:sha1:84176f6cde1fda522a3aad21d8238c7bd603da87</id>
<content type='text'>
Startup() was checking for bad items and failing them, but
we did not actually call Start() in the log, so the log might
not be setup correctly.

This caused a crash in python-apt when items were being
failed on queue startup, as it released the GIL when Start()
is being called and re-acquires it when running callbacks.
</content>
</entry>
</feed>
