Woohoo, thanks so much. Actually that lcr patch fixed it, everything works great now. Also on a related note can qm_malloc cause SER hangs or any other bad things? Does it actually fix memory leaks or just help report them? Thanks again, you rock...
Matt
-----Original Message----- From: Juha Heinanen [mailto:jh@tutpro.com] Sent: Wednesday, May 04, 2005 8:30 AM To: Matt Schulte Subject: RE: [Serusers] LCR failure syntax
Matt Schulte writes:
FYI, I *finally* got around to doing this. A debug shows that load_gw
is > in fact loading both gateways..
matt,
8(30980) DEBUG:load_gws(): Added AVP <lcr_gw_addr,374650ce> >
8(30980) qm_malloc(0xf4edf000, 31) called from usr_avp.c: add_avp(112)
8(30980) qm_malloc(0xf4edf000, 32) returns address 0xf509a3ec frag. 0xf509a3d4 (size=32) on 1 -th hit > 8(30980) DEBUG:load_gws(): Added
AVP <lcr_gw_port,0> > 8(30980) qm_malloc(0xf4edf000, 31) called from usr_avp.c: add_avp(112) > 8(30980) qm_malloc(0xf4edf000, 32) returns address 0xf509a43c frag. > 0xf509a424 (size=32) on 1 -th hit > 8(30980) DEBUG:load_gws(): Added AVP <lcr_gw_addr,511f7d1> > 8(30980) qm_malloc(0xf4edf000, 31) called from usr_avp.c: add_avp(112) > 8(30980) qm_malloc(0xf4edf000, 32) returns address 0xf509a48c frag. > 0xf509a474 (size=32) on 1 -th hit > 8(30980) DEBUG:load_gws(): Added AVP <lcr_gw_port,0>
there was a bug in the debug output of DEBUG:load_gws(), which is fixed on the current CVS HEAD version and also in current https://tutpro.com/tmp/lcr-0.9.0.tgz. that, however, would not explain why load_gw() loads two gws, but next_gw() calls succeed only once.
i checked next_gw() code and it calls search_first_avp
avp = search_first_avp(gw_ap_avp_name_str, addr_port_name, &val);
and if that returns an avp, destroys that avp
destroy_avp(avp);
after first saving its value for further processing. these are the only function calls related to avps in next_gw() function. so there is no way the second gw would disappear somewhere unless (1) you use the same avp name/number for something else too or (2) there is a bug in ser usr_avp code.
i suggest that you try once more with the current lcr backport. regarding debugging, unless you are looking for memory leaks, i suggest you turn off qm_malloc debugs by commenting
-DDBG_QM_MALLOC
in Makefile.defs.
-- juha
Matt Schulte writes:
Also on a related note can qm_malloc cause SER hangs or any other bad things?
it, like any dynamic memory allocation function can cause a momory leak and eventual crash if the memory is not properly freed.
Does it actually fix memory leaks or just help report them?
it doesn't fix any leaks, just helps in debugging and is faster than normal malloc.
-- juha