Bug #1902
mds: unittest_interval_tree bad memory access
% Done:
0%
Source:
Tags:
Backport:
Regression:
Severity:
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Labels (FS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
after a segfault:
Core was generated by `/home/sage/src/ceph/src/.libs/lt-unittest_interval_tree'. Program terminated with signal 11, Segmentation fault. [New process 31536] #0 0x000000000044ae9e in IntervalTree<int, Node>::doTreeWalkOperation ( this=0x7fff2a88a2c0, op=0x437f40 <IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*)>, data=0x0, isInOrder=false) at ./mds/IntervalTree.h:457 warning: Source file is more recent than executable. 457 current = current->left; (gdb) bt #0 0x000000000044ae9e in IntervalTree<int, Node>::doTreeWalkOperation ( this=0x7fff2a88a2c0, op=0x437f40 <IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*)>, data=0x0, isInOrder=false) at ./mds/IntervalTree.h:457 #1 0x000000000044aff4 in IntervalTree<int, Node>::destroy ( this=0x7fff2a88a2c0) at ./mds/IntervalTree.h:354 #2 0x000000000044b00b in ~IntervalTree (this=0x7fff2a88a2c0) at ./mds/IntervalTree.h:80 #3 0x000000000042c0c7 in testIntervalQuery () at test/TestIntervalTree.cc:349 #4 0x000000000042d2a2 in main () at test/TestIntervalTree.cc:480 (gdb) p current $1 = (class IntervalTree<int, Node>::TreeNode *) 0xabababababababab
valgrind output:
vapre:src 08:39 PM $ valgrind ./lt-unittest_interval_tree ==4243== Memcheck, a memory error detector ==4243== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==4243== Using Valgrind-3.5.0-Debian and LibVEX; rerun with -h for copyright info ==4243== Command: ./lt-unittest_interval_tree ==4243== ==4243== Invalid read of size 8 ==4243== at 0x44AF59: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:469) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== Address 0x5928928 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x437FE3: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x437F89: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:632) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== Address 0x5928920 is 0 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x437FE3: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x437FA9: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:635) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== Address 0x5928928 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x437FE3: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== ==4243== Invalid write of size 8 ==4243== at 0x437FBB: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:636) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== Address 0x5928928 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x437FE3: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C0C6: testIntervalQuery() (TestIntervalTree.cc:349) ==4243== by 0x42D2A1: main (TestIntervalTree.cc:480) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x44AF59: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:469) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42BA84: testRemoveInterval() (TestIntervalTree.cc:405) ==4243== by 0x42D2A6: main (TestIntervalTree.cc:481) ==4243== Address 0x592b3a8 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x437FE3: IntervalTree<int, Node>::freeNode(IntervalTree<int, Node>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44AF54: IntervalTree<int, Node>::doTreeWalkOperation(void (IntervalTree<int, Node>::*)(IntervalTree<int, Node>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44AFF3: IntervalTree<int, Node>::destroy() (IntervalTree.h:354) ==4243== by 0x44B00A: IntervalTree<int, Node>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42BA84: testRemoveInterval() (TestIntervalTree.cc:405) ==4243== by 0x42D2A6: main (TestIntervalTree.cc:481) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x44B7E3: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:469) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== Address 0x592dfc8 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x43873D: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x4386E3: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:632) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== Address 0x592dfc0 is 0 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x43873D: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x438703: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:635) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== Address 0x592dfc8 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x43873D: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== ==4243== Invalid write of size 8 ==4243== at 0x438715: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:636) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== Address 0x592dfc8 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x43873D: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42D213: testLocks() (TestIntervalTree.cc:259) ==4243== by 0x42D2AB: main (TestIntervalTree.cc:482) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x44B7E3: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:469) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C301: testRemoveFromMiddle() (TestIntervalTree.cc:301) ==4243== by 0x42D2B0: main (TestIntervalTree.cc:483) ==4243== Address 0x5932298 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x43873D: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C301: testRemoveFromMiddle() (TestIntervalTree.cc:301) ==4243== by 0x42D2B0: main (TestIntervalTree.cc:483) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x44B7E3: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:469) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C483: testBoundaries() (TestIntervalTree.cc:278) ==4243== by 0x42D2B5: main (TestIntervalTree.cc:484) ==4243== Address 0x5933cd8 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x43873D: IntervalTree<int, LockHolder>::freeNode(IntervalTree<int, LockHolder>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44B7DE: IntervalTree<int, LockHolder>::doTreeWalkOperation(void (IntervalTree<int, LockHolder>::*)(IntervalTree<int, LockHolder>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44B87D: IntervalTree<int, LockHolder>::destroy() (IntervalTree.h:354) ==4243== by 0x44B894: IntervalTree<int, LockHolder>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42C483: testBoundaries() (TestIntervalTree.cc:278) ==4243== by 0x42D2B5: main (TestIntervalTree.cc:484) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x44A6CF: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:469) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== Address 0x5934d88 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x438889: IntervalTree<char, String>::freeNode(IntervalTree<char, String>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44A6CA: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x43882F: IntervalTree<char, String>::freeNode(IntervalTree<char, String>::TreeNode*, void*) (IntervalTree.h:632) ==4243== by 0x44A6CA: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== Address 0x5934e10 is 0 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x438889: IntervalTree<char, String>::freeNode(IntervalTree<char, String>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44A6CA: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x43884F: IntervalTree<char, String>::freeNode(IntervalTree<char, String>::TreeNode*, void*) (IntervalTree.h:635) ==4243== by 0x44A6CA: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== Address 0x5934e18 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x438889: IntervalTree<char, String>::freeNode(IntervalTree<char, String>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44A6CA: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== ==4243== Invalid write of size 8 ==4243== at 0x438861: IntervalTree<char, String>::freeNode(IntervalTree<char, String>::TreeNode*, void*) (IntervalTree.h:636) ==4243== by 0x44A6CA: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== Address 0x5934e18 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x438889: IntervalTree<char, String>::freeNode(IntervalTree<char, String>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x44A6CA: IntervalTree<char, String>::doTreeWalkOperation(void (IntervalTree<char, String>::*)(IntervalTree<char, String>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x44A769: IntervalTree<char, String>::destroy() (IntervalTree.h:354) ==4243== by 0x44A780: IntervalTree<char, String>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42B468: testStringIntervals() (TestIntervalTree.cc:437) ==4243== by 0x42D2BA: main (TestIntervalTree.cc:485) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x449CEB: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:469) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== Address 0x5937968 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x4387E3: IntervalTree<char, std::string>::freeNode(IntervalTree<char, std::string>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x449CE6: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x438789: IntervalTree<char, std::string>::freeNode(IntervalTree<char, std::string>::TreeNode*, void*) (IntervalTree.h:632) ==4243== by 0x449CE6: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== Address 0x5937960 is 0 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x4387E3: IntervalTree<char, std::string>::freeNode(IntervalTree<char, std::string>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x449CE6: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== ==4243== Invalid read of size 8 ==4243== at 0x4387A9: IntervalTree<char, std::string>::freeNode(IntervalTree<char, std::string>::TreeNode*, void*) (IntervalTree.h:635) ==4243== by 0x449CE6: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== Address 0x5937968 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x4387E3: IntervalTree<char, std::string>::freeNode(IntervalTree<char, std::string>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x449CE6: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== ==4243== Invalid write of size 8 ==4243== at 0x4387BB: IntervalTree<char, std::string>::freeNode(IntervalTree<char, std::string>::TreeNode*, void*) (IntervalTree.h:636) ==4243== by 0x449CE6: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== Address 0x5937968 is 8 bytes inside a block of size 72 free'd ==4243== at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346) ==4243== by 0x4387E3: IntervalTree<char, std::string>::freeNode(IntervalTree<char, std::string>::TreeNode*, void*) (IntervalTree.h:640) ==4243== by 0x449CE6: IntervalTree<char, std::string>::doTreeWalkOperation(void (IntervalTree<char, std::string>::*)(IntervalTree<char, std::string>::TreeNode*, void*), void*, bool) (IntervalTree.h:467) ==4243== by 0x449D85: IntervalTree<char, std::string>::destroy() (IntervalTree.h:354) ==4243== by 0x449D9C: IntervalTree<char, std::string>::~IntervalTree() (IntervalTree.h:80) ==4243== by 0x42A539: testNames() (TestIntervalTree.cc:475) ==4243== by 0x42D2BF: main (TestIntervalTree.cc:486) ==4243== ==4243== ==4243== HEAP SUMMARY: ==4243== in use at exit: 2,664 bytes in 37 blocks ==4243== total heap usage: 664 allocs, 627 frees, 32,638 bytes allocated ==4243== ==4243== LEAK SUMMARY: ==4243== definitely lost: 2,664 bytes in 37 blocks ==4243== indirectly lost: 0 bytes in 0 blocks ==4243== possibly lost: 0 bytes in 0 blocks ==4243== still reachable: 0 bytes in 0 blocks ==4243== suppressed: 0 bytes in 0 blocks ==4243== Rerun with --leak-check=full to see details of leaked memory ==4243== ==4243== For counts of detected and suppressed errors, rerun with: -v ==4243== ERROR SUMMARY: 143 errors from 19 contexts (suppressed: 4 from 4)
disabled the unit test for now, commit:d8e54994222d3187569f7e1364e8b95439fa3c0b
History
#1 Updated by Sage Weil almost 12 years ago
- Status changed from New to Won't Fix
#2 Updated by John Spray about 7 years ago
- Project changed from Ceph to CephFS
- Category deleted (
1)
Bulk updating project=ceph category=mds bugs so that I can remove the MDS category from the Ceph project to avoid confusion.