in dcrpm/dcrpm.py [0:0]
def call_verify_tables(self):
# type: () -> bool
"""
Because rpmutil.verify_tables requires a different way of exception
handling (i.e. if a db_verify fails on one of the tables, we might need
to kill the .dbenv.lock pids before running rpm --rebuilddb), we wrap
the call with this method.
"""
try:
self.rpmutil.verify_tables()
self.logger.info("Verify tables OK")
return True
except DcRPMException:
# db_verify of one of the tables failed, so recover, then rebuild.
# Let any other exceptions bubble up as needed to the main run loop.
# Not great, but matches the original C++ dcrpm.
self.run_recovery()
self.run_rebuild()
return False