Project

General

Profile

Actions

Bug #1902

closed

mds: unittest_interval_tree bad memory access

Added by Sage Weil over 12 years ago. Updated over 7 years ago.

Status:
Won't Fix
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% 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

Actions #1

Updated by Sage Weil about 12 years ago

  • Status changed from New to Won't Fix
Actions #2

Updated by John Spray over 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.

Actions

Also available in: Atom PDF