teknoraver / rpms / rpm

Forked from rpms/rpm 4 months ago
Clone
Blob Blame History Raw
commit 4f7fe5e668e9cd8ba62e700f6f3fdaf2256306d8
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Feb 21 10:55:02 2011 +0200

    Fix db cursor double-open, causing yum to hang on reinstall (RhBug:678644)
    - A refactoring error in commit 475391dc581bf5ba72b6d59d16d875505b45bd51
      causes us to open a double cursor on the Package db. This doesn't
      seem to affect much in rpm context, but Yum is being naughty and holding
      two different handles to the same db simultaneously, which causes
      to deadlock on trying to lock the same record twice from two different
      handles .. or something to that effect.

diff --git a/lib/rpmdb.c b/lib/rpmdb.c
index dc6d7a7..eb7a49d 100644
--- a/lib/rpmdb.c
+++ b/lib/rpmdb.c
@@ -2331,7 +2331,6 @@ static int updatePackages(dbiIndex dbi, unsigned int hdrNum, DBT *hdr)
 	DBT data;
 
 	memset(&data, 0, sizeof(data));
-	xx = dbiCopen(dbi, &dbcursor, DB_WRITECURSOR);
 	rc = dbiGet(dbi, dbcursor, &key, &data, DB_SET);
 	if (rc) {
 	    rpmlog(RPMLOG_ERR,