Hello all,
We ran the polygraph test on squid with 3 clients . One client is on
x86 and another two clients are on AMD64 machines. We have configured
workload files with the following details,
Object size is 100KB
request rate is 1200
time duration 2 hours of each phase.
While we running the test, memory usage is increases gradually and the
polyclient process stopes after 5 to 6 hours after consuming all the
available swap+memory.
We ran the test using valgrind on polyclient. The valgrind message on
x86 box is given below. Is there any know memory leak issue there on
polygraph code.
==3305==
==3305== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 25 from 1)
==3305== malloc/free: in use at exit: 142188043 bytes in 417422 blocks.
==3305== malloc/free: 1022657 allocs, 605235 frees, 257192630 bytes allocated.
==3305== For counts of detected errors, rerun with: -v
==3305== searching for pointers to 417422 not-freed blocks.
==3305== checked 109054504 bytes.
==3305==
==3305==
==3305== 0 bytes in 3 blocks are definitely lost in loss record 1 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x814A00F: Array<AggrStat*>::Array(int) (Array.h:100)
==3305== by 0x814978E: ContTypeStat::ContTypeStat() (ContTypeStat.cc:38)
==3305== by 0x8153E5A: StatPhaseRec::StatPhaseRec() (StatPhaseRec.cc:17)
==3305==
==3305==
==3305== 0 bytes in 1 blocks are definitely lost in loss record 2 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80DF139: Array<StatsSampleCfg*>::Array(int) (Array.h:100)
==3305== by 0x80DBC9D: StatPhase::StatPhase() (StatPhase.cc:55)
==3305== by 0x80DFA2E: StatPhaseMgr::nextPhase() (StatPhaseMgr.cc:68)
==3305==
==3305==
==3305== 0 bytes in 1 blocks are definitely lost in loss record 3 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80DF221: Array<DutWatchdog*>::Array(int) (Array.h:100)
==3305== by 0x80DBCD2: StatPhase::StatPhase() (StatPhase.cc:55)
==3305== by 0x80DFA2E: StatPhaseMgr::nextPhase() (StatPhaseMgr.cc:68)
==3305==
==3305==
==3305== 0 bytes in 1 blocks are definitely lost in loss record 4 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80A4A20: CltCfg::CltCfg() (Array.h:100)
==3305== by 0x80A7245: CltSharedCfgs::addConfig(RobotSym const*)
(CltCfg.cc:4 39)
==3305== by 0x80A7221: CltSharedCfgs::getConfig(RobotSym const*)
(CltCfg.cc:4 35)
==3305==
==3305==
==3305== 0 bytes in 1 blocks are definitely lost in loss record 5 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80D3167: AgentCfg::AgentCfg() (Array.h:100)
==3305== by 0x80A48EF: CltCfg::CltCfg() (CltCfg.cc:55)
==3305== by 0x80A7245: CltSharedCfgs::addConfig(RobotSym const*)
(CltCfg.cc:4 39)
==3305==
==3305==
==3305== 0 bytes in 1 blocks are definitely lost in loss record 6 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80EE8BD: AddrSubsts::AddrSubsts() (Array.h:100)
==3305== by 0x80C1EF2: PolyApp::configureHosts() (PolyApp.cc:296)
==3305== by 0x80C46EE: PolyApp::configure() (PolyApp.cc:693)
==3305==
==3305==
==3305== 0 bytes in 28 blocks are definitely lost in loss record 7 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80F9C65: Array<double>::Array(int) (Array.h:100)
==3305== by 0x80F8941: ArraySym::ArraySym(String const&) (PglArraySym.cc:32)
==3305== by 0x80F8DE6: ArraySym::create(String const&) const
(PglArraySym.cc: 71)
==3305==
==3305==
==3305== 0 bytes in 1 blocks are definitely lost in loss record 8 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80A79A9: Ring<NetAddr*>::resize(int) (Array.h:100)
==3305== by 0x80A6310: CltCfg::configureProxies() (CltCfg.cc:250)
==3305== by 0x80A5212: CltCfg::configure(RobotSym const*) (CltCfg.cc:93)
==3305==
==3305==
==3305== 0 bytes in 37 blocks are definitely lost in loss record 9 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80F9B7D: Array<SynSym*>::Array(int) (Array.h:100)
==3305== by 0x8135990: ParsSym::ParsSym(ParsSym const&) (ParsSym.h:32)
==3305== by 0x8135E2F: ParsSym::dupe(String const&) const (ParsSym.cc:54)
==3305==
==3305==
==3305== 0 bytes in 1 blocks are definitely lost in loss record 10 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80A7BB5: Ring<String*>::resize(int) (Array.h:100)
==3305== by 0x80A64A1: CltCfg::configureCredentials() (Array.h:28)
==3305== by 0x80A521D: CltCfg::configure(RobotSym const*) (CltCfg.cc:94)
==3305==
==3305==
==3305== 0 bytes in 73140 blocks are definitely lost in loss record 11 of 179
==3305== at 0x1B904E45: operator new[](unsigned) (vg_replace_malloc.c:139)
==3305== by 0x80E720D: Array<char const*>::Array(int) (Array.h:100)
==3305== by 0x80E441D: MsgHdr::MsgHdr(MsgHdrParsTab const&) (httpHdrs.cc:41)
==3305== by 0x80E6713: RepHdr::RepHdr() (httpHdrs.cc:639)
==3305==
==3305==
==3305== 4 bytes in 1 blocks are definitely lost in loss record 14 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x80A6569: CltCfg::configureContainerTags() (CltCfg.cc:271)
==3305== by 0x80A5233: CltCfg::configure(RobotSym const*) (CltCfg.cc:96)
==3305== by 0x80A7269: CltSharedCfgs::addConfig(RobotSym const*)
(CltCfg.cc:4 40)
==3305==
==3305==
==3305== 4 bytes in 1 blocks are definitely lost in loss record 15 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x810107B: RecSym::getStrings(String const&,
Array<String*>&) con st (PglRecSym.cc:205)
==3305== by 0x811BEE6: MimeSym::extensions(Array<String*>&,
RndDistr*&) const (MimeSym.cc:56)
==3305== by 0x81367BD: ContentCfg::configure(ContentSym const&)
(ContentCfg.c c:64)
==3305==
==3305==
==3305== 8 bytes in 1 blocks are definitely lost in loss record 17 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x80F9889: ArraySym::makeSelector(String const&) (RndPermut.h:82)
==3305== by 0x8123EB5: RobotSym::origins(Array<NetAddr*>&,
RndDistr*&) const (String.h:47)
==3305== by 0x80A5CBB: CltCfg::configureOrigins() (CltCfg.cc:180)
==3305==
==3305==
==3305== 8 bytes in 2 blocks are definitely lost in loss record 20 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x81494A6: ContTypeStat::RecordKind(int, String const&)
(String.h :72)
==3305== by 0x81370FF: ContentCfg::configure(ContentSym const&) (String.h:47)
==3305== by 0x813AFB8: ConfigSymMgr<ContentSym,
ContentCfg>::get(Array<Conten tSym*> const&, Array<ContentCfg*>&)
(ConfigSymMgr.h:64)
==3305==
==3305==
==3305== 16 bytes in 2 blocks are definitely lost in loss record 30 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x810C899: PglSemx::isDistr(String const&, ListSym
const&) (RndPe rmut.h:82)
==3305== by 0x81086C4: PglSemx::callFunc(String const&, ListSym
const&) (PglS emx.cc:493)
==3305== by 0x8107C0F: PglSemx::makeFuncCall(ParsSym const&) (PglSemx.cc:342)
==3305==
==3305==
==3305== 16 bytes in 1 blocks are definitely lost in loss record 38 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x80DCE55: StatPhase::configureSamples(PhaseSym const*)
(StatPhas e.cc:137)
==3305== by 0x80DCC7C: StatPhase::configure(PhaseSym const*,
StatPhase const* ) (StatPhase.cc:119)
==3305== by 0x80C4478: PolyApp::buildSchedule() (PolyApp.cc:651)
==3305==
==3305==
==3305== 24 bytes in 1 blocks are definitely lost in loss record 53 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x809A734: PolyClt::configure() (PolyClt.cc:102)
==3305== by 0x80C5746: PolyApp::run(int, char**) (PolyApp.cc:881)
==3305== by 0x809B2B4: main (PolyClt.cc:278)
==3305==
==3305==
==3305== 24 bytes in 1 blocks are definitely lost in loss record 61 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x80F98C3: ArraySym::makeSelector(String const&)
(PglArraySym.cc: 281)
==3305== by 0x811BED0: MimeSym::extensions(Array<String*>&,
RndDistr*&) const (MimeSym.cc:55)
==3305== by 0x81367BD: ContentCfg::configure(ContentSym const&)
(ContentCfg.c c:64)
==3305==
==3305==
==3305== 32 bytes in 1 blocks are definitely lost in loss record 67 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x80FD3CA: p_Code_3(SynSym**) (String.h:47)
==3305== by 0x813322F: GParser::parse() (GParser.cc:112)
==3305== by 0x80C4AFE: PolyApp::parseConfigFile(String const&)
(PolyApp.cc:73 2)
==3305==
==3305==
==3305== 32 bytes in 2 blocks are definitely lost in loss record 69 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x8123B45: RobotSym::reqInterArrival(RndDistr*&) const
(RobotSym. cc:127)
==3305== by 0x809A513: PolyClt::makeAgent(AgentSym const&, NetAddr
const&) (P olyClt.cc:72)
==3305== by 0x80C3B0D: PolyApp::makeAgents() (PolyApp.cc:588)
==3305==
==3305==
==3305== 40 bytes in 1 blocks are definitely lost in loss record 71 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x80A0D31: Client::getPortMgr(bool) (opts.h:193)
==3305== by 0x809DFAE: Client::configure(RobotSym const*, NetAddr
const&) (Cl ient.cc:108)
==3305== by 0x80A2E87: AsyncClt::configure(RobotSym const*, NetAddr
const&) ( AsyncClt.cc:26)
==3305==
==3305==
==3305== 40 bytes in 1 blocks are definitely lost in loss record 80 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x816E574: TblDistr::FromDistrTable(String const&,
Array<double>& ) (TblDistr.cc:377)
==3305== by 0x80F9917: ArraySym::makeSelector(String const&)
(PglArraySym.cc: 286)
==3305== by 0x811CFA8: ObjLifeCycleSym::expires(Array<RndDistr*>&,
RndDistr*& , Array<QualifSym*>&) const (ObjLifeCycleSym.cc:76)
==3305==
==3305==
==3305== 64 bytes in 8 blocks are definitely lost in loss record 97 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x816D0FC: TblDistr::TblDistr(String const&) (Rnd.h:65)
==3305== by 0x816E582: TblDistr::FromDistrTable(String const&,
Array<double>& ) (TblDistr.cc:377)
==3305== by 0x81013C3: RecSym::namesToDistr(String const&,
StrIdentifier cons t&) const (SynSym.h:24)
==3305==
==3305==
==3305== 156 bytes in 39 blocks are definitely lost in loss record 109 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x810DED5: PglSemx::knownType(String const&) (PglSemx.cc:1622)
==3305== by 0x810D0CC: PglSemx::setDefault(SynSymTblItem*) (SynSymTbl.h:34)
==3305== by 0x810B47F: PglSemx::declare(String const&, String
const&, SrcLoc const&) (PglSemx.cc:1170)
==3305==
==3305==
==3305== 4320 bytes in 120 blocks are definitely lost in loss record 155 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x8100DF1: RecSym::getNetAddrs(String const&,
Array<NetAddr*>&) c onst (PglRecSym.cc:171)
==3305== by 0x8123DF3: RobotSym::origins(Array<NetAddr*>&) const
(RobotSym.cc :200)
==3305== by 0x8123E61: RobotSym::origins(Array<NetAddr*>&,
RndDistr*&) const (RobotSym.cc:210)
==3305==
==3305==
==3305== 2937568 bytes in 4478 blocks are possibly lost in loss record
177 of 17 9
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x809C303: ObjFarm<CltXact>::gen() (Farm.h:55)
==3305== by 0x809C501: XactFarmT<CltXact, CltXact>::get() (Farm.h:30)
==3305== by 0x809F27E: Client::genXact(ObjId const&, CltXact*)
(Client.cc:416 )
==3305==
==3305==
==3305== 127463424 bytes in 194304 blocks are definitely lost in loss
record 179 of 179
==3305== at 0x1B904C07: operator new(unsigned) (vg_replace_malloc.c:133)
==3305== by 0x809C303: ObjFarm<CltXact>::gen() (Farm.h:55)
==3305== by 0x809C501: XactFarmT<CltXact, CltXact>::get() (Farm.h:30)
==3305== by 0x809F27E: Client::genXact(ObjId const&, CltXact*)
(Client.cc:416 )
==3305==
==3305== LEAK SUMMARY:
==3305== definitely lost: 127468212 bytes in 267701 blocks.
==3305== possibly lost: 2937568 bytes in 4478 blocks.
==3305== still reachable: 11782263 bytes in 145243 blocks.
==3305== suppressed: 0 bytes in 0 blocks.
==3305== Reachable blocks (those to which a pointer was found
Thanks
-Jag
Received on Mon Dec 11 07:56:23 2006
This archive was generated by hypermail 2.1.8 : Tue Dec 12 2006 - 12:00:06 MST