<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/acquire.cc, branch 2.0.2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.0.2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.0.2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2020-02-26T13:10:47Z</updated>
<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>
<entry>
<title>Don't limit cpu-limited queues to at most 10</title>
<updated>2019-04-16T10:59:54Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2019-04-16T10:53:09Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f426580b9964a15fbb2074aee6d5fb61b5e45ee2'/>
<id>urn:sha1:f426580b9964a15fbb2074aee6d5fb61b5e45ee2</id>
<content type='text'>
Queues for processes like rred are not created by hostname but we
spawn at most CPU*2 queues to place items in. The problem is that we
then proceeded to limit it to at most 10 queues (via QueueHost::Limit)
again at the end of the method so that all items (after the first 10
queues are busy) are forcibly placed into a generic catch-all instance
which is bad because we don't keep all CPUs we have available busy and
worse we end up sheduling the most work to a single one while random
distribution was intended.
</content>
</entry>
<entry>
<title>acquire: Remove deprecated pkgAcquire::Setup() function</title>
<updated>2019-02-26T15:31:20Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-02-26T11:44:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a9182c8f789e7d19def3d6e178cb02bd9a46aa24'/>
<id>urn:sha1:a9182c8f789e7d19def3d6e178cb02bd9a46aa24</id>
<content type='text'>
</content>
</entry>
<entry>
<title>acquire: Fold pkgAcquireStatus2 into pkgAcquireStatus</title>
<updated>2019-02-26T15:31:20Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-02-26T11:42:42Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=91e1f7d49830289d8e9d3fdd7ebbe7544a9838b8'/>
<id>urn:sha1:91e1f7d49830289d8e9d3fdd7ebbe7544a9838b8</id>
<content type='text'>
Clean up the code, make it neat, lalala
</content>
</entry>
</feed>
