~racb/git-ubuntu:retry-db-read-timeouts

Last commit made on 2020-09-16
Get this branch:
git clone -b retry-db-read-timeouts https://git.launchpad.net/~racb/git-ubuntu
Only Robie Basak can upload to this branch. If you are Robie Basak please log in for upload directions.

Branch merges

Branch information

Name:
retry-db-read-timeouts
Repository:
lp:~racb/git-ubuntu

Recent commits

7afdac0... by Robie Basak

Retry database reads on lock timeouts

The broker has been crashing when the system is under heavy I/O load.
This happens when we get a sqlite3 timeout ("Database is locked") when
executing a "SELECT", as opposed to the earlier "BEGIN DEFERRED".
Reading the docs, this is expected behaviour, and we need to be retrying
the "SELECT" itself rather than the "BEGIN DEFERRED".

A retry is appropriate because there is no appropriate amount of time
after which we should time out. We want to block until the system is
able to process our database query, just like any other command.
Deadlocks are prevented by use of the complemetary _write_lock()
decorator.

I've not added a matching test for this change. The likely area where
this could go wrong is in my understanding of sqlite3's behaviour in
various edge cases, but I can only test that my code meets my
expectation of sqlite3's behaviour rather than what it actually does.

e20be17... by Robie Basak

Add pkgbinarymangler to blacklist

This package is affected by LP: #1858653, a workaround for which is
deferred for now.

95187cf... by Robie Basak

Add some missing docstrings

4ff726d... by Robie Basak

Fix get_all_reimport_tags() prefix search

Prefix matching 'importer/reimport/import/1' will incorrectly match
'importer/reimport/import/11/0', so the match must include the trailing
'/'.

This fixes the case where an attempted import of version '1'
accidentally finds the reimport tags for version '11' if they happen to
exist.

909d723... by Robie Basak

Add test for get_all_reimport_tags()

This test fails due to a bug which will be fixed in the next change, so
is marked xfail for now.

df5e594... by Robie Basak

Fix some golang whitelist source package names

These packages do not follow the standard way to name golang source
packages and do not exist. Adjust them to match their real names in the
archive.

d87db33... by Robie Basak

Re-enable packages that were being reimported

These packages have been successfully reimported now, so they can be
removed from the blacklist to resume normal operation.

a5071ba... by Robie Basak

Remove all patch overrides

This haven't been active since patch override support was removed in
git-ubuntu in commit 806eaea (from Nov 2016).

28d557b... by Robie Basak

Remove all parent overrides

These should no longer be necessary since we changed the algorithm to
determine parents.

The code supporting parent overrides remains for now, for less
disruption to the code base as we near 1.0 and in case this change needs
to be reverted. If successful then the supporting code can be removed at
some point subsequent to the 1.0 release.

0a0c014... by Robie Basak

Remove all pull overrides

These should no longer be necessary due to Launchpad having been fixed
(LP #1881598 and others).

The code supporting pull overrides remains for now, for less disruption
to the code base as we near 1.0 and in case this change needs to be
reverted. If successful then the supporting code can be removed at some
point subsequent to the 1.0 release.