[ 
https://issues.apache.org/jira/browse/TRAFODION-2853?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16399934#comment-16399934
 ] 

ASF GitHub Bot commented on TRAFODION-2853:
-------------------------------------------

Github user selvaganesang commented on a diff in the pull request:

    https://github.com/apache/trafodion/pull/1470#discussion_r174679546
  
    --- Diff: core/sql/sqlci/SqlCmd.cpp ---
    @@ -440,25 +461,50 @@ void handleLocalError(ComDiagsArea &diags, SqlciEnv 
*sqlci_env)
       // when HandleCLIError() is called with a error after a CLI call.
       // Soln :10-021203-3433
     
    -  if (diags.getNumber(DgSqlCode::ERROR_)) {
    +  if (diags->getNumber(DgSqlCode::ERROR_)) {
          worstcode = SQL_Error;
       }
    -  else if (diags.getNumber(DgSqlCode::WARNING_)) {
    +  else if (diags->getNumber(DgSqlCode::WARNING_)) {
         worstcode = SQL_Warning;
       }
     
       if (!lastLineWasABlank) log->WriteAllWithoutEOL("");
       lastLineWasABlank = TRUE;
     
       ostringstream errMsg;
    -  NADumpDiags(errMsg, &diags, TRUE/*newline*/, 0, NULL, log->isVerbose(),
    +  NADumpDiags(errMsg, diags, TRUE/*newline*/, 0, NULL, log->isVerbose(),
                   sqlci_env->getTerminalCharset());
     
       errMsg << ends;
     
       log->WriteAllWithoutEOL(errMsg.str().c_str());
     }
     
    +Int64 getRowsAffected(SQLSTMT_ID *stmt)
    +{
    +   Int32 rc;
    +   rc = SQL_EXEC_GetDiagnosticsStmtInfo2(stmt,
    +                           SQLDIAG_ROW_COUNT, &rowsAffected,
    +                           NULL, 0, NULL);
    +   if (rc == 0)
    +      return rowsAffected; 
    +   else
    +      return -1;
    +}
    +
    +Int64 getDiagsCondCount(SQLSTMT_ID *stmt)
    +{
    +   Int32 rc;
    +   Int64 diagsCondCount;
    +   rc = SQL_EXEC_GetDiagnosticsStmtInfo2(stmt,
    +                           SQLDIAG_NUMBER, &diagsCondCount,
    +                           NULL, 0, NULL);
    +   if (rc == 0)
    +      return 0; 
    +   else
    +      return diagsCondCount;
    --- End diff --
    
    I just realized that I misread the function SQLCLI_ReturnCode.  It looks 
like diagsCondCount is uninitialized and hence junk value was returned for 
getDiagsCondCount that enabled us to return warnings. Basically two issues made 
this function to behave as expected most of the time. I will be fixing it soon


> 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)

Reply via email to