You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "Selvaganesan Govindarajan (JIRA)" <ji...@apache.org> on 2018/02/16 02:07:00 UTC

[jira] [Updated] (TRAFODION-2853) Memory leak of ComDiagsArea in Context

     [ https://issues.apache.org/jira/browse/TRAFODION-2853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Selvaganesan Govindarajan updated TRAFODION-2853:
-------------------------------------------------
    Description: 
There were instances that the executor master process has more than 1 GB of memory  of SQL accounted memory allocated, Looking at the size of allocation by traversing the heap, it was found that  ComDiagsArea is leaking in ContextHeap.

The heap traversal shows the addresses and the allocated size that were part of context Heap that was leaking

0x7fdef4cc69b8 336
 0x7fdef4cc6bc8 336
 0x7fdef4cc6d18 336
 0x7fdef4cc6e68 336
 0x7fdef4cc6fb8 336
 0x7fdef4cc71e0 336
 0x7fdef4cc7330 336
 0x7fdef4cc7480 336

The actual address of the objects is 16 bytes from the above address

(gdb) p *(ComDiagsArea *)0x7fdef4cc69c8 
 $9 = {
 <IpcMessageObj> = {
 _vptr.IpcMessageObj = 0x7fdfbe4bbc50, 
 s_ =

{ objType_ = 13501, objVersion_ = 0, refCount_ = 1, objLength_ = 0, next_ = 0x0, endianness_ = 1 '\001', spare1_ = 0 '\000', spare2_ = 0, vPtrPad_ = 0x0 }

}, 
 members of ComDiagsArea: 
 collHeapPtr_ = 0x7fdfb18eb128, 
 errors_ = {
 <NACollection<ComDiagsArea::DiagsCondition*>> = {
 <NABasicObject> =

{ _vptr.NABasicObject = 0x7fdfbe4bbf10, h_ = 0x0 }, 
 members of NACollection<ComDiagsArea::DiagsCondition*>: 
 maxLength_ = 0, 
 usedLength_ = 0, 
 entries_ = 0, 
 arr_ = 0x0, 
 usages_ = 0x0, 
 heap_ = 0x7fdfb18eb128
 }, 
 members of NAList<ComDiagsArea::DiagsCondition*>: 
 first_ = 111111111, 
 last_ = 111111111, 
 userIndexCache_ = 111111111, 
 arrayIndexCache_ = 111111111
 }, 
 warnings_ = {
 ---Type <return> to continue, or q <return> to quit---
 <NACollection<ComDiagsArea::DiagsCondition*>> = {
 <NABasicObject> = \{ _vptr.NABasicObject = 0x7fdfbe4bbf10, h_ = 0x0 }

, 
 members of NACollection<ComDiagsArea::DiagsCondition*>: 
 maxLength_ = 0, 
 usedLength_ = 0, 
 entries_ = 0, 
 arr_ = 0x0, 
 usages_ = 0x0, 
 heap_ = 0x7fdfb18eb128
 }, 
 members of NAList<ComDiagsArea::DiagsCondition*>: 
 first_ = 111111111, 
 last_ = 111111111, 
 userIndexCache_ = 111111111, 
 arrayIndexCache_ = 111111111
 }, 
 newCondition_ = 0x0, 
 areMore_ = 0, 
 lengthLimit_ = 30, 
 rowCount_ = 0, 
 theSQLFunction_ = 0, 
 maxDiagsId_ = 0, 
 avgStreamWaitTime_ = -1, 
 cost_ = 0, 
 flags_ = 0, 
 rowsetRowCountArray_ = 0x0, 
 fillers_ = '\000' <repeats 59 times>
 }

(gdb) (gdb) p *(NAHeap *)0x7fdfb18eb128
 $10 = {
 <NAMemory> = {
 <NABasicObject> =

{ _vptr.NABasicObject = 0x7fdfc1001870, h_ = 0x0 }

, 
 members of NAMemory: 
 name_ = "Heap in ContextCli\000\000", 
 type_ = NAMemory::DERIVED_MEMORY, 
 initialSize_ = 524288, 
 maximumSize_ = 18446744073709551615, 
 incrementSize_ = 4194304, 
 parent_ = 0xf18b38, 
 firstBlk_ = 0x7f3a44f75030, 
 allocSize_ = 1375405192, 
 upperLimit_ = 0, 
 highWaterMark_ = 1447646816, 
 intervalWaterMark_ = 1447646816, 
 allocCnt_ = 2837663, 
 totalSize_ = 1529356096, 
 blockCnt_ = 381, 
 thBlockCnt_ = 40, 
 segGlobals_ = 0x0, 
 memoryList_ = 0x7fdfb0e7aac0, 
 lastListEntry_ = 0x7fdeef140608, 
 nextEntry_ = 0x7fdfb18f12c8, 
 debugLevel_ = 0, 
 heapJumpBuf_ = 0xf18a30, 
 exhaustedMem_ = 0, 
 errorsMask_ = 0, 
 heapID_ =

{ heapNum = -1 }

,

  was:
There were instances that the executor master process has more than 1 GB of memory account memory allocated, Looking at the size of allocation by traversing the heap, it was found ComDiagsArea is leaked in ContextHeap.

The heap traversal shows the addresses and the allocated size that were part of context Heap that was leaking

0x7fdef4cc69b8 336
0x7fdef4cc6bc8 336
0x7fdef4cc6d18 336
0x7fdef4cc6e68 336
0x7fdef4cc6fb8 336
0x7fdef4cc71e0 336
0x7fdef4cc7330 336
0x7fdef4cc7480 336

The actual address of the objects is 16 bytes from the above address

(gdb) p *(ComDiagsArea *)0x7fdef4cc69c8  
$9 = {
  <IpcMessageObj> = {
    _vptr.IpcMessageObj = 0x7fdfbe4bbc50, 
    s_ = {
      objType_ = 13501, 
      objVersion_ = 0, 
      refCount_ = 1, 
      objLength_ = 0, 
      next_ = 0x0, 
      endianness_ = 1 '\001', 
      spare1_ = 0 '\000', 
      spare2_ = 0, 
      vPtrPad_ = 0x0
    }
  }, 
  members of ComDiagsArea: 
  collHeapPtr_ = 0x7fdfb18eb128, 
  errors_ = {
    <NACollection<ComDiagsArea::DiagsCondition*>> = {
      <NABasicObject> = {
        _vptr.NABasicObject = 0x7fdfbe4bbf10, 
        h_ = 0x0
      }, 
      members of NACollection<ComDiagsArea::DiagsCondition*>: 
      maxLength_ = 0, 
      usedLength_ = 0, 
      entries_ = 0, 
      arr_ = 0x0, 
      usages_ = 0x0, 
      heap_ = 0x7fdfb18eb128
    }, 
    members of NAList<ComDiagsArea::DiagsCondition*>: 
    first_ = 111111111, 
    last_ = 111111111, 
    userIndexCache_ = 111111111, 
    arrayIndexCache_ = 111111111
  }, 
  warnings_ = {
---Type <return> to continue, or q <return> to quit---
    <NACollection<ComDiagsArea::DiagsCondition*>> = {
      <NABasicObject> = {
        _vptr.NABasicObject = 0x7fdfbe4bbf10, 
        h_ = 0x0
      }, 
      members of NACollection<ComDiagsArea::DiagsCondition*>: 
      maxLength_ = 0, 
      usedLength_ = 0, 
      entries_ = 0, 
      arr_ = 0x0, 
      usages_ = 0x0, 
      heap_ = 0x7fdfb18eb128
    }, 
    members of NAList<ComDiagsArea::DiagsCondition*>: 
    first_ = 111111111, 
    last_ = 111111111, 
    userIndexCache_ = 111111111, 
    arrayIndexCache_ = 111111111
  }, 
  newCondition_ = 0x0, 
  areMore_ = 0, 
  lengthLimit_ = 30, 
  rowCount_ = 0, 
  theSQLFunction_ = 0, 
  maxDiagsId_ = 0, 
  avgStreamWaitTime_ = -1, 
  cost_ = 0, 
  flags_ = 0, 
  rowsetRowCountArray_ = 0x0, 
  fillers_ = '\000' <repeats 59 times>
}

(gdb) (gdb) p *(NAHeap *)0x7fdfb18eb128
$10 = {
  <NAMemory> = {
    <NABasicObject> = {
      _vptr.NABasicObject = 0x7fdfc1001870, 
      h_ = 0x0
    }, 
    members of NAMemory: 
    name_ = "Heap in ContextCli\000\000", 
    type_ = NAMemory::DERIVED_MEMORY, 
    initialSize_ = 524288, 
    maximumSize_ = 18446744073709551615, 
    incrementSize_ = 4194304, 
    parent_ = 0xf18b38, 
    firstBlk_ = 0x7f3a44f75030, 
    allocSize_ = 1375405192, 
    upperLimit_ = 0, 
    highWaterMark_ = 1447646816, 
    intervalWaterMark_ = 1447646816, 
    allocCnt_ = 2837663, 
    totalSize_ = 1529356096, 
    blockCnt_ = 381, 
    thBlockCnt_ = 40, 
    segGlobals_ = 0x0, 
    memoryList_ = 0x7fdfb0e7aac0, 
    lastListEntry_ = 0x7fdeef140608, 
    nextEntry_ = 0x7fdfb18f12c8, 
    debugLevel_ = 0, 
    heapJumpBuf_ = 0xf18a30, 
    exhaustedMem_ = 0, 
    errorsMask_ = 0, 
    heapID_ = {
      heapNum = -1
    }, 



> Memory leak of ComDiagsArea in Context
> --------------------------------------
>
>                 Key: TRAFODION-2853
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2853
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: sql-exe
>    Affects Versions: any
>            Reporter: Selvaganesan Govindarajan
>            Assignee: Selvaganesan Govindarajan
>            Priority: Major
>             Fix For: 2.3
>
>
> There were instances that the executor master process has more than 1 GB of memory  of SQL accounted memory allocated, Looking at the size of allocation by traversing the heap, it was found that  ComDiagsArea is leaking in ContextHeap.
> The heap traversal shows the addresses and the allocated size that were part of context Heap that was leaking
> 0x7fdef4cc69b8 336
>  0x7fdef4cc6bc8 336
>  0x7fdef4cc6d18 336
>  0x7fdef4cc6e68 336
>  0x7fdef4cc6fb8 336
>  0x7fdef4cc71e0 336
>  0x7fdef4cc7330 336
>  0x7fdef4cc7480 336
> The actual address of the objects is 16 bytes from the above address
> (gdb) p *(ComDiagsArea *)0x7fdef4cc69c8 
>  $9 = {
>  <IpcMessageObj> = {
>  _vptr.IpcMessageObj = 0x7fdfbe4bbc50, 
>  s_ =
> { objType_ = 13501, objVersion_ = 0, refCount_ = 1, objLength_ = 0, next_ = 0x0, endianness_ = 1 '\001', spare1_ = 0 '\000', spare2_ = 0, vPtrPad_ = 0x0 }
> }, 
>  members of ComDiagsArea: 
>  collHeapPtr_ = 0x7fdfb18eb128, 
>  errors_ = {
>  <NACollection<ComDiagsArea::DiagsCondition*>> = {
>  <NABasicObject> =
> { _vptr.NABasicObject = 0x7fdfbe4bbf10, h_ = 0x0 }, 
>  members of NACollection<ComDiagsArea::DiagsCondition*>: 
>  maxLength_ = 0, 
>  usedLength_ = 0, 
>  entries_ = 0, 
>  arr_ = 0x0, 
>  usages_ = 0x0, 
>  heap_ = 0x7fdfb18eb128
>  }, 
>  members of NAList<ComDiagsArea::DiagsCondition*>: 
>  first_ = 111111111, 
>  last_ = 111111111, 
>  userIndexCache_ = 111111111, 
>  arrayIndexCache_ = 111111111
>  }, 
>  warnings_ = {
>  ---Type <return> to continue, or q <return> to quit---
>  <NACollection<ComDiagsArea::DiagsCondition*>> = {
>  <NABasicObject> = \{ _vptr.NABasicObject = 0x7fdfbe4bbf10, h_ = 0x0 }
> , 
>  members of NACollection<ComDiagsArea::DiagsCondition*>: 
>  maxLength_ = 0, 
>  usedLength_ = 0, 
>  entries_ = 0, 
>  arr_ = 0x0, 
>  usages_ = 0x0, 
>  heap_ = 0x7fdfb18eb128
>  }, 
>  members of NAList<ComDiagsArea::DiagsCondition*>: 
>  first_ = 111111111, 
>  last_ = 111111111, 
>  userIndexCache_ = 111111111, 
>  arrayIndexCache_ = 111111111
>  }, 
>  newCondition_ = 0x0, 
>  areMore_ = 0, 
>  lengthLimit_ = 30, 
>  rowCount_ = 0, 
>  theSQLFunction_ = 0, 
>  maxDiagsId_ = 0, 
>  avgStreamWaitTime_ = -1, 
>  cost_ = 0, 
>  flags_ = 0, 
>  rowsetRowCountArray_ = 0x0, 
>  fillers_ = '\000' <repeats 59 times>
>  }
> (gdb) (gdb) p *(NAHeap *)0x7fdfb18eb128
>  $10 = {
>  <NAMemory> = {
>  <NABasicObject> =
> { _vptr.NABasicObject = 0x7fdfc1001870, h_ = 0x0 }
> , 
>  members of NAMemory: 
>  name_ = "Heap in ContextCli\000\000", 
>  type_ = NAMemory::DERIVED_MEMORY, 
>  initialSize_ = 524288, 
>  maximumSize_ = 18446744073709551615, 
>  incrementSize_ = 4194304, 
>  parent_ = 0xf18b38, 
>  firstBlk_ = 0x7f3a44f75030, 
>  allocSize_ = 1375405192, 
>  upperLimit_ = 0, 
>  highWaterMark_ = 1447646816, 
>  intervalWaterMark_ = 1447646816, 
>  allocCnt_ = 2837663, 
>  totalSize_ = 1529356096, 
>  blockCnt_ = 381, 
>  thBlockCnt_ = 40, 
>  segGlobals_ = 0x0, 
>  memoryList_ = 0x7fdfb0e7aac0, 
>  lastListEntry_ = 0x7fdeef140608, 
>  nextEntry_ = 0x7fdfb18f12c8, 
>  debugLevel_ = 0, 
>  heapJumpBuf_ = 0xf18a30, 
>  exhaustedMem_ = 0, 
>  errorsMask_ = 0, 
>  heapID_ =
> { heapNum = -1 }
> ,



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)