Re: Re: OutOfMemoryError while compiling GNU Classpath
Dalibor Topic <[email protected]> Fri, 15 Feb 2008 18:20:13 +0100
| Newsgroups | gmane.comp.java.vm.kaffe.general |
|---|---|
| Message-ID | <[email protected]> |
Dalibor Topic wrote: > Kiyo Inaba wrote: >> Hi Ito-san, >> >> You wrote: >>>> I have found that recent Kaffe causes OutOfMemoryError in the >>>> process of this compiling. >>> I tested this on a machine with rich memory, and have found out >>> that, in order to compile GNU Classpath 0.96.1 with ecj, >> >> Since I gave up compiling GNU Classpath everytime, I did not notice >> this trouble. But, even without zzip library if we need 384MB, the >> increase of 60MB or so should not make much difference ;-) >> >> Kiyo >> P.S. I am so happy to know the weekly snap helps tracking down these >> problem. >> P.P.S. Of course, it is better to write some special note in FAQ about >> this memory issue. > > GNU Classpath CVS head is a bit tough on the compilers, agreed. ;) But > this seems to be a kaffe issue, so I'll investigate to see if the new > zzip based code is leaking memory. OK, running this through valgrind (and we could use a volunteer to make Kaffe valgrind clean now that the wrestling with the compiler warnings is coming to an end ...) gives me: ==10731== Thread 1: ==10731== ==10731== 156 (36 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 25 ==10731== at 0x4022765: malloc (vg_replace_malloc.c:149) ==10731== by 0x41E79B2: (within /lib/tls/i686/cmov/libc-2.6.1.so) ==10731== by 0x41E8208: __nss_database_lookup (in /lib/tls/i686/cmov/libc-2.6.1.so) ==10731== by 0x48EAFDB: ??? ==10731== by 0x48EC11C: ??? ==10731== by 0x4194EEB: getpwuid_r (in /lib/tls/i686/cmov/libc-2.6.1.so) ==10731== by 0x419489D: getpwuid (in /lib/tls/i686/cmov/libc-2.6.1.so) ==10731== by 0x40DC566: Java_gnu_classpath_VMSystemProperties_getUserName (gnu_classpath_VMSystemProperties.c:317) ==10731== by 0x8151E2B: ??? ==10731== by 0x81625FC: ??? ==10731== by 0x81570C2: ??? ==10731== by 0x40ABA3B: engine_callMethod (sysdepCallMethod.h:46) ==10731== ==10731== ==10731== 100 bytes in 1 blocks are possibly lost in loss record 7 of 25 ==10731== at 0x4021AA4: calloc (vg_replace_malloc.c:279) ==10731== by 0x427E115: zzip_file_open (in /usr/lib/libzzip-0.so.13.0.49) ==10731== ==10731== ==10731== 4,532,544 (46,800 direct, 4,485,744 indirect) bytes in 468 blocks are definitely lost in loss record 19 of 25 ==10731== at 0x4021AA4: calloc (vg_replace_malloc.c:279) ==10731== by 0x427E115: zzip_file_open (in /usr/lib/libzzip-0.so.13.0.49) ==10731== ==10731== ==10731== 1,885,752 bytes in 198 blocks are possibly lost in loss record 22 of 25 ==10731== at 0x4022765: malloc (vg_replace_malloc.c:149) ==10731== by 0x428C3F0: (within /usr/lib/libz.so.1.2.3.3) ==10731== by 0x428C571: inflateInit2_ (in /usr/lib/libz.so.1.2.3.3) ==10731== by 0x427E39C: zzip_file_open (in /usr/lib/libzzip-0.so.13.0.49) ==10731== ==10731== ==10731== 13,402,112 bytes in 409 blocks are possibly lost in loss record 25 of 25 ==10731== at 0x4022765: malloc (vg_replace_malloc.c:149) ==10731== by 0x427E14C: zzip_file_open (in /usr/lib/libzzip-0.so.13.0.49) ==10731== ==10731== LEAK SUMMARY: ==10731== definitely lost: 46,836 bytes in 469 blocks. ==10731== indirectly lost: 4,485,864 bytes in 337 blocks. ==10731== possibly lost: 15,287,964 bytes in 608 blocks. ==10731== still reachable: 990,462 bytes in 56 blocks. ==10731== suppressed: 0 bytes in 0 blocks. So Ito-san is right, it's my fesh zziplib code. Sorry about that, I'll get on it right away, and thank you very much for spotting it. cheers, dalibor topic