[pacman-dev] [PATCH 2/2] Backup old database before updating and restore on failure
allan at archlinux.org
Mon Dec 16 23:30:33 UTC 2019
On 17/12/19 1:21 am, Eli Schwartz wrote:
> On 12/16/19 10:05 AM, Allan McRae wrote:
>> If alpm_db_update() fails due to an invalid signature, then the system
>> is left with an unusable repo database. Instead, backup the currently
>> working database before performing the update, and restore on error.
>> Note that the calls rename and unlink are not checked for errors. If these
>> fail, there is nothing to be done anyway. It also allows for less complex
>> flow, as these function fail gracefully when passed NULL arguments.
>> Signed-off-by: Allan McRae <allan at archlinux.org>
>> That is a lot of teduim for adding ".bak" to the end of a string...
>> I'd appreciate more eyes on these changes.
> Would it help to download the db to a temporary file, and rename it on
I looked at that approach quite some time ago. The issue is things like
alpm_db_validate take a db pointer and construct paths using that. It
could be worked around by creating a temporary sync directory and
setting that in the handle, but I thought this way was easier/cleaner.
More information about the pacman-dev