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 Cyrus-devel
mailing list