Hi, as seen in Jans mail we are analyzing fastbits memory usage a bit more in depth.
We have a case where we first select a complete partition into memory and then
conduct several subselects on it.
It seems there are some locking bugs somewhere inside fastbit which result in
a locked filemanager::clear().
Simplified testcase attached including helgrind logs:
somedata.log:
x.cc:
in_memory_select=tab->select("a,b,c","c IN (1)");
alldata.log:
x.cc:
in_memory_select=tab->select("a,b,c","c IN (1,2)");
(will select all rows).
As you can see in alldata.log there are multiple locking errors and the
"fileManager::clear -- completed with xx" message is completely missing. When
increasing fastbits loglevel you will see that it is locked (as indicated by
helgrind).
Any idea what is happening there?
Kind regards,
Andreas Streichardt
==9484== Helgrind, a thread error detector ==9484== Copyright (C) 2007-2009, and GNU GPL'd, by OpenWorks LLP et al. ==9484== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==9484== Command: ./x ==9484== Completed construction of an ibis::part named data 4 rows and 3 columns ibis::liga -- constructed table T-data (a simple container of data partition data) from a partition with 4 rows and 3 columns countQuery::evaluate -- Select count(*) From data Where c == 1 --> 3 countQuery::evaluate -- duration: 0.128007 sec(CPU), 0.126225 sec(elapsed) ibis::bord::part constructed in-memory data partition WU6l1c -- table::select(1 data partition, a,b,c, qExpr @0x5131f10) with 3 rows and 3 columns countQuery::evaluate -- Select count(*) From WU6l1c Where b IN (1, 2) --> 2 countQuery::evaluate -- duration: 0.012 sec(CPU), 0.0125625 sec(elapsed) ibis::bord::part constructed in-memory data partition Ywjood -- table::select(1 data partition, a,b,c, qExpr @0x5133030) with 2 rows and 3 columns CLEANUP DELETE SELECT ON SELECT fileManager::clear -- completed with 24 bytes of storage remain in memory after removing all managed objects DELETE IN MEMORY SELECT DELETE TAB DELETE PARTITION ==9484== Thread #1 is the program's root thread ==9484== ==9484== Thread #1: lock order "0x512CCD8 before 0x512CCF8" violated ==9484== at 0x40275A4: pthread_rwlock_wrlock (hg_intercepts.c:1368) ==9484== by 0x4945F3B: ibis::column::~column() (column.h:541) ==9484== by 0x45CC126: ibis::part::~part() (part.cpp:557) ==9484== by 0x804A9B0: main (in /home/mop/tmp/garten/x) ==9484== Required order was established by acquisition of lock at 0x512CCD8 ==9484== at 0x40275A4: pthread_rwlock_wrlock (hg_intercepts.c:1368) ==9484== by 0x492D209: ibis::column::loadIndex(char const*, int) const (column.h:541) ==9484== by 0x492C18F: ibis::column::indexLock::indexLock(ibis::column const*, char const*) (column.cpp:10586) ==9484== by 0x494E833: ibis::column::evaluateRange(ibis::qContinuousRange const&, ibis::bitvector const&, ibis::bitvector&) const (column.cpp:5077) ==9484== by 0x45C3421: ibis::part::evaluateRange(ibis::qContinuousRange const&, ibis::bitvector const&, ibis::bitvector&) const (part.cpp:3190) ==9484== by 0x4D2C074: ibis::countQuery::doEvaluate(ibis::qExpr const*, ibis::bitvector const&, ibis::bitvector&) const (countQuery.cpp:872) ==9484== by 0x4D2EF4E: ibis::countQuery::evaluate() (countQuery.cpp:290) ==9484== by 0x4B1D315: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3838) ==9484== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9484== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9484== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9484== followed by a later acquisition of lock at 0x512CCF8 ==9484== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9484== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9484== by 0x492D4BB: ibis::column::loadIndex(char const*, int) const (column.h:506) ==9484== by 0x492C18F: ibis::column::indexLock::indexLock(ibis::column const*, char const*) (column.cpp:10586) ==9484== by 0x494E833: ibis::column::evaluateRange(ibis::qContinuousRange const&, ibis::bitvector const&, ibis::bitvector&) const (column.cpp:5077) ==9484== by 0x45C3421: ibis::part::evaluateRange(ibis::qContinuousRange const&, ibis::bitvector const&, ibis::bitvector&) const (part.cpp:3190) ==9484== by 0x4D2C074: ibis::countQuery::doEvaluate(ibis::qExpr const*, ibis::bitvector const&, ibis::bitvector&) const (countQuery.cpp:872) ==9484== by 0x4D2EF4E: ibis::countQuery::evaluate() (countQuery.cpp:290) ==9484== by 0x4B1D315: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3838) ==9484== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9484== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9484== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9484== ==9484== ==9484== For counts of detected and suppressed errors, rerun with: -v ==9484== Use --history-level=approx or =none to gain increased speed, at ==9484== the cost of reduced accuracy of conflicting-access information ==9484== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
==9476== Helgrind, a thread error detector ==9476== Copyright (C) 2007-2009, and GNU GPL'd, by OpenWorks LLP et al. ==9476== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==9476== Command: ./x ==9476== ==9476== Thread #1 is the program's root thread ==9476== ==9476== Thread #1: lock order "0x4E4FEA0 before 0x4E4FE80" violated ==9476== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9476== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9476== by 0x45F2F7F: ibis::util::mutexLock::mutexLock(pthread_mutex_t*, char const*) (util.h:634) ==9476== by 0x4AE3B2F: ibis::fileManager::getFile(char const*, ibis::fileManager::storage**, ibis::fileManager::ACCESS_PREFERENCE) (fileManager.cpp:771) ==9476== by 0x492CB40: ibis::column::getRawData() const (column.cpp:815) ==9476== by 0x492AFF7: ibis::column::getValuesArray(void*) const (column.cpp:747) ==9476== by 0x496544E: long ibis::column::selectValuesT<short>(ibis::bitvector const&, ibis::array_t<short>&) const (column.cpp:4108) ==9476== by 0x49313F3: ibis::column::selectShorts(ibis::bitvector const&) const (column.cpp:1114) ==9476== by 0x4B1DC58: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3917) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== Required order was established by acquisition of lock at 0x4E4FEA0 ==9476== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9476== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9476== by 0x45F2F7F: ibis::util::mutexLock::mutexLock(pthread_mutex_t*, char const*) (util.h:634) ==9476== by 0x4AE3B2F: ibis::fileManager::getFile(char const*, ibis::fileManager::storage**, ibis::fileManager::ACCESS_PREFERENCE) (fileManager.cpp:771) ==9476== by 0x492CB40: ibis::column::getRawData() const (column.cpp:815) ==9476== by 0x492AFF7: ibis::column::getValuesArray(void*) const (column.cpp:747) ==9476== by 0x496544E: long ibis::column::selectValuesT<short>(ibis::bitvector const&, ibis::array_t<short>&) const (column.cpp:4108) ==9476== by 0x49313F3: ibis::column::selectShorts(ibis::bitvector const&) const (column.cpp:1114) ==9476== by 0x4B1DC58: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3917) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== followed by a later acquisition of lock at 0x4E4FE80 ==9476== at 0x40276DF: pthread_rwlock_rdlock (hg_intercepts.c:1415) ==9476== by 0x4AE3B4D: ibis::fileManager::getFile(char const*, ibis::fileManager::storage**, ibis::fileManager::ACCESS_PREFERENCE) (fileManager.h:499) ==9476== by 0x492CB40: ibis::column::getRawData() const (column.cpp:815) ==9476== by 0x492AFF7: ibis::column::getValuesArray(void*) const (column.cpp:747) ==9476== by 0x496544E: long ibis::column::selectValuesT<short>(ibis::bitvector const&, ibis::array_t<short>&) const (column.cpp:4108) ==9476== by 0x49313F3: ibis::column::selectShorts(ibis::bitvector const&) const (column.cpp:1114) ==9476== by 0x4B1DC58: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3917) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== Completed construction of an ibis::part named data 4 rows and 3 columns ibis::liga -- constructed table T-data (a simple container of data partition data) from a partition with 4 rows and 3 columns countQuery::evaluate -- Select count(*) From data Where c IN (1, 2) --> 4 countQuery::evaluate -- duration: 0.108007 sec(CPU), 0.108243 sec(elapsed) ibis::bord::part constructed in-memory data partition WU6l1c -- table::select(1 data partition, a,b,c, qExpr @0x5131f10) with 4 rows and 3 columns countQuery::evaluate -- Select count(*) From WU6l1c Where b IN (1, 2) --> 3 countQuery::evaluate -- duration: 0.008001 sec(CPU), 0.0100214 sec(elapsed) ibis::bord::part constructed in-memory data partition WRoZr1 -- table::select(1 data partition, a,b,c, qExpr @0x512e318) with 3 rows and 3 columns CLEANUP DELETE SELECT ON SELECT ==9476== Thread #1: lock order "0x4E4FEA0 before 0x4E4FE80" violated ==9476== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9476== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9476== by 0x4ADC0FC: ibis::fileManager::removeCleaner(ibis::fileManager::cleaner const*) (util.h:634) ==9476== by 0x45CD070: ibis::part::~part() (part.cpp:561) ==9476== by 0x4A41A16: ibis::bord::~bord() (bord.h:115) ==9476== by 0x804A893: main (in /home/mop/tmp/garten/x) ==9476== Required order was established by acquisition of lock at 0x4E4FEA0 ==9476== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9476== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9476== by 0x45F2F7F: ibis::util::mutexLock::mutexLock(pthread_mutex_t*, char const*) (util.h:634) ==9476== by 0x4AE3B2F: ibis::fileManager::getFile(char const*, ibis::fileManager::storage**, ibis::fileManager::ACCESS_PREFERENCE) (fileManager.cpp:771) ==9476== by 0x492CB40: ibis::column::getRawData() const (column.cpp:815) ==9476== by 0x492AFF7: ibis::column::getValuesArray(void*) const (column.cpp:747) ==9476== by 0x496544E: long ibis::column::selectValuesT<short>(ibis::bitvector const&, ibis::array_t<short>&) const (column.cpp:4108) ==9476== by 0x49313F3: ibis::column::selectShorts(ibis::bitvector const&) const (column.cpp:1114) ==9476== by 0x4B1DC58: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3917) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== followed by a later acquisition of lock at 0x4E4FE80 ==9476== at 0x40276DF: pthread_rwlock_rdlock (hg_intercepts.c:1415) ==9476== by 0x4AE3B4D: ibis::fileManager::getFile(char const*, ibis::fileManager::storage**, ibis::fileManager::ACCESS_PREFERENCE) (fileManager.h:499) ==9476== by 0x492CB40: ibis::column::getRawData() const (column.cpp:815) ==9476== by 0x492AFF7: ibis::column::getValuesArray(void*) const (column.cpp:747) ==9476== by 0x496544E: long ibis::column::selectValuesT<short>(ibis::bitvector const&, ibis::array_t<short>&) const (column.cpp:4108) ==9476== by 0x49313F3: ibis::column::selectShorts(ibis::bitvector const&) const (column.cpp:1114) ==9476== by 0x4B1DC58: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3917) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== ==9476== Thread #1: lock order "0x4E4FEA0 before 0x4E4FE80" violated ==9476== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9476== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9476== by 0x4ADDE78: ibis::fileManager::clear() (util.h:634) ==9476== by 0x804A8A0: main (in /home/mop/tmp/garten/x) ==9476== Required order was established by acquisition of lock at 0x4E4FEA0 ==9476== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9476== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9476== by 0x45F2F7F: ibis::util::mutexLock::mutexLock(pthread_mutex_t*, char const*) (util.h:634) ==9476== by 0x4AE3B2F: ibis::fileManager::getFile(char const*, ibis::fileManager::storage**, ibis::fileManager::ACCESS_PREFERENCE) (fileManager.cpp:771) ==9476== by 0x492CB40: ibis::column::getRawData() const (column.cpp:815) ==9476== by 0x492AFF7: ibis::column::getValuesArray(void*) const (column.cpp:747) ==9476== by 0x496544E: long ibis::column::selectValuesT<short>(ibis::bitvector const&, ibis::array_t<short>&) const (column.cpp:4108) ==9476== by 0x49313F3: ibis::column::selectShorts(ibis::bitvector const&) const (column.cpp:1114) ==9476== by 0x4B1DC58: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3917) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== followed by a later acquisition of lock at 0x4E4FE80 ==9476== at 0x40276DF: pthread_rwlock_rdlock (hg_intercepts.c:1415) ==9476== by 0x4AE3B4D: ibis::fileManager::getFile(char const*, ibis::fileManager::storage**, ibis::fileManager::ACCESS_PREFERENCE) (fileManager.h:499) ==9476== by 0x492CB40: ibis::column::getRawData() const (column.cpp:815) ==9476== by 0x492AFF7: ibis::column::getValuesArray(void*) const (column.cpp:747) ==9476== by 0x496544E: long ibis::column::selectValuesT<short>(ibis::bitvector const&, ibis::array_t<short>&) const (column.cpp:4108) ==9476== by 0x49313F3: ibis::column::selectShorts(ibis::bitvector const&) const (column.cpp:1114) ==9476== by 0x4B1DC58: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3917) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== DELETE IN MEMORY SELECT ==9476== Thread #1 unlocked a not-locked lock at 0x4E4FE80 ==9476== at 0x4027A32: pthread_rwlock_unlock (hg_intercepts.c:1560) ==9476== by 0x4AE98BC: ibis::fileManager::releaseAccess(char const*) const (fileManager.h:485) ==9476== by 0x4AD82C7: ibis::fileManager::roFile::endUse() (fileManager.cpp:2166) ==9476== by 0x4780443: ibis::array_t<short>::freeMemory() (array_t.cpp:393) ==9476== by 0x4A19B51: ibis::bord::column::~column() (array_t.h:37) ==9476== by 0x45CCFE6: ibis::part::~part() (part.cpp:557) ==9476== by 0x4A41A16: ibis::bord::~bord() (bord.h:115) ==9476== by 0x804A8F2: main (in /home/mop/tmp/garten/x) ==9476== Lock at 0x4E4FE80 was first observed ==9476== at 0x4027367: pthread_rwlock_init (hg_intercepts.c:1276) ==9476== by 0x4AD7D15: ibis::fileManager::fileManager() (fileManager.cpp:626) ==9476== by 0x4AD8241: ibis::fileManager::instance() (fileManager.cpp:463) ==9476== by 0x45EA52E: ibis::part::init(char const*) (part.cpp:709) ==9476== by 0x45ED176: ibis::part::part(char const*, bool) (part.cpp:247) ==9476== by 0x804A601: main (in /home/mop/tmp/garten/x) ==9476== ==9476== Thread #1 unlocked a not-locked lock at 0x4E4FE80 ==9476== at 0x4027A32: pthread_rwlock_unlock (hg_intercepts.c:1560) ==9476== by 0x4ADE235: ibis::fileManager::clear() (fileManager.h:451) ==9476== by 0x804A8FF: main (in /home/mop/tmp/garten/x) ==9476== Lock at 0x4E4FE80 was first observed ==9476== at 0x4027367: pthread_rwlock_init (hg_intercepts.c:1276) ==9476== by 0x4AD7D15: ibis::fileManager::fileManager() (fileManager.cpp:626) ==9476== by 0x4AD8241: ibis::fileManager::instance() (fileManager.cpp:463) ==9476== by 0x45EA52E: ibis::part::init(char const*) (part.cpp:709) ==9476== by 0x45ED176: ibis::part::part(char const*, bool) (part.cpp:247) ==9476== by 0x804A601: main (in /home/mop/tmp/garten/x) ==9476== DELETE TAB ==9476== Thread #1 unlocked a not-locked lock at 0x4E4FE80 ==9476== at 0x4027A32: pthread_rwlock_unlock (hg_intercepts.c:1560) ==9476== by 0x4ADE235: ibis::fileManager::clear() (fileManager.h:451) ==9476== by 0x804A95E: main (in /home/mop/tmp/garten/x) ==9476== Lock at 0x4E4FE80 was first observed ==9476== at 0x4027367: pthread_rwlock_init (hg_intercepts.c:1276) ==9476== by 0x4AD7D15: ibis::fileManager::fileManager() (fileManager.cpp:626) ==9476== by 0x4AD8241: ibis::fileManager::instance() (fileManager.cpp:463) ==9476== by 0x45EA52E: ibis::part::init(char const*) (part.cpp:709) ==9476== by 0x45ED176: ibis::part::part(char const*, bool) (part.cpp:247) ==9476== by 0x804A601: main (in /home/mop/tmp/garten/x) ==9476== DELETE PARTITION ==9476== Thread #1: lock order "0x512CCD8 before 0x512CCF8" violated ==9476== at 0x40275A4: pthread_rwlock_wrlock (hg_intercepts.c:1368) ==9476== by 0x4945F3B: ibis::column::~column() (column.h:541) ==9476== by 0x45CC126: ibis::part::~part() (part.cpp:557) ==9476== by 0x804A9B0: main (in /home/mop/tmp/garten/x) ==9476== Required order was established by acquisition of lock at 0x512CCD8 ==9476== at 0x40275A4: pthread_rwlock_wrlock (hg_intercepts.c:1368) ==9476== by 0x492D209: ibis::column::loadIndex(char const*, int) const (column.h:541) ==9476== by 0x492C18F: ibis::column::indexLock::indexLock(ibis::column const*, char const*) (column.cpp:10586) ==9476== by 0x494E833: ibis::column::evaluateRange(ibis::qContinuousRange const&, ibis::bitvector const&, ibis::bitvector&) const (column.cpp:5077) ==9476== by 0x494D68D: ibis::column::evaluateRange(ibis::qDiscreteRange const&, ibis::bitvector const&, ibis::bitvector&) const (column.cpp:5224) ==9476== by 0x45C2008: ibis::part::evaluateRange(ibis::qDiscreteRange const&, ibis::bitvector const&, ibis::bitvector&) const (part.cpp:3316) ==9476== by 0x4D2C13C: ibis::countQuery::doEvaluate(ibis::qExpr const*, ibis::bitvector const&, ibis::bitvector&) const (countQuery.cpp:901) ==9476== by 0x4D2EF4E: ibis::countQuery::evaluate() (countQuery.cpp:290) ==9476== by 0x4B1D315: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3838) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== by 0x804A6B0: main (in /home/mop/tmp/garten/x) ==9476== followed by a later acquisition of lock at 0x512CCF8 ==9476== at 0x402639F: pthread_mutex_lock (hg_intercepts.c:465) ==9476== by 0x5088BA5: pthread_mutex_lock (forward.c:182) ==9476== by 0x492D4BB: ibis::column::loadIndex(char const*, int) const (column.h:506) ==9476== by 0x492C18F: ibis::column::indexLock::indexLock(ibis::column const*, char const*) (column.cpp:10586) ==9476== by 0x494E833: ibis::column::evaluateRange(ibis::qContinuousRange const&, ibis::bitvector const&, ibis::bitvector&) const (column.cpp:5077) ==9476== by 0x494D68D: ibis::column::evaluateRange(ibis::qDiscreteRange const&, ibis::bitvector const&, ibis::bitvector&) const (column.cpp:5224) ==9476== by 0x45C2008: ibis::part::evaluateRange(ibis::qDiscreteRange const&, ibis::bitvector const&, ibis::bitvector&) const (part.cpp:3316) ==9476== by 0x4D2C13C: ibis::countQuery::doEvaluate(ibis::qExpr const*, ibis::bitvector const&, ibis::bitvector&) const (countQuery.cpp:901) ==9476== by 0x4D2EF4E: ibis::countQuery::evaluate() (countQuery.cpp:290) ==9476== by 0x4B1D315: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, ibis::qExpr const*) (mensa.cpp:3838) ==9476== by 0x4B1EC7D: ibis::table::select(std::vector<ibis::part const*, std::allocator<ibis::part const*> > const&, char const*, char const*) (mensa.cpp:3658) ==9476== by 0x4B1EDD7: ibis::mensa::select(char const*, char const*) const (mensa.cpp:415) ==9476== ==9476== Thread #1 unlocked a not-locked lock at 0x4E4FE80 ==9476== at 0x4027A32: pthread_rwlock_unlock (hg_intercepts.c:1560) ==9476== by 0x4ADE235: ibis::fileManager::clear() (fileManager.h:451) ==9476== by 0x804A9BD: main (in /home/mop/tmp/garten/x) ==9476== Lock at 0x4E4FE80 was first observed ==9476== at 0x4027367: pthread_rwlock_init (hg_intercepts.c:1276) ==9476== by 0x4AD7D15: ibis::fileManager::fileManager() (fileManager.cpp:626) ==9476== by 0x4AD8241: ibis::fileManager::instance() (fileManager.cpp:463) ==9476== by 0x45EA52E: ibis::part::init(char const*) (part.cpp:709) ==9476== by 0x45ED176: ibis::part::part(char const*, bool) (part.cpp:247) ==9476== by 0x804A601: main (in /home/mop/tmp/garten/x) ==9476== ==9476== Thread #1 unlocked a not-locked lock at 0x4E4FE80 ==9476== at 0x4027A32: pthread_rwlock_unlock (hg_intercepts.c:1560) ==9476== by 0x4ADE235: ibis::fileManager::clear() (fileManager.h:451) ==9476== by 0x804A9D6: main (in /home/mop/tmp/garten/x) ==9476== Lock at 0x4E4FE80 was first observed ==9476== at 0x4027367: pthread_rwlock_init (hg_intercepts.c:1276) ==9476== by 0x4AD7D15: ibis::fileManager::fileManager() (fileManager.cpp:626) ==9476== by 0x4AD8241: ibis::fileManager::instance() (fileManager.cpp:463) ==9476== by 0x45EA52E: ibis::part::init(char const*) (part.cpp:709) ==9476== by 0x45ED176: ibis::part::part(char const*, bool) (part.cpp:247) ==9476== by 0x804A601: main (in /home/mop/tmp/garten/x) ==9476== ==9476== Thread #1 unlocked a not-locked lock at 0x4E4FE80 ==9476== at 0x4027A32: pthread_rwlock_unlock (hg_intercepts.c:1560) ==9476== by 0x4ADE235: ibis::fileManager::clear() (fileManager.h:451) ==9476== by 0x4ADE6D4: ibis::fileManager::~fileManager() (fileManager.cpp:645) ==9476== by 0x4FDD1BE: __run_exit_handlers (exit.c:78) ==9476== by 0x4FDD22E: exit (exit.c:100) ==9476== by 0x4FC4BDD: (below main) (libc-start.c:258) ==9476== Lock at 0x4E4FE80 was first observed ==9476== at 0x4027367: pthread_rwlock_init (hg_intercepts.c:1276) ==9476== by 0x4AD7D15: ibis::fileManager::fileManager() (fileManager.cpp:626) ==9476== by 0x4AD8241: ibis::fileManager::instance() (fileManager.cpp:463) ==9476== by 0x45EA52E: ibis::part::init(char const*) (part.cpp:709) ==9476== by 0x45ED176: ibis::part::part(char const*, bool) (part.cpp:247) ==9476== by 0x804A601: main (in /home/mop/tmp/garten/x) ==9476== ==9476== ==9476== For counts of detected and suppressed errors, rerun with: -v ==9476== Use --history-level=approx or =none to gain increased speed, at ==9476== the cost of reduced accuracy of conflicting-access information ==9476== ERROR SUMMARY: 11 errors from 10 contexts (suppressed: 0 from 0)
x.tar.gz
Description: application/compressed-tar
_______________________________________________ FastBit-users mailing list [email protected] https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
