[Rpm-maint] [rpm-software-management/rpm] Rpm query causes corruption in the file-backed mmaped bdb regions (#232)
notifications at github.com
Mon Jun 12 10:58:35 UTC 2017
Once a dbenv is damaged for whatever reason (including reboots, segfaults, bugs, whatever), all future accesses are going to report DB_RUNRECOVERY.
The right fix when DB_RUNRECOVERY is returned: (drum roll please) to run a recovery and repeat the open once.
RPM hysterically (I don't known the current rpm.org implementation, but am about to look) also reopens an rpmdb/dbenv to achieve RDONLY -> RDWR, and unlinks dbenv files (trusting that the .dbenv lock is sufficient protection.
Both the reopen/removal open race windows, where there are no locks held (except .dbenv.lock) because the dbenv is closed, or because the dbenv cannot be shared.
The approaches using DB_PRIVATE, or not using a dbenv as non-root, are all equivalent to not locking.
Off to look at sources and view "endless row of bugs" with BDB ...
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Rpm-maint