assert

DEMBKOWSKI, Henryk (Henryk) hdembkowski at alcatel-lucent.com
Thu Sep 18 11:00:39 EDT 2008


Hi,

When I run tool hammer_skiplist to test new version of
cyrusdb_skiplist.c I got

root at ms02.borsuk# ./hammer_skiplist -C /etc/imapd_p.conf -n
/home/tsc/dhenryk/hammer.out
fatal error: Internal error: assertion failed: cyrusdb_skiplist.c: 739:
db->current_txn == NULL

In code I see

    724 static int lock_or_refresh(struct db *db, struct txn **tidptr)
    725 {
    726     int r;
    727
    728     assert(db != NULL && tidptr != NULL);
    729
    730     if (*tidptr) {
    731         /* check that the DB agrees that we're in this
transaction */
    732         assert(db->current_txn == *tidptr);
    733
    734         /* just update the active transaction */
    735         update_lock(db, *tidptr);
    736
    737     } else {
    738         /* check that the DB isn't in a transaction */
    739         assert(db->current_txn == NULL);
    740
    741         /* grab a r/w lock */
    742         if ((r = write_lock(db, NULL)) < 0) {
    743             return r;
    744         }
    745
    746         /* start the transaction */
    747         if (r = newtxn(db, tidptr)) {
    748             return r;
    749         }
    750     }
    751
    752     return 0;
    753 }



Is it OK. that I get such error?


Kind Regards,
Henryk


More information about the Info-cyrus mailing list