BMC raised a defect for this with ID SW00291932. Axton Grams
On Sun, Mar 30, 2008 at 3:46 PM, Axton <[EMAIL PROTECTED]> wrote: > Maybe, but that would be sloppy. An api shouldn't leave things allocated > that are never again accessible. > > If I set the locale in ARControlStruct to a multi-byte locale, that shows > another leak. > > > <code snippet> > strncpy (control.localeInfo.locale, "en_US.UTF-8", AR_MAX_LOCALE_SIZE); > </code snippet> > > > (2) stop in ARTermination > (dbx) run > Running: sendrem > (process id 6337) > RTC: Enabling Error Checking... > RTC: Running program... > [EMAIL PROTECTED] ([EMAIL PROTECTED]) stopped in ARTermination at 0xeb9d6848 > 0xeb9d6848: ARTermination : save %sp, -120, %sp > Current function is main > 39 rtn = ARTermination (&control, &status); > (dbx) showleaks -v > Checking for memory leaks... > > Actual leaks report (actual leaks: 2 total size: 147 > bytes) > > Memory Leak (mel): > Found leaked block of size 135 bytes at address 0x402d0 > At time of allocation, the call stack was: > [1] UNIXInitialization() at 0xeb9d3574 > [2] _pthread_once() at 0xe19b0de0 > [3] DoARInitialization() at 0xeb9d37b8 > [4] ARInitialization() at 0xeb9d36d4 > [5] main() at line 32 in "sendrem.c" > > Memory Leak (mel): > Found leaked block of size 12 bytes at address 0x435d0 > At time of allocation, the call stack was: > [1] _setlocale() at 0xe1981ae4 > [2] ARDoConnect() at 0xeb9d3d7c > [3] DoARInitialization() at 0xeb9d3990 > [4] ARInitialization() at 0xeb9d36d4 > [5] main() at line 32 in "sendrem.c" > > > > Possible leaks report (possible leaks: 0 total size: 0 > bytes) > > > (dbx) print (char *)0x435d0 > (char *) 0x435d0 = 0x435d0 "en_US.UTF-8" > (dbx) print (char *)0x402d0 > (char *) 0x402d0 = 0x402d0 > "NLSPATH=/opt/SUNWspro/bin/../prod/bin/sparcv9/../../lib/locale/en_US.UTF-8/LC_MESSAGES/%N.cat:/usr/lib/locale//LC_MESSAGES/N" > > Axton Grams > > > On Sun, Mar 30, 2008 at 6:12 AM, Wayne Keenan <[EMAIL PROTECTED]> > wrote: > > > ** I'm making an educated guess, based on my experience with other C > > API's, but it could just be some table /struct/buffer/scratch space used to > > support the locale; which will/has to exist (and potentially not grow) for > > the duration of the process? > > > > Not all memory still in use at program end is a 'leak' to be concerned > > about, it may be required and should only be free'ed at process exit; > > perhaps in this case that cleanup has been forgotten about? > > > > Just a thought. > > > > Regards > > Wayne > > > > > > > > On Sun, Mar 30, 2008 at 8:21 AM, Jarl Grøneng <[EMAIL PROTECTED]> > > wrote: > > > > > Strange. Seems like the message catalog doing the wrong stuff here. > > > > > > -- > > > Jarl > > > > > > On Sat, Mar 29, 2008 at 11:27 PM, Axton <[EMAIL PROTECTED]> wrote: > > > > ** Very odd, it would appear that if the LANG env var is set, the > > > memory > > > > leak happens; if the env var is not set, no leak. > > > > > > > > In the case of the memory leak: > > > > [EMAIL PROTECTED] /home/remedy/projects/memleak_arinit]$ locale > > > > LANG=en_US.UTF-8 > > > > LC_CTYPE="en_US.UTF-8" > > > > LC_NUMERIC="en_US.UTF-8" > > > > LC_TIME="en_US.UTF-8" > > > > LC_COLLATE="en_US.UTF-8" > > > > LC_MONETARY="en_US.UTF-8" > > > > LC_MESSAGES="en_US.UTF-8" > > > > LC_ALL= > > > > > > > > In the case of no leak: > > > > [EMAIL PROTECTED] /home/remedy/projects/memleak_arinit]$ locale > > > > LANG= > > > > LC_CTYPE="C" > > > > LC_NUMERIC="C" > > > > LC_TIME="C" > > > > LC_COLLATE="C" > > > > LC_MONETARY="C" > > > > LC_MESSAGES="C" > > > > LC_ALL= > > > > > > > > Axton > > > > > > > > > > > > > > > > On Fri, Mar 28, 2008 at 4:05 PM, Axton <[EMAIL PROTECTED]> > > > wrote: > > > > > > > > > Some add'l info: > > > > > > > > > > (dbx) stop in ARTermination > > > > > dbx: warning: 'ARTermination' has no debugger info -- will trigger > > > on > > > > first instruction > > > > > (2) stop in ARTermination > > > > > (dbx) rerun > > > > > Running: sendrem > > > > > (process id 2990) > > > > > > > > > > RTC: Enabling Error Checking... > > > > > RTC: Running program... > > > > > [EMAIL PROTECTED] ([EMAIL PROTECTED]) stopped in ARTermination at > > > > > 0xecdd6968 > > > > > 0xecdd6968: ARTermination : save %sp, -120, %sp > > > > > Current function is main > > > > > 31 rtn = ARTermination (&control, &status); > > > > > (dbx) showleaks > > > > > > > > > > Checking for memory leaks... > > > > > > > > > > Actual leaks report (actual leaks: 1 total size: > > > 154 > > > > bytes) > > > > > > > > > > Total Num of Leaked Allocation call stack > > > > > Size Blocks Block > > > > > Address > > > > > ========== ====== =========== > > > ======================================= > > > > > 154 1 0x40388 UNIXInitialization < _pthread_once > > > < > > > > DoARInitialization < ARInitialization < main > > > > > > > > > > > > > > > > > > > > Possible leaks report (possible leaks: 0 total size: > > > 0 > > > > bytes) > > > > > > > > > > > > > > > (dbx) print (char *)0x40388 > > > > > (char *) 0x40388 = 0x40388 > > > > > > > "NLSPATH=/a/b/c/usr/SUNWspro/bin/../prod/bin/sparcv9/../../lib/locale/en_US.UTF-8/LC_MESSAGES/%N.cat:/usr/lib/locale//LC_MESSAGES/N" > > > > > (dbx) exit > > > > > [EMAIL PROTECTED] scratch]$ env |grep NLSPATH > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Mar 28, 2008 at 1:41 PM, Axton <[EMAIL PROTECTED]> > > > wrote: > > > > > > > > > > > A very simple program (does nothing, really, except create an > > > arcontrol > > > > struct): > > > > > > > > > > > > [EMAIL PROTECTED] scratch]$ cat sendrem.c > > > > > > #include <string.h> > > > > > > #include <ar.h> > > > > > > #include <arextern.h> > > > > > > #include <arfree.h> > > > > > > > > > > > > int main > > > > > > ( > > > > > > int argc, > > > > > > char *argv[] > > > > > > ) > > > > > > { > > > > > > ARControlStruct control; > > > > > > ARFieldValueList fieldList; > > > > > > AREntryIdType entryId; > > > > > > ARStatusList status; > > > > > > int rtn; > > > > > > > > > > > > control.cacheId = 0; > > > > > > control.sessionId = 0; > > > > > > strncpy (control.server, "remedy", AR_MAX_SERVER_SIZE); > > > > > > strncpy (control.user, "Demo", sizeof(ARAccessNameType) - 1); > > > > > > strncpy (control.password, "", sizeof(ARPasswordType) - 1); > > > > > > strncpy (control.authString, "", AR_MAX_AUTH_SIZE); > > > > > > strcpy (control.localeInfo.locale, ""); > > > > > > strcpy (control.localeInfo.charSet, ""); > > > > > > strcpy (control.localeInfo.timeZone, ""); > > > > > > strcpy (control.localeInfo.customDateFormat, ""); > > > > > > strcpy (control.localeInfo.customTimeFormat, ""); > > > > > > strcpy (control.localeInfo.separators, ""); > > > > > > > > > > > > rtn = ARInitialization (&control, &status); > > > > > > FreeARStatusList(&status, FALSE); > > > > > > > > > > > > rtn = ARTermination (&control, &status); > > > > > > FreeARStatusList(&status, FALSE); > > > > > > > > > > > > return 0; > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] scratch]$ cat Makefile > > > > > > # > > > > > > # parameters > > > > > > > > > > > > PROGRAM = sendrem > > > > > > SOURCES = sendrem.c > > > > > > OBJECTS = sendrem.o > > > > > > RM = /usr/bin/rm -f > > > > > > > > > > > > # > > > > > > # compiler flags > > > > > > > > > > > > CC = /a/b/c/usr/SUNWspro/bin/cc > > > > > > CXX = /a/b/c/usr/SUNWspro/bin/CC > > > > > > CFLAGS = -D_REENTRANT -g -DDEBUG -v -Xc -xc99=none > > > -features=extinl > > > > > > CPPFLAGS = -I../../../lib/arapi-solaris-701/include -m32 > > > > > > LDFLAGS = -L../../../lib/arapi-solaris-701/lib > > > > > > LDLIBS = -lar -Bdynamic -lnsl -lw -lpthread -ldl > > > > > > > > > > > > # > > > > > > # standard targets > > > > > > > > > > > > all: $(OBJECTS) > > > > > > $(CXX) -o $(PROGRAM) $(OBJECTS) $(LDFLAGS) $(LDLIBS) > > > > > > > > > > > > clean: > > > > > > $(RM) $(PROGRAM) $(OBJECTS) core > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Compiles clean: > > > > > > > > > > > > [EMAIL PROTECTED] scratch]$ make clean > > > > > > /usr/bin/rm -f sendrem sendrem.o core > > > > > > [EMAIL PROTECTED] scratch]$ make > > > > > > /a/b/c/usr/SUNWspro/bin/cc -D_REENTRANT -g -DDEBUG -v -Xc > > > -xc99=none > > > > -features=extinl -I../../../lib/arapi-solaris-701/include -m32 -c > > > -o > > > > sendrem.o sendrem.c > > > > > > /a/b/c/usr/SUNWspro/bin/CC -o sendrem sendrem.o > > > > -L../../../lib/arapi-solaris-701/lib -lar -Bdynamic -lnsl -lw > > > -lpthread -ldl > > > > > > > > > > > > > > > > > > > > > > > > dbx shows a memory leak in ARInitialization: > > > > > > > > > > > > [EMAIL PROTECTED] scratch]$ dbx sendrem > > > > > > For information about new features see `help changes' > > > > > > To remove this message, put `dbxenv suppress_startup_message > > > 7.6' in > > > > your .dbxrc > > > > > > Reading sendrem > > > > > > Reading ld.so.1 > > > > > > Reading libumem.so.1 > > > > > > Reading libar.so > > > > > > Reading libnsl.so.1 > > > > > > Reading libw.so.1 > > > > > > Reading libpthread.so.1 > > > > > > Reading libdl.so.1 > > > > > > Reading libCrun.so.1 > > > > > > Reading libm.so.1 > > > > > > Reading libc.so.1 > > > > > > Reading libicuucbmc.so.32 > > > > > > Reading libicui18nbmc.so.32 > > > > > > Reading libicudatabmc.so.32 > > > > > > Reading libmp.so.2 > > > > > > Reading libCstd.so.1 > > > > > > Reading libc_psr.so.1 > > > > > > Reading libthread.so.1 > > > > > > Reading libCstd_isa.so.1 > > > > > > (dbx) check -leaks > > > > > > leaks checking - ON > > > > > > (dbx) run > > > > > > Running: sendrem > > > > > > (process id 26476) > > > > > > Reading rtcapihook.so > > > > > > Reading rtcaudit.so > > > > > > Reading libmapmalloc.so.1 > > > > > > Reading libgen.so.1 > > > > > > Reading rtcboot.so > > > > > > Reading librtc.so > > > > > > RTC: Enabling Error Checking... > > > > > > RTC: Running program... > > > > > > Reading en_US.UTF-8.so.2 > > > > > > Reading methods_unicode.so.2 > > > > > > Checking for memory leaks... > > > > > > > > > > > > Actual leaks report (actual leaks: 1 total size: > > > > 154 bytes) > > > > > > > > > > > > Total Num of Leaked Allocation call stack > > > > > > Size Blocks Block > > > > > > Address > > > > > > ========== ====== =========== > > > ======================================= > > > > > > 154 1 0x40450 UNIXInitialization < > > > _pthread_once < > > > > DoARInitialization < ARInitialization < main > > > > > > > > > > > > > > > > > > Possible leaks report (possible leaks: 0 total size: > > > > 0 bytes) > > > > > > > > > > > > > > > > > > > > > > > > execution completed, exit code is 0 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ARServer is non-existent. Same leak shown with both 7.0.1p6 and > > > 7.1p1 c > > > > api. > > > > > > > > > > > > Some special env vars are set: > > > > > > LD_PRELOAD=libumem.so.1 > > > > > > UMEM_DEBUG=default > > > > > > UMEM_LOGGING=transaction > > > > > > > > > > > > Any insight would be appreciated. > > > > > > > > > > > > OS: SunOS 5.9 Generic_122300-13 sun4u sparc SUNW,Sun-Fire-480R > > > > > > > > > > > > Thanks, > > > > > > Axton Grams > > > > > > > > > > > > > > > > > > > > > > > > __Platinum Sponsor: www.rmsportal.com ARSlist: "Where the Answers > > > Are" > > > > html___ > > > > > > > > > _______________________________________________________________________________ > > > UNSUBSCRIBE or access ARSlist Archives at www.arslist.org > > > Platinum Sponsor: www.rmsportal.com ARSlist: "Where the Answers Are" > > > > > > > __Platinum Sponsor: www.rmsportal.com ARSlist: "Where the Answers Are" > > html___ > > > > _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Platinum Sponsor: www.rmsportal.com ARSlist: "Where the Answers Are"