Re: Test the upcoming GNU Gatekeeper 2.3.2!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andrew,

as the manual say, ProxyAlways=1 is stronger than all other proxy
related switches. ;-)

The leaks in your valgrind output going through PPluginManager are
those false positives I talked about and are no real leaks, but there
might actually be a leak BuildReceiverReport().

Regards,
Jan


Andrew Herdman wrote:
> Thanks Jan, I'll look at doing that.
> 
> In the meantime I threw valgrind at an executable I had already, and ran 
> 40 groups of 25 (1000) calls through it.  Although proxy enable is 0, 
> the calls were still proxied (bug?), I've attached my gatekeeper.ini, a 
> statistics from the control interface and the vg output.  I'm not a 
> programmer vg looks like it found something, but I could be very wrong, 
> feel free to tell me this data is useless without a debug build.  GNUGK 
> was built 20100413 at ~7am EDT.
> 
> Oh and you were right about valguard and performance, it would peak at 
> 155% CPU utilization on the test box, fortunately there are 4 full cores 
> on the box, and 4 hyperthreaded ones.
> 
> Andrew
> 
> Gatekeeper(GNU) Version(2.3.2) 
> Ext(pthreads=1,radius=0,mysql=1,pgsql=0,firebird=0,odbc=0,sqlite=0,large_fdset=4096,crypto/ssl=1,h46018=1,h46023=1) 
> Build(Apr 13 2010, 13:38:46) Sys(Linux i686 2.6.26-2-686)
> 
> 
> -- Endpoint Statistics --
> Total Endpoints: 4  Terminals: 3  Gateways: 1  NATed: 0
> Cached Endpoints: 0  Terminals: 0  Gateways: 0
> -- Call Statistics --
> Current Calls: 0 Active: 0 From Neighbor: 0 From Parent: 0
> Total Calls: 1000  Successful: 1000  From Neighbor: 0  From Parent: 0
> Startup: Thu, 15 Apr 2010 07:24:19 -0400   Running: 0 days 00:54:13
> 
> cat gatekeeper.ini
> [Gatekeeper::Main]
> Fortytwo=42
> Name=GNUGK000
> Home=127.0.0.1,10.10.10.253
> Bind=127.0.0.1,10.10.10.253
> TimeToLive=600
> ;TotalBandwidth=200000
> StatusPort=7000
> StatusTraceLevel=1
> UseBroadcastListener=0
> CompareAliasType=1
> CompareAliasCase=0
> TimestampFormat=MySQL
> 
> 
> [LogFile]
> Rotate=daily
> RotateTime=00:00
> 
> 
> [RoutedMode]
> GKRouted=1
> H245Routed=0
> CallSignalPort=1720
> CallSignalHandlerNumber=10
> RtpHandlerNumber=8
> AcceptNeighborsCalls=1
> AcceptUnregisteredCalls=1
> RemoveH245AddressOnTunneling=0
> RemoveCallOnDRQ=0
> DropCallsByReleaseComplete=1
> SendReleaseCompleteOnDRQ=1
> SupportNATedEndpoints=1
> SupportCallingNATedEndpoints=1
> TreatUnregisteredNAT=1
> ForwardOnFacility=1
> ShowForwarderNumber=0
> Q931PortRange=20000-20999
> H245PortRange=30000-30999
> SetupTimeout=8000
> SignalTimeout=30000
> AlertingTimeout=60000
> TcpKeepAlive=1
> TranslateFacility=1
> SocketCleanupTimeout=5000
> EnableH46018=0
> 
> 
> [Proxy]
> Enable=0
> ProxyAlways=1
> T120PortRange=40000-49999
> RTPPortRange=50000-59999
> ProxyForNAT=1
> ProxyForSameNAT=1
> DisableH460Call=1
> DisableRTPQueuing=1
> EnableRTPMute=0
> 
> 
> [ModeSelection]
> 
> [RasSrv::RRQFeatures]
> 
> [RasSrv::ARQFeatures]
> 
> [RasSrv::LRQFeatures]
> NeighborTimeout=2
> SendRetries=2
> ForwardHopCount=2
> AcceptForwardedLRQ=1
> ForwardResponse=0
> ForwardLRQ=depends
> AcceptNonNeighborLRQ=1
> AcceptNonNeighborLCF=1
> 
> 
> [RoutingPolicy]
> default=internal,neighbor,explicit
> 
> 
> [RoutingPolicy::OnARQ]
> default=internal,neighbor,explicit
> 
> 
> [RoutingPolicy::OnLRQ]
> default=internal,neighbor,explicit
> 
> 
> [GkStatus::Auth]
> rule=allow
> 
> [RasSrv::RewriteE164]
> 
> [RasSrv::Neighbors]
> 
> [RasSrv::GWPrefixes]
> MCU005-064034031178=1868901,1868902,1868903,1868904
> 
> [RasSrv::PermanentEndpoints]
> 10.10.10.178=MCU005-064034031178;1868901,1868902,1868903,1868904
> 
> [Gatekeeper::Auth]
> default=allow
> 
> 
> 
> [CallTable]
> FileAcct=sufficient;start,stop,connect,on,off
> 
> [FileAcct]
> DetailFile=/var/log/gnugk/CDR.txt
> StandardCDRFormat=1
> TimestampFormat=MySQL
> Rotate=daily
> Rotatetime=00:00
> 
> 
> [Gatekeeper::Acct]
> FileAcct=sufficient;start,stop,connect,on,off
> 
> 
> 
>  cat vg.log
> ==31059== Memcheck, a memory error detector.
> ==31059== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
> ==31059== Using LibVEX rev 1854, a library for dynamic binary translation.
> ==31059== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
> ==31059== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation 
> framework.
> ==31059== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
> ==31059== For more details, rerun with: -v
> ==31059==
> ==31059== My PID = 31059, parent PID = 3213.  Prog and args are:
> ==31059==    GNUGK20100413/File_System/usr/local/bin/gnugk
> ==31059==    -t
> ==31059==    --config
> ==31059==    ./gatekeeper.ini
> ==31059==    --output
> ==31059==    /var/log/gnugk/gnugk.log
> ==31059==    --pid
> ==31059==    /var/run/gnugk/gnugk.pid
> ==31059==
> ==31059==
> ==31059== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 46 from 2)
> ==31059== malloc/free: in use at exit: 1,668,353 bytes in 26,303 blocks.
> ==31059== malloc/free: 29,145,541 allocs, 29,119,238 frees, 
> 13,420,176,156 bytes allocated.
> ==31059== For counts of detected errors, rerun with: -v
> ==31059== searching for pointers to 26,303 not-freed blocks.
> ==31059== checked 1,013,672 bytes.
> ==31059==
> ==31059== 32 bytes in 2 blocks are definitely lost in loss record 11 of 61
> ==31059==    at 0x402377E: operator new(unsigned) (vg_replace_malloc.c:224)
> ==31059==    by 0x832B9F5: 
> PDevicePluginAdapter<PNatMethod>::CreateFactory(PString const&) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x834BE65: PPluginManager::RegisterService(PString 
> const&, PString const&, PPluginServiceDescriptor*) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x8327537: 
> _GLOBAL__I_PWLIB_gStaticLoader__STUN_PNatMethod (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x837DF7C: (within 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x804E277: (within 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x837DE98: __libc_csu_init (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x45783EB: (below main) (in /lib/i686/cmov/libc-2.7.so)
> ==31059==
> ==31059==
> ==31059== 5,176 bytes in 3 blocks are possibly lost in loss record 57 of 61
> ==31059==    at 0x402377E: operator new(unsigned) (vg_replace_malloc.c:224)
> ==31059==    by 0x448699D: __gnu_cxx::free_list::_M_get(unsigned) (in 
> /usr/lib/libstdc++.so.6.0.10)
> ==31059==    by 0x836B252: 
> __gnu_cxx::bitmap_allocator<PContainerReference>::allocate(unsigned) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x8365067: PContainerReference::operator new(unsigned) 
> (in /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x8365548: PContainer::PContainer(int) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x836594A: PAbstractArray::PAbstractArray(int, int) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x836B5C8: PCharArray::PCharArray(int) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x8366716: PString::PString(char const*) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x834B6A7: 
> _GLOBAL__I__ZN14PPluginManager20additionalPluginDirsE (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x837DF7C: (within 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x804E277: (within 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x837DE98: __libc_csu_init (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==
> ==31059==
> ==31059== 20,592 bytes in 429 blocks are possibly lost in loss record 59 
> of 61
> ==31059==    at 0x402377E: operator new(unsigned) (vg_replace_malloc.c:224)
> ==31059==    by 0x80CB9E7: 
> UDPProxySocket::BuildReceiverReport(RTP_ControlFrame const&, int, bool) 
> (in /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x80DBE59: UDPProxySocket::ReceiveData() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x80C84F5: ProxyHandler::ReadSocket(YaSocket*) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x8055126: SocketsReader::Exec() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x80504F7: RegularJob::Run() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x805141B: Worker::Main() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x83467C7: PThread::PX_ThreadStart(void*) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x42354BF: start_thread (in 
> /lib/i686/cmov/libpthread-2.7.so)
> ==31059==    by 0x46426DD: clone (in /lib/i686/cmov/libc-2.7.so)
> ==31059==
> ==31059==
> ==31059== 1,218,576 bytes in 25,387 blocks are definitely lost in loss 
> record 61 of 61
> ==31059==    at 0x402377E: operator new(unsigned) (vg_replace_malloc.c:224)
> ==31059==    by 0x80CB9E7: 
> UDPProxySocket::BuildReceiverReport(RTP_ControlFrame const&, int, bool) 
> (in /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x80DBE59: UDPProxySocket::ReceiveData() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x80C84F5: ProxyHandler::ReadSocket(YaSocket*) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x8055126: SocketsReader::Exec() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x80504F7: RegularJob::Run() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x805141B: Worker::Main() (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x83467C7: PThread::PX_ThreadStart(void*) (in 
> /root/GNUGK20100413/File_System/usr/local/bin/gnugk)
> ==31059==    by 0x42354BF: start_thread (in 
> /lib/i686/cmov/libpthread-2.7.so)
> ==31059==    by 0x46426DD: clone (in /lib/i686/cmov/libc-2.7.so)
> ==31059==
> ==31059== LEAK SUMMARY:
> ==31059==    definitely lost: 1,218,608 bytes in 25,389 blocks.
> ==31059==      possibly lost: 25,768 bytes in 432 blocks.
> ==31059==    still reachable: 423,977 bytes in 482 blocks.
> ==31059==         suppressed: 0 bytes in 0 blocks.
> ==31059== Reachable blocks (those to which a pointer was found) are not 
> shown.
> ==31059== To see them, rerun with: --leak-check=full --show-reachable=yes
> 
> 
> 
> 
> Jan Willamowius wrote:
> > Andrew,
> >
> > to compile a debug executable, compile PTLib, H323Plus and GnuGk with
> > "make debug" instead of "make optnoshared". In addition to that you
> > need to copy the shared libraries for PTLib and H323Plus onto your
> > library path (a "make install" for both does that, but also copies
> > header files onto your system, so I would do it manually).
> >
> > Regards,
> > Jan
> >
> > Andrew Herdman wrote:
> >   
> >> Jan;
> >>
> >> Certainly willing to help out here, can you tell us what if anything 
> >> special is needed to build a debug executable?  I use the instructions 
> >> on the GNU/GK web page to build from CVS, the instructions for Ubuntu 
> >> (but I use Debian).
> >>
> >> Thanks
> >>   Andrew
> >>
> >>
> >> Jan Willamowius wrote:
> >>     
> >>> Hi Yuriy,
> >>>
> >>> we both looked for a Radius leak a few months ago and couldn't locate
> >>> one, so I would need a much more detailed report how to replicate the
> >>> leak.
> >>>
> >>> Actually anybody using GnuGk can run a check for memory leaks:
> >>> There is a tool called 'Valgrind' and its included with most Linux
> >>> distributions. Simply compile a GnuGk debug executable and instead of
> >>> running it as always "gnugk -c file.ini -t", you run it under Valgrind:
> >>> "valgrind --log-file=vg.log --leak-check=yes gnugk -c file.ini -t"
> >>>
> >>> The you use GnuGk as usual and try to make all different sorts of calls
> >>> that might produce a memory leak. After shutting GnuGk down (eg.
> >>> with Ctrl-C), vg.log will contain a report with leaks. There will be a
> >>> few harmless things, like memory allocated on startup and never
> >>> released, but if you managed to trigger a real leak, it will be there,
> >>> too, along the source line that allocated it.
> >>>
> >>> The only downside is that Valgrind will reduce performance
> >>> dramatically, so you probably can't use this in a production
> >>> environment.
> >>>
> >>> Regards,
> >>> Jan
> >>>
> >>>
> >>> Georgiewskiy Yuriy wrote:
> >>>   
> >>>       
> >>>> Hi.
> >>>>
> >>>> There is memory leak steel exist somethere in radius support part.
> >>>>     
> >>>>         
> >

-- 
Jan Willamowius, jan@xxxxxxxxxxxxxx, http://www.gnugk.org/

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________________

Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx
Archive: http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-users
Unsubscribe: http://lists.sourceforge.net/lists/listinfo/openh323gk-users
Homepage: http://www.gnugk.org/

[Index of Archives]     [SIP]     [Open H.323]     [Gnu Gatekeeper]     [Asterisk PBX]     [ISDN Cause Codes]     [Yosemite News]

  Powered by Linux