[
https://issues.apache.org/jira/browse/TRAFODION-2226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Arvind Narain closed TRAFODION-2226.
------------------------------------
Resolution: Fixed
Fix submitted via
https://github.com/apache/incubator-trafodion/pull/783
> Memory leak from Repository thread
> ----------------------------------
>
> Key: TRAFODION-2226
> URL: https://issues.apache.org/jira/browse/TRAFODION-2226
> Project: Apache Trafodion
> Issue Type: Bug
> Components: connectivity-mxosrvr
> Affects Versions: 2.0-incubating
> Reporter: Suresh Subbiah
> Assignee: Arvind Narain
> Fix For: 2.1-incubating
>
>
> An mxosrvr process which has been connected to and seen at least one SQL
> statement given by a user executed will leak memory from the repository
> thread, The rate of observed leak was about 3 GB during one month. The rate
> does depend on the amount of activity in the repository thread which in turn
> depends on the activity in the main thread. In this case the repository
> thread was periodically executing 2 statements. There was another observed
> instance of about a 2GB leak after one month.
> This is top output
> 55682 trafodio 20 0 4033m 2.9g 33m S 0.3 2.4 157:16.88 mxosrvr
> With gdb we see that the the statement heap of the repository context is
> leaking
> *cli_globals->executorMemory_->memoryList_->nextEntry_->nextEntry_->memoryList_
> $104 = {
> <NABasicObject> = {
> _vptr.NABasicObject = 0x7f53493fca30,
> h_ = 0x7f53276c1750
> },
> members of NAMemory:
> name_ = "Statement Heap\000\000\001\000\000\000\002",
> type_ = NAMemory::DERIVED_MEMORY,
> initialSize_ = 8096,
> maximumSize_ = 18446744073709551615,
> incrementSize_ = 4194304,
> parent_ = 0x7f533a92c1f0,
> firstBlk_ = 0x7f525ede1060,
> allocSize_ = 2393256448,
> upperLimit_ = 0,
> highWaterMark_ = 2393526936,
> intervalWaterMark_ = 2393526936,
> allocCnt_ = 458873,
> totalSize_ = 2393389344,
> blockCnt_ = 648,
> thBlockCnt_ = 110,
> Memory is allocated with every execution (once a minute), but rarely
> deallocated.
> NAHeap::allocateBlock (this=0x7f3c7f3dbe70, size=32848, failureIsFatal=1) at
> ../common/NAMemory.cpp:2535
> 2535 p->segmentId_ = segmentId;
> (gdb) bt
> #0 NAHeap::allocateBlock (this=0x7f3c7f3dbe70, size=32848, failureIsFatal=1)
> at ../common/NAMemory.cpp:2535
> #1 0x00007f3ca6b2105f in NAHeap::allocateHeapMemory (this=0x7f3c7f3dbe70,
> userSize=32767, failureIsFatal=1)
> at ../common/NAMemory.cpp:3360
> #2 0x00007f3ca6b1d025 in NAMemory::allocateMemory (this=0x7f3c7f3dbe70,
> size=32767, failureIsFatal=1)
> at ../common/NAMemory.cpp:1380
> #3 0x00007f3ca39cc9e1 in operator new[] (t=32767, h=0x7f3c7f3dbe70) at
> ../export/NABasicObject.cpp:375
> #4 0x00007f3ca575e327 in
> ExHbaseUMDtrafUniqueTaskTcb::ExHbaseUMDtrafUniqueTaskTcb
> (this=0x7f3c7f4009b8, tcb=0x7f3c7f3dea68)
> at ../executor/ExHbaseIUD.cpp:1758
> #5 0x00007f3ca5763c68 in ExHbaseAccessUMDTcb::ExHbaseAccessUMDTcb
> (this=0x7f3c7f3dea68, hbaseAccessTdb=..., glob=
> 0x7f3c7f3dc9a0) at ../executor/ExHbaseIUD.cpp:3520
> #6 0x00007f3ca573beef in ExHbaseAccessTdb::build (this=0x7f3c7f3ec928,
> glob=0x7f3c7f3dc9a0)
> at ../executor/ExHbaseAccess.cpp:82
> #7 0x00007f3ca563c193 in ex_root_tdb::build (this=0x7f3c7f3e81e8,
> cliGlobals=0x1378240, glob=0x7f3c7f3dc9a0)
> at ../executor/ex_root.cpp:209
> #8 0x00007f3ca6fb27ac in CliStatement::fixup (this=0x7f3c7f3dbdb0,
> cliGlobals=0x1378240, input_desc=0x0, diagsArea=...,
> doSimCheck=@0x7f3c7fe3973c, partitionUnavailable=@0x7f3c7fe3975c,
> donePrepare=0) at ../cli/Statement.cpp:2929
> #9 0x00007f3ca6fb518a in CliStatement::execute (this=0x7f3c7f3dbdb0,
> cliGlobals=0x1378240, input_desc=0x0, diagsArea=...,
> execute_state=CliStatement::INITIAL_STATE_, fixupOnly=0, cliflags=0) at
> ../cli/Statement.cpp:3966
> #10 0x00007f3ca6f30324 in SQLCLI_PerformTasks(CliGlobals *, ULng32,
> SQLSTMT_ID *, SQLDESC_ID *, SQLDESC_ID *, Lng32, Lng32, typedef __va_list_tag
> __va_list_tag *, SQLCLI_PTR_PAIRS *, SQLCLI_PTR_PAIRS *)
> (cliGlobals=0x1378240, tasks=606,
> statement_id=0x2589398, input_descriptor=0x0, output_descriptor=0x0,
> num_input_ptr_pairs=0, num_output_ptr_pairs=0,
> ap=0x7f3c7fe39da0, input_ptr_pairs=0x0, output_ptr_pairs=0x0) at
> ../cli/Cli.cpp:3301
> #11 0x00007f3ca6f31426 in SQLCLI_ExecDirect2(CliGlobals *, SQLSTMT_ID *,
> SQLDESC_ID *, Int32, SQLDESC_ID *, Lng32, typedef __va_list_tag __va_list_tag
> *, SQLCLI_PTR_PAIRS *) (cliGlobals=0x1378240, statement_id=0x2589398,
> sql_source=0x7f3c7fe39ff0,
> prepFlags=0, input_descriptor=0x0, num_ptr_pairs=0, ap=0x7f3c7fe39da0,
> ptr_pairs=0x0) at ../cli/Cli.cpp:3735
> #12 0x00007f3ca6fcd8eb in SQL_EXEC_ExecDirect2 (statement_id=0x2589398,
> sql_source=0x7f3c7fe39ff0, prep_flags=0,
> input_descriptor=0x0, num_ptr_pairs=0) at ../cli/CliExtern.cpp:2327
> #13 0x00007f3ca9ad5445 in SRVR::WSQL_EXEC_ExecDirect (statement_id=0x2589398,
> sql_source=0x7f3c7fe39ff0,
> input_descriptor=0x0, num_ptr_pairs=0) at SQLWrapper.cpp:363
> #14 0x00007f3ca9abc1d0 in SRVR::EXECDIRECT (pSrvrStmt=0x2588d80) at
> sqlinterface.cpp:4671
> #15 0x00007f3ca9a47ef7 in SRVR::ControlProc (pParam=0x2588d80) at
> csrvrstmt.cpp:768
> #16 0x00007f3ca9a47535 in SRVR_STMT_HDL::ExecDirect (this=0x2588d80,
> inCursorName=0x0,
> inSqlString=0x268d078 "update
> Trafodion.\"_REPOS_\".metric_query_aggr_table set
> AGGREGATION_LAST_UPDATE_UTC_TS =
> CONVERTTIMESTAMP(212340712811423977),AGGREGATION_LAST_ELAPSED_TIME =
> 60000,TOTAL_EST_ROWS_ACCESSED = 0,TOTAL_EST"..., inStmtType=1,
> inSqlStmtType=0, inSqlAsyncEnable=0, inQueryTimeout=0) at
> csrvrstmt.cpp:450
> #17 0x0000000000578eaa in SessionWatchDog (arg=0x0) at SrvrConnect.cpp:974
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)