trafficserver-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sudheer Vinukonda <sudheervinuko...@yahoo.com>
Subject Re: Address Sanitizer issue in detecting memory leak.
Date Thu, 10 Nov 2016 21:58:53 GMT
Not sure if the *leak* in your test code below is detectable..since your program is exiting
after allocating the memory (system should automatically reclaim the memory on process exit).

You may try to modify it to something more explicit like the below - 

> #include <stdlib.h>
> void dummy() {
>   char *c = (char*) malloc(20);
   c = (char*) malloc(100);
> }
> int main() {
>   dummy();
>   while(1) {}
> }



> On Nov 10, 2016, at 1:43 PM, Vamsi Ambati <vamsi@neumob.com> wrote:
> 
> 
> I am trying to resolve a memory leak issue with ATS 7.0 version.
> We are using ATS from the CDN perspective and developed 3 plugins.
> DevOps complains that  traffic_server process gradually consumes lot of memory and does
release back which is a sign of memory leak.
> I tried with Valgrind but it didn’t work because of LUA and one of our ATS community
member suggested to  use Address Sanitizer.
> I followed exactly the steps mentioned   Debugging Traffic Server using ASAN.
> 
> I have build the traffic server with CXXFLAGS=-fno-omit-frame-pointer -fsanitize=address
> Verified that traffic_server is build with ASAN library by  'ldd bin/traffic_server’
> Restarted the traffic server with 'service nm-trafficserver restart'.
> 
> I have adopted three approaches to catch the memory leak
> 
> Approach 1: 
> Just running the traffic server(with -f option) and continuously sending HTTP requests
using wrk  (from another machine) by attaching 
> to a gdb .
> ' gdb $(pidof traffic_server)’
> break __asan_report_error.
> 
> Issue: I didn’t hit this function from the memory leak perspective.
> 
> Approach 2:
> I have run the traffic server with PROXY_AUTO_EXIT and sending the http requests 
> PROXY_AUTO_EXIT=30 ASAN_OPTIONS=detect_leaks=1:verbosity=2  bin/traffic_server -f
> 
> Issue: Tool didn’t complain any thing about the  memory leak.
> 
> 
> Approach 3:
> I have created simple code explicitly introducing the memory leak
> 
> #include <stdlib.h>
> void dummy() {
>   malloc(20);
> }
> int main() {
>   dummy();
>   return 0;
> }
> 
> Compiled with g++ -fsanitize=address add.cpp 
> Executed like ASAN_OPTIONS=detect_leaks=1 ./a.out
> 
> Issue: Tool didn’t detect this memory leak.
> 
> 
> Production System Configuration:
> 
> 16Gb Ram with 8 cores VM.
> gcc --version
> 	gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
> 
> Did any one encounter this  ASAN  issue on Ubuntu 14.04  ? If so, how did they resolve
it ?
> Any other suggestions how to narrow down the memory leak issue with ATS ?
> 
> 
> 
> Regards
>    Vamsi
> 
> PS: I am new to the community and new to Apache traffic server open source module too.
> 
> 
> 
> 

Mime
View raw message