<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/acquire.cc, branch 2.1.15</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.1.15</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.1.15'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2020-12-18T18:31:19Z</updated>
<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>
<entry>
<title>Fix some style warnings from cppcheck</title>
<updated>2019-11-26T11:36:46Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2019-09-13T10:01:47Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=35012abf30ec1cfc9b5ee29647d4b1e25d98e99f'/>
<id>urn:sha1:35012abf30ec1cfc9b5ee29647d4b1e25d98e99f</id>
<content type='text'>
Unused variable, std::algorithms instead of raw for-loops.
There should be no observeable difference in behaviour.

Reported-By: cppcheck
Gbp-Dch: Ignore
</content>
</entry>
<entry>
<title>Fix segfault in pkgAcquire::Enqueue() with Acquire::Queue-Mode=access</title>
<updated>2019-08-15T07:45:29Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-08-15T07:39:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9fdcaee218505710495fea35f3b8538bebeaa1f9'/>
<id>urn:sha1:9fdcaee218505710495fea35f3b8538bebeaa1f9</id>
<content type='text'>
In commit 79b1a8298, QueueName() was changed, amongst other things,
to exit early when the queue mode was single access, as single
access does not need any fancy queue name. The exit became too
early though, as Config was not initialized anymore, but the
caller was relying on it.

Fix QueueName() to always initialize Config and in Enqueue()
initialize Config with a nullptr, so if this regresses it's
guaranteed to fail harder. Also add a test case - this is
very simple, but the first and only test case for access
queue mode.

Regression-Of: 79b1a82983e737e74359bc306d9edb357c5bdd46
LP: #1839714
</content>
</entry>
<entry>
<title>Distribute host-less work based on backlog of the queues</title>
<updated>2019-07-08T11:18:31Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2019-04-27T14:13:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=79b1a82983e737e74359bc306d9edb357c5bdd46'/>
<id>urn:sha1:79b1a82983e737e74359bc306d9edb357c5bdd46</id>
<content type='text'>
Work like applying patches via rred can be performed by many concurrent
rred processes, but we can't just spawn new ones forever: We limit us to
the number of CPUs which can drive them and reuse existing ones if they
have nothing to do at the moment.

The problem arises if we have reached the limit of queues and all of
them are busy which is more likely to happen on "slow" machines with few
CPUs. In this case we opted for random distribution, but that can result
in many big files (e.g. Contents) being added to one queue while the
others get none or only small files.

Ideally we would ask the methods how much they still have to do, but
they only know that for the current item, not for all items in the
queue, so we use the filesize of the expected result.
</content>
</entry>
<entry>
<title>apt-pkg: URI: Add 'explicit' to single argument constructor</title>
<updated>2019-04-30T15:43:56Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-04-30T10:32:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=af74a9e2d55d6a9532eb3fbb9b96c65b7ddc1e4d'/>
<id>urn:sha1:af74a9e2d55d6a9532eb3fbb9b96c65b7ddc1e4d</id>
<content type='text'>
This needs a fair amount of changes elsewhere in the code,
hence this is separate from the previous commits.
</content>
</entry>
<entry>
<title>acq: worker: Move CurrentSize, TotalSize, ResumePoint to CurrentItem</title>
<updated>2019-04-30T15:40:38Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-04-29T18:05:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cccef6ca60c2775e918d964fdad1afc1dcad4d0e'/>
<id>urn:sha1:cccef6ca60c2775e918d964fdad1afc1dcad4d0e</id>
<content type='text'>
These status fields belong to the current item, move them there. This
prepares us for eventually having multiple current items.
</content>
</entry>
</feed>
