Before going down this rathole, I’d give v7.1.6 or v8.0.2 a spin. Remember, v6.x is an unsupported version, there is no more development nor any more releases.
Cheers, — Leif > On Mar 4, 2019, at 20:00, Dk Jack <dnj0...@gmail.com> wrote: > > I am using atscppapi's for my plugin. I do something like this... > > Headers& headers = transaction.getClientRequest().getHeaders(); > > > > On Mon, Mar 4, 2019 at 6:09 PM Pushkar Pradhan > <pprad...@verizonmedia.com.invalid> wrote: > >> I am also trying to learn the TS APIs. I think you are supposed to call the >> TS...Release if you get a reference. >> E.g. >> if (TS_SUCCESS == TSHttpTxnClientReqGet(txnp, &buffer, &hdr_loc)) { >> TSDebug(PLUGIN_NAME, "Found client request"); >> txn_info += R"(,"client-request":)" + collect_headers(buffer, >> hdr_loc, TSHttpTxnClientReqBodyBytesGet(txnp)); >> TSHandleMLocRelease(buffer, TS_NULL_MLOC, hdr_loc); >> buffer = nullptr; >> } >> >> >>> On Mon, Mar 4, 2019 at 6:06 PM Dk Jack <dnj0...@gmail.com> wrote: >>> >>> Thanks Pushkar, I'll try that... >>> >>> On Mon, Mar 4, 2019 at 4:44 PM Pushkar Pradhan >>> <pprad...@verizonmedia.com.invalid> wrote: >>> >>>> Perhaps compiling with LSAN will help: --enable-lsan enable >>>> stand-alone Leak Sanitizer >>>> >>>> >>>>> On Mon, Mar 4, 2019 at 4:42 PM Bryan Call <bc...@apache.org> wrote: >>>>> >>>>> Looking at the graphs it looks like your headers and http1client >>> sessions >>>>> are leaking. Have you looked at this example to on how to send back >>>> error >>>>> messages using the C++ API: >>>>> >>>> >>> >> https://github.com/apache/trafficserver/blob/master/example/cppapi/customresponse/CustomResponse.cc >>>>> >>>>> -Bryan >>>>> >>>>>> On Mar 4, 2019, at 3:50 PM, Dk Jack <dnj0...@gmail.com> wrote: >>>>>> >>>>>> Hi, >>>>>> I am trying to chase a memory leak issue. I am using ATS version >>> 6.2.3 >>>>> and >>>>>> I have a custom plugin written using the c++ API (atscppapi) >> running >>> on >>>>> the >>>>>> same server. I enabled memory dump in my configuration and sent >>> traffic >>>>>> into the ATS with and without my plugin for an hour. Later, I >>> extracted >>>>> the >>>>>> individual memory stats and plotted the stats for each object type >>>>> against >>>>>> time. The link shown below contains side-by-side plots for each ATS >>>>> object >>>>>> type without and with my plugin (the right side figures are with my >>>>> plugin >>>>>> enabled). >>>>>> >>>>>> >>> https://www.dropbox.com/s/rfszd6fnjydm8s7/ats_mem_stats_comparison.pdf >>>>>> >>>>>> Without my plugin, the memory consumption increases for various >>> objects >>>>> in >>>>>> the beginning and then tapers off. However, with my plugin enabled, >>> the >>>>>> memory consumption is higher and more erratic. I am not holding on >> to >>>> the >>>>>> request in my plugin. My plugin attaches TransactionPlugin to some >>>>>> transactions (sending back 4xx response to client). For most >> others, >>> it >>>>>> lets it pass through. My plugin, doesn't allocate much memory. The >>>> memory >>>>>> it allocates is sort of semi-static (manages a few maps that are >>>> updated >>>>>> periodically). I don't anticipate my plugin's memory consumption to >>>>>> increase with the transactions. >>>>>> >>>>>> Since the presence of my plugin is the affecting the memory stats >> of >>>>>> internal ATS objects, I am suspecting this could result of me not >>> using >>>>> the >>>>>> API correctly. Would appreciate if anyone can venture a guess as to >>>> what >>>>>> could be happening. Thank for help. >>>>>> >>>>>> Dk. >>>>> >>>>> >>>> >>> >>