Memory leak in oraagent.bin?

Hi All,
Running 11.2.0.1.0 on RHEL5.3.
I've got a box that seems to be leaking memory over time. Slowly, more and more memory is allocated, and more and more swap gets allocated. At first, I thought I was a bit too aggressive with my SGA memory/HugePages reservations...but we recently reduced those, and we still see swap usage slowly but steadily increasing.
I was poking around a bit, and I ran:
ps aux --sort=vszand I see:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
...many lines omitted....
oracle   15493  0.7  0.0 492100 38596 ?        Ss   Jul08  79:28 asm_lmd0_+ASM4
oracle   15777  0.0  0.0 494204 26440 ?        Ss   Jul08   0:05 asm_smon_+ASM4
oracle   15783  0.1  0.0 547480 20384 ?        Ss   Jul08  17:34 asm_gmon_+ASM4
oracle   13087  1.5  0.4 556524 368056 ?       SLl  Jul08 166:32 /grid/product/11.2.0/grid/bin/ocssd.bin
oracle   12952  0.1  0.0 587004 15188 ?        Ssl  Jul08  20:04 /grid/product/11.2.0/grid/bin/oraagent.bin
root     17895  0.2  0.0 835060 12768 ?        Ssl  Jul08  31:35 /grid/product/11.2.0/grid/bin/orarootagent.bin
root      7924  0.3  0.3 978556 271116 ?       Ssl  Jul08  37:50 /grid/product/11.2.0/grid/bin/ohasd.bin reboot
oracle   18447  0.4  0.2 1634656 180016 ?      Sl   Jul08  53:19 /grid/product/11.2.0/grid/jdk/jre//bin/java -Doracle.
root     17510  0.3  2.6 4220208 1964940 ?     Ssl  Jul08  32:26 /grid/product/11.2.0/grid/bin/crsd.bin reboot
oracle   17887  5.6 13.4 19577880 9975984 ?    Ssl  Jul08 601:36 /grid/product/11.2.0/grid/bin/oraagent.binIt's that last one, oraagent.bin that concerns me.
It seems that oraagent.bin VSZ and RSS are slowly, but steadily, climbing.
Looking at a pmap -x, it seems to be allocating a whole bunch of '[anon]' memory chunks, mostly 32k or 64k in size:
-bash-3.2$ pmap -x 17887
17887:   /grid/product/11.2.0/grid/bin/oraagent.bin
Address           Kbytes     RSS    Anon  Locked Mode   Mapping
.........many, many lines omitted for brevity......
00002aac3c000000   65536       -       -       - rw---    [ anon ]
00002aac40000000   65516       -       -       - rw---    [ anon ]
00002aac43ffb000      20       -       -       - -----    [ anon ]
00002aac44000000   65536       -       -       - rw---    [ anon ]
00002aac48000000   65536       -       -       - rw---    [ anon ]
00002aac4c000000   65536       -       -       - rw---    [ anon ]
00002aac50000000   65536       -       -       - rw---    [ anon ]
00002aac54000000   65536       -       -       - rw---    [ anon ]
00002aac58000000   65536       -       -       - rw---    [ anon ]
00002aac5c000000   65532       -       -       - rw---    [ anon ]
00002aac5ffff000       4       -       -       - -----    [ anon ]
00002aac60000000   65536       -       -       - rw---    [ anon ]
00002aac64000000   65536       -       -       - rw---    [ anon ]
00002aac68000000   65536       -       -       - rw---    [ anon ]
00002aac6c000000   65516       -       -       - rw---    [ anon ]
00002aac6fffb000      20       -       -       - -----    [ anon ]
00002aac70000000   65536       -       -       - rw---    [ anon ]
00002aac74000000   65444       -       -       - rw---    [ anon ]
00002aac77fe9000      92       -       -       - -----    [ anon ]
00002aac78000000   65536       -       -       - rw---    [ anon ]
00002aac7c000000   65536       -       -       - rw---    [ anon ]
00002aac80000000   65532       -       -       - rw---    [ anon ]
00002aac83fff000       4       -       -       - -----    [ anon ]
00002aac84000000   65532       -       -       - rw---    [ anon ]
00002aac87fff000       4       -       -       - -----    [ anon ]
00002aac88000000   65524       -       -       - rw---    [ anon ]
00002aac8bffd000      12       -       -       - -----    [ anon ]
00002aac8c000000   65516       -       -       - rw---    [ anon ]
00002aac8fffb000      20       -       -       - -----    [ anon ]
00002aac90000000   65536       -       -       - rw---    [ anon ]
00002aac94000000   65536       -       -       - rw---    [ anon ]
00002aac98000000   65536       -       -       - rw---    [ anon ]
00002aac9c000000   65524       -       -       - rw---    [ anon ]
00002aac9fffd000      12       -       -       - -----    [ anon ]
00002aaca0000000   65496       -       -       - rw---    [ anon ]
00002aaca3ff6000      40       -       -       - -----    [ anon ]
00002aaca4000000   65528       -       -       - rw---    [ anon ]
00002aaca7ffe000       8       -       -       - -----    [ anon ]
00002aaca8000000   65536       -       -       - rw---    [ anon ]
00002aacac000000   65536       -       -       - rw---    [ anon ]
00002aacb0000000   65532       -       -       - rw---    [ anon ]
00002aacb3fff000       4       -       -       - -----    [ anon ]
00002aacb4000000   65524       -       -       - rw---    [ anon ]
00002aacb7ffd000      12       -       -       - -----    [ anon ]
00002aacb8000000   65532       -       -       - rw---    [ anon ]
00002aacbbfff000       4       -       -       - -----    [ anon ]
00002aacbc000000   65512       -       -       - rw---    [ anon ]
00002aacbfffa000      24       -       -       - -----    [ anon ]
00002aacc0000000   65536       -       -       - rw---    [ anon ]
00002aacc4000000   65536       -       -       - rw---    [ anon ]
00002aacc8000000   65536       -       -       - rw---    [ anon ]
00002aaccc000000   65532       -       -       - rw---    [ anon ]
00002aaccffff000       4       -       -       - -----    [ anon ]
00002aacd0000000   65524       -       -       - rw---    [ anon ]
00002aacd3ffd000      12       -       -       - -----    [ anon ]
00002aacd4000000   65536       -       -       - rw---    [ anon ]
00002aacd8000000   65536       -       -       - rw---    [ anon ]
00002aacdc000000   65536       -       -       - rw---    [ anon ]
00002aace0000000   65536       -       -       - rw---    [ anon ]
00002aace4000000   65524       -       -       - rw---    [ anon ]
00002aace7ffd000      12       -       -       - -----    [ anon ]
00002aace8000000   65536       -       -       - rw---    [ anon ]
00002aacec000000   65444       -       -       - rw---    [ anon ]
00002aaceffe9000      92       -       -       - -----    [ anon ]
00002aacf0000000   65536       -       -       - rw---    [ anon ]
00002aacf4000000   65536       -       -       - rw---    [ anon ]
00002aacf8000000   65536       -       -       - rw---    [ anon ]
00002aacfc000000   65536       -       -       - rw---    [ anon ]
00002aad00000000   65528       -       -       - rw---    [ anon ]
00002aad03ffe000       8       -       -       - -----    [ anon ]
00002aad04000000   65536       -       -       - rw---    [ anon ]
00002aad08000000   65536       -       -       - rw---    [ anon ]
00002aad0c000000   65524       -       -       - rw---    [ anon ]
00002aad0fffd000      12       -       -       - -----    [ anon ]
00002aad10000000   65536       -       -       - rw---    [ anon ]
00002aad14000000   65536       -       -       - rw---    [ anon ]
00002aad18000000   65532       -       -       - rw---    [ anon ]
00002aad1bfff000       4       -       -       - -----    [ anon ]
00002aad1c000000   65536       -       -       - rw---    [ anon ]
00002aad20000000   32768       -       -       - rw---    [ anon ]
00002aad22001000   31744       -       -       - rw---    [ anon ]
00002aad24000000   65536       -       -       - rw---    [ anon ]
00002aad28000000   65520       -       -       - rw---    [ anon ]
00002aad2bffc000      16       -       -       - -----    [ anon ]
00002aad2c000000   65536       -       -       - rw---    [ anon ]
00002aad30000000   65536       -       -       - rw---    [ anon ]
00002aad34000000   65520       -       -       - rw---    [ anon ]
00002aad37ffc000      16       -       -       - -----    [ anon ]
00002aad38000000   65536       -       -       - rw---    [ anon ]
00002aad3c000000   65536       -       -       - rw---    [ anon ]
00002aad40000000   32768       -       -       - rw---    [ anon ]
00002aad42001000   31744       -       -       - rw---    [ anon ]
00002aad44000000   65532       -       -       - rw---    [ anon ]
00002aad47fff000       4       -       -       - -----    [ anon ]
00002aad48000000   65536       -       -       - rw---    [ anon ]
00002aad4c000000   65536       -       -       - rw---    [ anon ]
00002aad50000000   65532       -       -       - rw---    [ anon ]
00002aad53fff000       4       -       -       - -----    [ anon ]
00002aad54000000   65536       -       -       - rw---    [ anon ]
00002aad58000000   65536       -       -       - rw---    [ anon ]
00002aad5c000000   65532       -       -       - rw---    [ anon ]
00002aad5ffff000       4       -       -       - -----    [ anon ]
00002aad60000000   65536       -       -       - rw---    [ anon ]
00002aad64000000   65504       -       -       - rw---    [ anon ]
00002aad67ff8000      32       -       -       - -----    [ anon ]
00002aad68000000   65536       -       -       - rw---    [ anon ]
00002b4865c05000       4       -       -       - rw---    [ anon ]
00002b4865c06000    4256       -       -       - r-x--  libhasgen11.so
00002b486602e000    1024       -       -       - -----  libhasgen11.so
00002b486612e000      72       -       -       - rw---  libhasgen11.so
00002b4866140000      16       -       -       - rw---    [ anon ]
00002b4866144000   35368       -       -       - r-x--  libclntsh.so.11.1
00002b48683ce000    2044       -       -       - -----  libclntsh.so.11.1
00002b48685cd000    1524       -       -       - rw---  libclntsh.so.11.1
00002b486874a000     144       -       -       - rw---    [ anon ]
00002b486876e000       8       -       -       - r-x--  libskgxn2.so
00002b4868770000    1020       -       -       - -----  libskgxn2.so
00002b486886f000       4       -       -       - rw---  libskgxn2.so
00002b4868885000       8       -       -       - rw---    [ anon ]
00002b4868887000     444       -       -       - r-x--  libasmclnt11.so
00002b48688f6000    1024       -       -       - -----  libasmclnt11.so
00002b48689f6000      72       -       -       - rw---  libasmclnt11.so
00002b4868a08000       4       -       -       - rw---    [ anon ]
00002b4868a09000     316       -       -       - r-x--  libcell11.so
00002b4868a58000    1020       -       -       - -----  libcell11.so
00002b4868b57000      32       -       -       - rw---  libcell11.so
00002b4868b5f000       4       -       -       - rw---    [ anon ]
00002b4868b60000     732       -       -       - r-x--  libskgxp11.so
00002b4868c17000    1024       -       -       - -----  libskgxp11.so
00002b4868d17000       8       -       -       - rw---  libskgxp11.so
00002b4868d19000    2580       -       -       - r-x--  libnnz11.so
00002b4868f9e000    1020       -       -       - -----  libnnz11.so
00002b486909d000     268       -       -       - rw---  libnnz11.so
00002b48690e0000       4       -       -       - rw---    [ anon ]
00002b48690e1000    1160       -       -       - r-x--  libgns11.so
00002b4869203000    1020       -       -       - -----  libgns11.so
00002b4869302000      20       -       -       - rw---  libgns11.so
00002b4869307000       4       -       -       - rw---    [ anon ]
00002b4869308000     136       -       -       - r-x--  libeons.so
00002b486932a000    1020       -       -       - -----  libeons.so
00002b4869429000       8       -       -       - rw---  libeons.so
00002b486942b000     100       -       -       - r-x--  libonsx.so
00002b4869444000    1024       -       -       - -----  libonsx.so
00002b4869544000       4       -       -       - rw---  libonsx.so
00002b4869545000      12       -       -       - rw---    [ anon ]
00002b4869548000       4       -       -       - r-x--  libaio.so.1.0.1
00002b4869549000    2044       -       -       - -----  libaio.so.1.0.1
00002b4869748000       4       -       -       - rw---  libaio.so.1.0.1
00002b4869749000     292       -       -       - rw---    [ anon ]
00002b48697a7000      40       -       -       - r-x--  libnss_files-2.5.so
00002b48697b1000    2044       -       -       - -----  libnss_files-2.5.so
00002b48699b0000       4       -       -       - r----  libnss_files-2.5.so
00002b48699b1000       4       -       -       - rw---  libnss_files-2.5.so
00002b48699b2000     160       -       -       - rw---    [ anon ]
00007fff452c2000     140       -       -       - rwx--    [ stack ]
00007fff452e5000       4       -       -       - rw---    [ anon ]
ffffffffff600000    8192       -       -       - -----    [ anon ]
total kB        19586072       -       -       -Is anyone aware of a memory leak in oraagent.bin in 11.2.0.1.0? I did a Google search and a MOS search, no luck at all.
Any thoughts or suggestions are welcome.
Thanks,
-Mark

Also noticed, this is only happening on node 4 of a 4 node cluster. The other three nodes, the memory usage of oraagent.bin is an order of magnitude lower, and does not appear to be growing. On node 4, it has huge memory allocation and continues to grow, and also, seems to have accrued a lot more CPU time (which, I suppose is consistent).
And yes, all 4 nodes have been up almost exactly the same amount of time (1 week, 1 day), within a few minutes of each other.
-Mark

Similar Messages

  • JBoss EAP 6 On JRockit - Memory Leak

    hello team.
    I have memory leak problem on jboss and jrockit.
    My Environment :
    1. OS :          
    CentOS release 6.4 (Final)
    2. JRockit :     
    java version "1.6.0_45"
         Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
         Oracle JRockit(R) (build R28.2.7-7-155314-1.6.0_45-20130329-0641-linux-x86_64, compiled mode)
    3. Application Server:
    JBoss EAP 6.2.0.GA
    4. Application
    Large EJB Application (100 and more EJB Beans (Stateless, Stateful,  MDB, Timers and so on)
    Everything works fine on older application server versions (4.3 , 4.2)
    But now I have Problem
    Of course I know that problem is new version - and i have discussion on JBoss forums.
    but guys I have question about jrockit with you:
    What is the option "Other" in memory ??
    [jboss@jboss-new bin]$ jrcmd 17114  print_memusage
    17114:
    Total mapped                       8457864KB           (reserved=2983100KB)
    -              Java heap              3145728KB           (reserved=0KB)
    -              GC tables            105232KB         
    -          Thread stacks       46412KB           (#threads=138)
    -          Compiled code       1048576KB           (used=12257KB)
    -               Internal                   1480KB         
    -                     OS       170324KB         
    -                  Other       3639056KB         
    -            Classblocks         10496KB           (malloced=9631KB #28393)
    -        Java class data       289536KB           (malloced=192391KB #133697 in 28393 classes)
    - Native memory tracking     1024KB           (malloced=294KB #10)
    [jboss@jboss-new bin]$
    This size increases every time - and took entire amount of RAM.
    Thank in Advance.
    Regards,
    Paata Lominadze

    Not sure what the 'other' is, but it is probably best shown by using an example. By using displayMap we can display a memory map of various JVM subsystems and libraries that are loaded, including third-party libraries.
    ./jrcmd 4523 print_memusage displayMap
    Total mapped                  3984796KB           (reserved=2978740KB)
    -              Java heap       524288KB           (reserved=0KB)
    -              GC tables        17548KB         
    -          Thread stacks        20276KB           (#threads=39)
    -          Compiled code      1048576KB           (used=14224KB)
    -               Internal         1672KB         
    -                     OS       146924KB         
    -                  Other      2092648KB         
    -            Classblocks         7424KB           (malloced=7381KB #20064)
    -        Java class data       124416KB           (malloced=124411KB #91048 in 20064 classes)
    - Native memory tracking         1024KB           (malloced=118KB #10)
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        OS                          *java    r x 0x0000000000400000.(     76KB)
        OS                          *java    rw  0x0000000000612000.(      4KB)
        OS                        *[heap]    rw  0x00000000007c1000.(    132KB)
       INT                           Poll    r   0x000000007fffe000 (      4KB)
       INT                         Membar    rw  0x000000007ffff000.(      4KB)
       MSP              Classblocks (1/2)    rw  0x00000000df8c0000 (   6912KB)
       MSP              Classblocks (2/2)    rw  0x00000000dff80000 (    512KB)
      HEAP                      Java heap    rw  0x00000000e0000000.( 524288KB)
        OS                    *ld-2.12.so    r x 0x0000003664400000.(    128KB)
        OS                    *ld-2.12.so    r   0x000000366461f000 (      4KB)
        OS                    *ld-2.12.so    rw  0x0000003664620000 (      4KB)
        OS                   **ld-2.12.so    rw  0x0000003664621000.(      4KB)
       OS           *gconv-modules.cache    r   0x00007f8f2e4a0000 (     28KB)
    THREAD                     Stack 4630    rwx 0x00007f8f2e4a7000 (      8KB)
    THREAD                     Stack 4630        0x00007f8f2e4a9000 (     12KB)
    THREAD                     Stack 4630    rwx 0x00007f8f2e4ac000 (    244KB)
       MSP         Java class data (5/37)    rw  0x00007f8f2e4e9000 (  14336KB)
       MSP         Java class data (9/37)    rw  0x00007f8f2fa40000 (   5888KB)
                                             rw  0x00007f8f30000000 (    188KB)
                                                 0x00007f8f3002f000 (  65348KB)
                                             rw  0x00007f8f34000000 (    132KB)
                                                 0x00007f8f34021000 (  65404KB)
                                             rw  0x00007f8f38000000 (    412KB)
                                                 0x00007f8f38067000.(  65124KB)
       MSP        Java class data (10/37)    rw  0x00007f8f3c034000 (  34048KB)
                                             rw  0x00007f8f3e174000 (   8200KB)
       MSP        Java class data (11/37)    rw  0x00007f8f3e976000 (    256KB)
        OS                     *libhpi.so    rw  0x00007f8fb37fc000 (      8KB)
        OS                    **libhpi.so    rw  0x00007f8fb37fe000 (      4KB)
      CODE                  Compiled code    rwx 0x00007f8fb37ff000 (     64KB)
      CODE                  Compiled code    rwx 0x00007f8fb380f000 (    128KB)
      CODE                  Compiled code    rwx 0x00007f8fb382f000 (     64KB)
      MSP        Java class data (37/37)    rw  0x00007f8ff83a1000 (    512KB)
        GC Modified Union Set (committed)    rw  0x00007f8ff8421000 (    132KB)
        GC                     Card table    rw  0x00007f8ff8442000 (   1024KB)
        GC        Object bits (committed)    rw  0x00007f8ff8542000 (   8196KB)
    Here
    - thread is thread related (such as thread stacks)
    - int, internal use (such as pointer pages)
    - heap, chunk used by JRockit for the Java heap
    - os, mapped directly from the operating system, such as third party DLLs or shared objects
    - msp, memory space. a memory space is a native heap with a specific purpose, for example native memory allocation inside the JVM
    - gc, garbage collection related, for example live bits
    - code, compiled code
    The 'other' memory space looks to me (from the blank entries in the above print-out) like they are a memory pages to are still not used. When the JVM starts it mappes an amount of memory. To my knowledge JRockit uses mmap (mmap(2) - Linux manual page), which creates a new mapping in the virtual address space. JRockit reserves an amount of memory (Java Heap (heap where your object instances go) + its own runtime (all the others)).
    To see where the growth is in the various memory spaces, you can use 'print_memusage baseline', after which you can execute print_memusage again, for example,
    ./jrcmd 4523 print_memusage scale=M
    4523:
    Total mapped                     3896MB      +4MB (reserved=2905MB -3MB)
    -              Java heap          512MB           (reserved=0MB)
    -              GC tables           17MB         
    -          Thread stacks           19MB           (#threads=39)
    -          Compiled code         1024MB           (used=14MB +1MB)
    -               Internal            1MB         
    -                     OS          143MB         
    -                  Other         2043MB         
    -            Classblocks            7MB           (malloced=7MB #20596 +532)
    -        Java class data          126MB      +4MB (malloced=125MB +4MB #93640 +2592 in 20596 classes)
    - Native memory tracking            1MB           (malloced=0MB #20 +10)
    Note the additional column that prints out the difference in memory usage in relation to the baseline. You can also monitor native allocations by using trace_alloc_sites, memory allocations can then be displayed with different levels of detail using the level argument.
    ./jrcmd 4523 print_memusage trace_alloc_sites=true
    4523:
    Total mapped                  3989660KB   +4864KB (reserved=2974732KB -4008KB)
    -              Java heap       524288KB           (reserved=0KB)
    -              GC tables        17548KB         
    -          Thread stacks        20276KB           (#threads=39)
    -          Compiled code      1048576KB           (used=15265KB +1040KB)
    -               Internal         1672KB         
    -                     OS       146924KB         
    -                  Other      2092648KB         
    -            Classblocks         7680KB    +256KB (malloced=7669KB +287KB #20596 +532)
    -        Java class data       129024KB   +4608KB (malloced=128967KB +4555KB #93640 +2592 in 20596 classes)
    - Native memory tracking         1024KB           (malloced=236KB +118KB #20 +10)
    ./jrcmd 4523 print_memusage level=3
    4523:
    Total mapped                  3989660KB   +4864KB (reserved=2974732KB -4008KB)
    -              Java heap       524288KB           (reserved=0KB)
    -              GC tables        17548KB         
    -          Thread stacks        20276KB           (#threads=39)
    -          Compiled code      1048576KB           (used=15265KB +1040KB)
    -               Internal         1672KB         
    -                     OS       146924KB         
    -                  Other      2092648KB         
    -            Classblocks         7680KB    +256KB (malloced=2KB -7379KB #4 -20060) Not fully traced
    -        Java class data       129024KB   +4608KB (malloced=26KB -124385KB #16 -91032 in 20596 classes) Not fully traced.
    - Native memory tracking         1024KB           (malloced=118KB #10) Not fully traced.
         gather_memorymap_database                     memtrace.c: 206         91KB     +91KB (#1 +1)
               gather_memory_usage                  osal_mspace.c:5142          7KB      +7KB (#4 +4)
      msGatherMSpacesUsageDatabase                  osal_mspace.c:6128          2KB      +2KB (#1 +1)
      msGatherMSpacesUsageDatabase                  osal_mspace.c:6134         16KB     +16KB (#1 +1)
    Note this is more on the JVM level, in your case in might be beneficial to investigate what is happening on the java heap. By using print_object_summary you can get insight how memory on the heap is used on a per-class basis. To get to the bottom of where the memory leak is you can use the memory-leak-detector (an example of its use can be found here Middleware Snippets: Fast, Faster, JRockit). You can also obtain a heapdump that can be analyzed by using for example MAT (see for an example here Middleware Snippets: Visualizing Class Loading). To obtain a heapdump you can run the command, for example,
    [weblogic@machine1 bin]$ ./jrcmd 4523 runsystemgc full=true fullcompact=true
    4523:
    [weblogic@machine1 bin]$ ./jrcmd 4523 hprofdump filename=/home/weblogic/dump.hprof
    4523:
    Wrote dump to /home/weblogic/dump.hprof
    Note that this first issues a full GC by using the runsystemgc command.

  • Memory Leak in 10.4.7

    Question for all you Mac "Guru's" out there. I have an Imac (intel) with 2 512MB Memory Sticks and Have Noticed that there appears to be a memory leak in the OS. After several staggering hours It seems that the culprit is WindowServer and kernal_task. I have seen the WindowServer process Real Memory increase a couple of Kbytes every 3-4 seconds. My kernal_task seems to always be the process using the most memory of all.
    After a fresh restart Kernal_task is using about 40MB and windowserver about 20MB. now if I let it sit for just a few hours those numbers almost double. I admit it could be something else, but i don't think so since i sit and stare at my activity monitor and nothing seems to change except for those 2 processes. Anybody else notice this at all?
    I asked the snob at the Genius bar in the Chandler, AZ Apple store and he suggested to try re-seating the memory sticks and I have with no change. I have even done a fresh install of OS X and the updates to 10.4.7. I have noticed the problem since 10.4.5.
    Any help would be greatly appreciated!
    I don't have a lot of 3rd party software except for Firefox and thunderbird. All the apps that i use are Universal Binary with the exception of Quicken that came with my iMac.
    Thanks
    17" inch Intel Imac   Mac OS X (10.4.4)  

    On mdc open terminal and goto;
    /Library/Filesystems/Xsan/bin
    run as root
    cvfsck -j <selectyourvolume>
    to make sure journal is written out to volume
    then run
    cvfsck <selectyourvolume> until no errors are reported
    you can run it with -n option the first time to make sure you do only a readonly check (no modification, hence the FS will not be fixed)

  • Potential memory leak in 11.2.0.1.0 cluster stack components

    Hi All,
    We are running 11.2.0.1.0 RAC on OEL 5.5 and OEL 5.5. On all of our boxes, we have observed a gradual increase and filling of swap space. Swap usage slowly but steadily increase to a point where either the Node boots automatically or we have to manually restart it.
    To get more insight into the issues, we recently upgraded one of the nodes to Oracle unbreakable kernel and installed smem to profile the memory consumption pattern. smem will give the process set size (RSS), the unique set size (USS) and the proportional set size (PSS) which is the unique set size plus a portion of the shared memory that is being used by this process.
    It appears that there is a gradual increase in memory/swap consumption of some clusterware components. Also the weird part is that the process is filling up the swap space and not utilizing the unallocated RAM.
    Memory footprint at the Node start...
    PID User Command Swap USS PSS RSS
    4001 root /u01/app/11.2.0/grid/bin/ohasd.bin 16236 18128 18829 30284
    5200 oracle /u01/app/11.2.0/grid/bin/oraagent.bin 13536 74512 75587 87156
    4255 grid /u01/app/11.2.0/grid/bin/oraagent.bin 13484 2644 3628 15056
    4688 root /u01/app/11.2.0/grid/bin/crsd.bin 8240 71584 72628 85692
    Memory footprint after 24 hrs...
    PID User Command Swap USS PSS RSS
    5200 oracle /u01/app/11.2.0/grid/bin/oraagent.bin 94952 121168 122161 133488
    4688 root /u01/app/11.2.0/grid/bin/crsd.bin 66220 76684 77723 90776
    4001 root /u01/app/11.2.0/grid/bin/ohasd.bin 21448 24708 25410 36892
    4255 grid /u01/app/11.2.0/grid/bin/oraagent.bin 13840 2372 3202 14316
    #free -m
    total used free shared buffers cached
    Mem: 3964 3856 108 0 5 1846
    -/+ buffers/cache: 2004 1959
    Swap: 4094 617 3477
    Has anyone experience similar situation? I did google search as well as Metalink, but did not find anything useful.
    Any thoughts/suggestions are welcome.
    Thanks,
    -Sanjeev
    Edited by: user12219014 on Jan 9, 2011 5:58 AM

    Thanks for pointing to MOS notes, they were quite helpful. Though sometime on our system, ohasd.bin consumes more resources. Is it safe to kill it?
    Also, we have observed that there are multiple oraagents belonging to different users such as root,grid and oracle.
    grid 14620 1 0 20:32 ? 00:00:14 /u01/app/11.2.0/grid/bin/oraagent.bin
    root 14625 1 0 20:32 ? 00:00:02 /u01/app/11.2.0/grid/bin/orarootagent.bin
    root 14627 1 0 20:32 ? 00:00:00 /u01/app/11.2.0/grid/bin/cssdagent
    grid 14803 1 0 20:32 ? 00:00:06 /u01/app/11.2.0/grid/bin/oraagent.bin
    oracle 14807 1 0 20:32 ? 00:01:53 /u01/app/11.2.0/grid/bin/oraagent.bin
    root 14811 1 0 20:32 ? 00:00:38 /u01/app/11.2.0/grid/bin/orarootagent.bin
    When these are killed, not all are re-spawned automatically - typically oraagent belonging to "oracle" user is left out. Is this an expected behaviour or it will cause some instability in the clusterware?
    Thanks

  • Memory Leak with JPopupMenu

    It seems there is a memory leak with JPopupMenu. The following program demonstrates this leak. If you run the program, click on show form, and then close the form, the used memory will be GCd appropriately. If you click on show form, then right click on the table to show the popup (even if you dont do anything else with the popup) then close the form, it never GCs the form. I've tried all kinds of crazy things, but I cant seem to find what is keeping the memory from being GCd.
    Peter
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.beans.PropertyChangeListener;
    import java.text.DecimalFormat;
    import java.util.Timer;
    import java.util.TimerTask;
    import java.util.Vector;
    import javax.swing.AbstractAction;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    import javax.swing.JRadioButtonMenuItem;
    import javax.swing.JScrollPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTable;
    import javax.swing.SwingUtilities;
    import javax.swing.table.AbstractTableModel;
    @SuppressWarnings("serial")
    public class TriState extends JPanel {
         private static final long               K               = 1024;
         private static final long               M               = K * K;
         private static final long               G               = M * K;
         private static final long               T               = G * K;
         protected static int ctr = 1;
         private JButton                              btnShow          = new JButton("Show Form");
         private JLabel                              lblMem          = new JLabel();
         private static final DecimalFormat     df               = new DecimalFormat("#,##0.#");
         protected Timer                              updateTimer     = new Timer();
         public TriState() {
              this.setLayout(new GridLayout());
              add(btnShow);
              add(lblMem);
              updateTimer.scheduleAtFixedRate(new UpdateTimerTask(), 1000, 1000);
              btnShow.addActionListener(new ActionListener() {
                   @Override
                   public void actionPerformed(ActionEvent e) {
                        FrmReferrals fr = new FrmReferrals();
                        fr.setVisible(true);
         class UpdateTimerTask extends TimerTask {
              public void run() {
                   SwingUtilities.invokeLater(new Runnable() {
                        @Override
                        public void run() {
                             dumpMemoryUsage();
         protected void dumpMemoryUsage() {
              System.gc();
              Long t = Runtime.getRuntime().totalMemory();
              long f = Runtime.getRuntime().freeMemory();
              String st = convertToStringRepresentation(t);
              String sf = convertToStringRepresentation(f);
              String su = convertToStringRepresentation(t - f);
              System.out.println("Total:" + st + "(" + t + ") Free:" + sf + "(" + f + ") Used:" + su + "(" + (t - f) + ")");
              lblMem.setText(su + "/" + st);
         public static String convertToStringRepresentation(final long value) {
              final long[] dividers = new long[]{T, G, M, K, 1};
              final String[] units = new String[]{"TB", "GB", "MB", "KB", "B"};
              if (value < 1)
                   throw new IllegalArgumentException("Invalid file size: " + value);
              String result = null;
              for (int i = 0; i < dividers.length; i++) {
                   final long divider = dividers;
                   if (value >= divider) {
                        final double dr = divider > 1 ? (double) value / (double) divider : (double) value;
                        result = df.format(dr) + units[i];
                        break;
              return result;
         private static void createAndShowGUI() {
              JFrame frame = new JFrame("SimpleTableDemo");
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              // Create and set up the content pane.
              TriState newContentPane = new TriState();
              newContentPane.setOpaque(true); // content panes must be opaque
              frame.setContentPane(newContentPane);
              // Display the window.
              frame.pack();
              frame.setVisible(true);
         public static void main(String[] args) {
              javax.swing.SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        createAndShowGUI();
         protected class PopupMenu extends JPopupMenu {
              public PopupMenu() {
                   JRadioButtonMenuItem item1 = new JRadioButtonMenuItem(new AbstractAction("Insert Item") {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                             System.out.println(e.getActionCommand());
                   item1.setActionCommand("Insert");
                   add(item1);
                   JRadioButtonMenuItem item2 = new JRadioButtonMenuItem(new AbstractAction("Delete Item") {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                             System.out.println(e.getActionCommand());
                   item2.setActionCommand("Delete");
                   add(item2);
         public class FrmReferrals extends JFrame {
              public FrmReferrals() {
                   super();
                   init();
              protected void init() {
                   jbInit();
              protected void closeIt() {
                   uninit();
              // variables here
              protected Dimension          dimPreferred     = new Dimension(1270, 995);
              protected JTabbedPane     tabbedPane          = new JTabbedPane();
              protected JTable          tblReferrals     = null;
              protected PopupMenu          popMenu           = new PopupMenu();
              protected void jbInit() {
                   setPreferredSize(dimPreferred);
                   setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                   setTitle("Referrals");
                   JPanel pnl = new JPanel();
                   pnl.setOpaque(false);
                   pnl.setLayout(new BorderLayout());
                   pnl.add(tabbedPane, BorderLayout.CENTER);
                   // put it all in the frame
                   add(pnl);
                   pack();
                   setLocationRelativeTo(null);
                   // init the table and model
                   ReferralsTableModel ctm = new ReferralsTableModel(buildDummyVector());
                   tblReferrals = new JTable(ctm);
                   tblReferrals.setComponentPopupMenu(popMenu);
                   tblReferrals.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                   tabbedPane.add(new JScrollPane(tblReferrals, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
                   addWindowListener(new WindowListener() {
                        @Override
                        public void windowActivated(WindowEvent e) {}
                        @Override
                        public void windowClosed(WindowEvent e) {}
                        @Override
                        public void windowClosing(WindowEvent e) {
                             closeIt();
                        @Override
                        public void windowDeactivated(WindowEvent e) {}
                        @Override
                        public void windowDeiconified(WindowEvent e) {}
                        @Override
                        public void windowIconified(WindowEvent e) {}
                        @Override
                        public void windowOpened(WindowEvent e) {}
              protected Vector<DBO_Referrals> buildDummyVector() {
                   Vector<DBO_Referrals> vr = new Vector<DBO_Referrals>();
                   for (int x = 0; x < 5000; x++) {
                        DBO_Referrals r = new DBO_Referrals(x+(5000*ctr));
                        vr.add(r);
                   return vr;
              protected void uninit() {
                   tblReferrals.setComponentPopupMenu(null);
                   for (Component c : popMenu.getComponents()) {
                        PropertyChangeListener[] pl = c.getPropertyChangeListeners();
                        for (PropertyChangeListener l : pl)
                             c.removePropertyChangeListener(l);
                        if (c instanceof JMenuItem) {
                             ActionListener [] al = ((JMenuItem)c).getActionListeners();
                             for (ActionListener l : al) {
                                  ((JMenuItem)c).removeActionListener(l);
                   popMenu = null;
              protected class DBO_Referrals {
                   protected long          id;
                   protected String     Employee;
                   protected String     Rep;
                   protected String     Asst;
                   protected String     Client;
                   protected String     Dates;
                   protected String     Status;
                   protected String     Home;
                   public DBO_Referrals(long id) {
                        this.id = id;
                        Employee = "Employee" + id;
                        Rep = "Rep" + id;
                        Asst = "Asst" + id;
                        Client = "Client" + id;
                        Dates = "Dates" + id;
                        Status = "Status" + id;
                        Home = "Home" + id;
                   public long getId() {
                        return id;
                   public String getEmployee() {
                        return Employee;
                   public String getRep() {
                        return Rep;
                   public String getAsst() {
                        return Asst;
                   public String getClient() {
                        return Client;
                   public String getDates() {
                        return Dates;
                   public String getStatus() {
                        return Status;
                   public String getHome() {
                        return Home;
              public class ReferralsTableModel extends AbstractTableModel {
                   protected Vector<DBO_Referrals>          data          = new Vector<DBO_Referrals>();
                   protected String[]                         sColumns     = {"id", "Employee", "Rep", "Assistant", "Client", "Date", "Status", "Home", "R"};
                   public ReferralsTableModel() {
                        super();
                   public ReferralsTableModel(Vector<DBO_Referrals> data) {
                        this();
                        this.data = data;
                   @SuppressWarnings("unchecked")
                   @Override
                   public Class getColumnClass(int col) {
                        switch (col) {
                             case 0 :
                                  return Long.class;
                             default :
                                  return String.class;
                   @Override
                   public int getColumnCount() {
                        return sColumns.length;
                   @Override
                   public int getRowCount() {
                        return data.size();
                   @Override
                   public Object getValueAt(int row, int col) {
                        if (row > data.size())
                             return null;
                        DBO_Referrals a = data.get(row);
                        switch (col) {
                             case 0 :
                                  return a.getId();
                             case 1 :
                                  return a.getEmployee();
                             case 2 :
                                  return a.getRep();
                             case 3 :
                                  return a.getAsst();
                             case 4 :
                                  return a.getClient();
                             case 5 :
                                  return a.getDates();
                             case 6 :
                                  return a.getStatus();
                             case 7 :
                                  return a.getHome();
                             case 8 :
                                  return "+";
                             default :
                                  return null;

    BTW instead of continually printing out the memory use a profiler (jvisualvm in the jdk/bin directory -> heapdump -> search on your class -> view in instances -> find nearest GC root).
    Looks like BasicPopupMenuUI doesn't remove a reference to the JRootPane immediately. As far as I can see it will be removed when another menu shows.
    As a hackish workaround you can try this in you FrmReferrals#uninit():
                for(ChangeListener listener : MenuSelectionManager.defaultManager().getChangeListeners()) {
                    if (listener.getClass().getName().contains("MenuKeyboardHelper")) {
                        try {
                            Field field = listener.getClass().getDeclaredField("menuInputMap");
                            field.setAccessible(true);
                            field.set(listener, null);
                        } catch (Exception e) {
                            // ignored
                        break;
                }Funnily enough though it isn't there when I reduce your code to a SSCCE:
    import java.awt.*;
    import javax.swing.*;
    public class TestBasicPopupMenuUILeak extends JFrame {
        public TestBasicPopupMenuUILeak() {
            super("Not collected right away");
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    JFrame frame = new JFrame("Test");
                    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                    frame.getContentPane().add(
                            new JButton(new AbstractAction("Show frame") {
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                    EventQueue.invokeLater(new Runnable() {
                                        public void run() {
                                            JLabel label = new JLabel(
    "Right click to show popup, then close this frame."
    + "The frame with not be GCed until another (popup) menu is shown.");
                                            JPopupMenu popup = new JPopupMenu(
                                                    "Popup");
                                            popup.add("Item");
                                            label.setComponentPopupMenu(popup);
                                            // named differently so you can find it
                                            // easily in your favorite profiler
                                            JFrame frame = new TestBasicPopupMenuUILeak();
                                            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                                            frame.getContentPane().add(label);
                                            frame.pack();
                                            frame.setLocationRelativeTo(null);
                                            frame.setVisible(true);
                    frame.pack();
                    frame.setLocationRelativeTo(null);
                    frame.setVisible(true);
    }

  • Suspected memory leak in numbers

    Dear All!
    I am facing a problem in Numbers, which seems to me a memory leak issue.
    The original problem occurred when I tried to process a data set consisting of 6 tables of 6 columns by 600-800 rows. A scatterplot with 6 series has been created using 2 selected columns of each table. The "your startup disk is almost full" was first symptom when I realiser that something is going wrong. I traced back using activity monitor that when I edit the spreadsheet the memory fills up rapidly. Once the memory is full the program starts to use up the swap area. I my case I have about 20 GB empty SSD space. After a few hours of work on this table the entire memory and the SSD was filled up.
    To check whether the file is corrupted or something else issuing on I made a mock file to test the behaviour. I could produce the same response with a single table of 2 columns and 3000  rows of random numbers and a scatter plot of the this pairs of numbers.
    Originally I have faced the problem on a mid 2014 MBP running OS 10.10.3 (i5, 8GB, 128GB SSD) but I have carried out the mock data experiment also on a  2014 MBA OS10.10.2 (i5, 8GB, 128GB SSD) and I have experienced that the memory usage keeps on increasing as I roll up and down in the table, just like on my MBP and in case of the original file. During the few minutes of the test on the MBA the memory usage of the Numbers application indicated in Activity Monitor shoot up from 70Mb to over 1GB and kept on increasing with every operation carried out in numbers, regardless the type of the operation. In this sense there was no difference whether it was rolling the sheet or saving the file. 
    The extra applications that are installed on both computers: Latex, and Parallels (but non of them were running during the tests)
    On my MBP I ran a leak command in terminal for the  Numbers and got the following result.
    Last login: Thu Apr 16 14:03:17 on ttys000
    Peters-MacBook-Pro:~ xxxxxxxx$ leaks 5743 --nocontext
    Process:         Numbers [5743]
    Path:            /Applications/Numbers.app/Contents/MacOS/Numbers
    Load Address:    0x102553000
    Identifier:      com.apple.iWork.Numbers
    Version:         3.5.2 (2118)
    Build Info:      Numbers-2118000000000000~1
    Code Type:       X86-64
    Parent Process:  ??? [1]
    Date/Time:       2015-04-16 14:13:01.457 +0200
    OS Version:      Mac OS X 10.10.3 (14D131)
    Report Version:  7
    Analysis Tool:   /usr/bin/leaks
    leaks Report Version:  2.0
    Process 5743: 1320819 nodes malloced for 996727 KB
    Process 5743: 158802 leaks for 871233088 total leaked bytes.
    I have searched similar issues on the net and on the community sites but unfortunately could not find any relevant information.
    Any help or suggestion would be highly appreciated.

    Dear Wayne,
    Thanks for your suggestions, I will definitely make a bug report. In fact I have already tried it through apples homepage, and I wanted to make a more specific one but to do so you have to become a developer... which would be a really bad joke. 
    However I did the mock experiment with 700 lines of random data in 2 columns and a scatter plot of the 700 points. The same happens. The memory usage of Numbers went up to 1.63GB... even higher since I have checked.
    To answer your questions I have MBP 128 GB SSD of which 20 GB is free, RAM: 8GB
    You see... my original problematic dataset consisting of 6 times 500-800 points has been plotted in a fraction of a second, handled as easy as in Excel, LibreOffice or Gnumeric (which are not intended for handling a lot of data; for that purpose I use Matlab or Python). So without any complains or extra effort my data points are plotted beautifully (as lines with no markers to keep the plot clear), but the memory is gradually filled up...
    I am not sure it is the right approach to  reduce the use of Numbers for very tiny datasets. This would mean that you were unable to make a chart for two years of data of precipitation or temperature or stock value or anything... sounds very unlikely. It sounds like you have a nice car that can go 280 km/h and reach 100 km/h in 4s, with the only the restriction that wheels are designed to fall off at 30 km/h without warning! I don't think that is the case. Would be very unbalanced performance.
    Many thanks again. I'll go and make my bug report to get the wheels reinforced .
    Peter

  • Memory leak under GNU/Linux when using exec()

    Hi,
    We detected that our application was taking all the free memory of the computer when we were using intensively and periodically the method exec() to execute some commands of the OS. The OS of the computer is a GNU/Linux based OS.
    So, in order to do some monitoring we decided to wrote a simple program that called exec() infinite number of times, and using the profiler tool of Netbeans we saw a memory leak in the program because the number of surviving generations increased during all the execution time. The classes that have more surviving generations are java.lang.ref.Finalizer, java.io.FileDescriptor and byte[].
    We also decided to test this simple program using Windows, and in that OS we saw that the memory leak disappeared: the number of surviving generations was almost stable.
    I attach you the code of the program.
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    public class testExec
        public static void main(String args[]) throws IOException, InterruptedException
            Runtime runtime = Runtime.getRuntime();
            while (true)
                Process process = null;
                InputStream is = null;
                InputStreamReader isr = null;
                BufferedReader br = null;
                try
                    process = runtime.exec("ls");
                    //process = runtime.exec("cmd /c dir");
                    is = process.getInputStream();
                    isr = new InputStreamReader(is);
                    br = new BufferedReader(isr);
                    String line;
                    while ((line = br.readLine()) != null)
                        System.out.println(line);
                finally
                    process.waitFor();
                    if (is != null)
                        is.close();
                    if (isr != null)
                        isr.close();
                    if (br != null)
                        br.close();
                    if (process != null)
                        process.destroy();
    }¿Is anything wrong with the test program we wrote? (we know that is not usual to call infinite times the command ls/dir, but it's just a test)
    ¿Why do we have a memory leak in Linux but not in Windows?
    I will appreciate any help or ideas. Thanks in advance.

    Hi Joby,
    From our last profiling results, we haven't found yet a proper solution. We think that probably the problem is caused by the byte[]'s/FileInputStreams created by the class UNIXProcess that manage the stdin, stdout and stderr streams. It seems that these byte arrays cannot be removed correctly by the garbage collector and they become bigger and bigger, so at the end they took all the memory of the system.
    We downloaded the last version of OpenJDK 6 (build b19) and modified UNIXProcess.java.linux so when we call its method destroy(), we assign to null those streams. We did that because we wanted to indicate to the garbage collector that these objects could be removed, as we saw that the close() methods doesn't do anything on their implementation.
    public void destroy() {
         // There is a risk that pid will be recycled, causing us to
         // kill the wrong process!  So we only terminate processes
         // that appear to still be running.  Even with this check,
         // there is an unavoidable race condition here, but the window
         // is very small, and OSes try hard to not recycle pids too
         // soon, so this is quite safe.
         synchronized (this) {
             if (!hasExited)
              destroyProcess(pid);
            try {
                stdin_stream.close();
                stdout_stream.close();
                stderr_stream.close();
                // LINES WE ADDED
                stdin_stream = null;
                stdout_stream = null;
                stderr_stream = null;
            } catch (IOException e) {
                // ignore
                e.printStackTrace();
        }But this didn't work at all. We saw that we were able to execute for a long time our application and that the free memory of the system wasn't decreasing as before, but we did some profiling with this custom JVM and the test application and we still see more or less the same behaviour: lots of surviving generations, at some point increase of the used heap to the maximum allowed, and finally the crash of the test app.
    So sadly, we still don't have a solution for that problem. You could try to compile OpenJDK 6, modify it, and try it with your program to see if the last version works for you. Compiling OpenJDK 6 in Linux is quite easy: you just have to download the source and the binaries from here and configure your environment with something like this:
    export ANT_HOME=/opt/apache-ant-1.7.1/
    export ALT_BOOTDIR=/usr/lib/jvm/java-6-sun
    export ALT_OUTPUTDIR=/tmp/openjdk
    export ALT_BINARY_PLUGS_PATH=/opt/openjdk-binary-plugs/
    export ALT_JDK_IMPORT_PATH=/usr/lib/jvm/java-6-sun
    export LD_LIBRARY_PATH=
    export CLASSPATH=
    export JAVA_HOME=
    export LANG=C
    export CC=/usr/bin/gcc-4.3
    export CXX=/usr/bin/g++-4.3Hope it helps Joby :)
    Cheers.

  • Memory leak checking doesn't work: SEGV problem while debugging with dbx

    I am debugging a program which has memory leaks.
    When I do the following:
    dbx <program>
    (dbx) run <input parameters>
    everything runs fine, but as I didn't use RTC leaks checking, this is of no use. Therefore I do the following:
    dbx <program>
    (dbx) check -memuse
    memuse checking - ON
    (dbx) check -leaks -frames 8
    leaks checking - ON
    (dbx) run <input parameters>
    which gives the following result:
    Running: <program> <input parameters>
    (process id 17075)
    Reading rtcapihook.so
    Reading rtcaudit.so
    Reading libmapmalloc.so.1
    Reading rtcboot.so
    Reading librtc.so
    RTC: Enabling Error Checking...
    t@1 (l@1) signal SEGV (no mapping at the fault address) in __rtc_memcpy at 0xffffffff7312ed90
    0xffffffff7312ed90: __rtc_memcpy+0x0014: st %o4, [%o0 + %o3]
    dbx: Stopped within call to '__rtc_suppress_always'. Starting new command interpreter
    (dbx) where -l
    current thread: t@1
    [1] libaio.so.1:_init(0xfffffffe52000058, 0x0, 0xffdfffff, 0xfffffffe52000030, 0x400000, 0x80000), at 0xfffffffe55907a90
    [2] ld.so.1[L]:setup(0xffffffff7ffff250, 0x0, 0xffffffff7f72c2b0, 0x10000, 0x0, 0x0), at 0xffffffff7f610ba4
    [3] ld.so.1[L]:_setup(0xffffffff7fffffab, 0x1f, 0xffffffff7ffff640, 0xffffffff7fffffbe, 0xffffffff7ffff628, 0xffffffff7f72dde8), at 0xffffffff7f61f24c
    [4] ld.so.1[L]:_rt_boot(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xffffffff7f6052d4
    I think this means that there is a problem within my 'RTC' libraries.
    When I run the "version" command within my dbx session, I get following results:
    (dbx) version
    Machine hardware: sun4u
    OS version: 5.9
    Processor type: sparc
    Hardware: SUNW,Sun-Fire-480R
    The following components are installed on your system:
    Sun Studio 9
    Sun Studio 9 C Compiler
    Sun Studio 9 C++ Compiler
    Sun Studio 9 Tools.h++ 7.1
    Sun Studio 9 C++ Standard 64-bit Class Library
    Sun Studio 9 Garbage Collector
    Sun Studio 9 Fortran 95
    Sun Studio 9 Debugging Tools (including dbx)
    Sun Studio 9 Debugger GUI
    Sun Studio 9 Performance Tools (including collect, ...)
    Sun Studio 9 X-Designer
    Sun Studio 9 VIM editor
    Sun Studio 9 XEmacs editor
    Sun Studio 9 Native Connector Tool
    Sun Studio 9 LockLint
    Sun Studio 9 Building Software (including dmake)
    Sun Studio 9 Documentation Set
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/cc": Sun C 5.6 2004/07/15
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/CC": Sun C++ 5.6 2004/07/15
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/f90": Sun Fortran 95 8.0 2004/07/15
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/dbx": Sun Dbx Debugger 7.3 2004/07/15
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/analyzer": Sun Performance Analyzer 7.3 2004/07/15
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/dmake": Sun Distributed Make 7.5 2004/07/15
    Can anybody help me out?
    Which additional information do I need to provide in order to solve this issue?
    Message was edited by: B.V. (the "where -l" command has been added
    B.V.

    Hello Maxim,
    As you said, it was worth to try, but unfortunately, it was not a very good investment :-(
    The patch 117564-06 has been installed, and I have retried the same procedure, but the same problem occurs.
    As you have mentioned in a previous reply, I have flagged the "rtc_error_stack" before launching the "where" command.
    The result is the following:
    Running: <program> <input parameters>
    (process id 21873)
    Reading rtcapihook.so
    Reading rtcaudit.so
    Reading libmapmalloc.so.1
    Reading rtcboot.so
    Reading librtc.so
    RTC: Enabling Error Checking...
    t@1 (l@1) signal SEGV (no mapping at the fault address) in __rtc_memcpy at 0xffffffff7312f068
    0xffffffff7312f068: __rtc_memcpy+0x0014: st %o4, [%o0 + %o3]
    dbx: Stopped within call to '__rtc_suppress_always'. Starting new command interpreter
    (dbx) dbxenv rtc_error_stack on
    (dbx) where -l
    current thread: t@1
    =>[1] librtc.so[0xffffffff7de01778]:__rtc_memcpy(0xfffffffe5013fff0, 0xfffffffe50220040, 0x8, 0x
    10, 0x803, 0x64a3c338), at 0xffffffff7312f068
    [2] librtc.so[0xffffffff7de01778]:change_masks_work(0xfffffffeff90e878, 0xfffffffeff90e878, 0x
    803, 0x2, 0x0, 0xffffffff73243608), at 0xffffffff7312e618
    ---------- called from debugger ----------
    [3] libmd5.so.1:_init(0xfffffffe50b00228, 0x0, 0xffdfffff, 0xfffffffe50b00208, 0x400000, 0x800
    00), at 0xfffffffe531016e0
    [4] ld.so.1[L]:setup(0xffffffff7ffff260, 0x0, 0xffffffff7f72c2b0, 0x10000, 0x0, 0x0), at 0xfff
    fffff7f610ba4
    [5] ld.so.1[L]:_setup(0xffffffff7fffffa6, 0x1f, 0xffffffff7ffff650, 0xffffffff7fffffb9, 0xffff
    ffff7ffff638, 0xffffffff7f72dde8), at 0xffffffff7f61f24c
    [6] ld.so.1[L]:_rt_boot(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xffffffff7f6052d4
    (dbx)
    Any ideas?
    Thanks
    Dominique

  • How to configure JProfiler6 to monitor tomcat6.0 for memory leak

    Hello,
    Can anyone help. I am tring to work out the memory leak of my Web Application running on the local server. I have been told that jprofiler is a good tool for monitoring memory. I have dowloaded jprofiler6, but I dont know how to config the setting.
    what i have done is:
    1.from the Quickstart window->An application server, locally or remotely
    2.follow the wizard step by step
    1)choose application server Apache Tomcat 6.x
    2)application is located "on this computer"
    3) Chose JVM vendor
    4) wait for a connection from the JProfiler GUI
    5) Locate the start script :C:\Program Files\Apache Software Foundation\apache-tomcat-6.0.20\bin\startup.bat
    6) port:8849
    7)finished
    After i done these, a error message came out said:
    "Could not connect ot 127.0.0.1:8849.Please make sure that the remote address is correct, the remote program is started properly and the netword route allows socket connections."

    Hi,
    The recommended solution is to download Oracle JRockit Mission Control (available here: http://www.oracle.com/technology/software/products/jrockit/index.html) and install on your server. The installers include Oracle JRockit JVM as well as Mission Control, and are free of license checks.
    If that solution for some reason is unfeasible you can download legacy development license files from here (http://download2.bea.com/pub/license/All%20Products/BEA_WebLogic.zip).
    The license you are looking for is named “LIC-WLRT20.txt”. Rename it to license.bea, and follow the instructions at http://edocs.bea.com/jrockit/geninfo/diagnos/conf_run.html#wp1077371

  • Memory Leaks in JNI code

    Hi,
    I have written a small C++ code which will load a JDBC Driver and connect to the database.
    The code initially Loads the JVM & than connects to the Database.
    When i tested the code with Boundscheket I found a conciderable amount of memory leak & all of these are shown in jvm.dll, zip.dll & java.dll. Is this OK? Are there memory leaks in JNI?

    Hi, Please go through the code & let me know if there are any memory leaks in this code. Boundchecker detects a considerable amount of memory leak :(
    #include <windows.h>
    #include <stdio.h>
    #include <jni.h>
    #include <conio.h>
    #define INI_MAX_PROPERTY_VALUE 1024
    #define JVMPATH "C:\\Java\\jdk1.5\\jre\\bin\\client\\jvm.dll"
    #define JDBCDRIVER "-Djava.class.path=D:\\mysql-connector-java.jar";
    #define CONNECTIONSTRING "jdbc:mysql://localhost:3306/test?user=root&password=root"
    #define DRIVERCLASS "com/mysql/jdbc/Driver"
    JavaVM *jvm = NULL;
    unsigned long int jvmVersion = 0x00010004;
    HINSTANCE lib_handle = NULL;
    void fini() {
         jint res = jvm->DestroyJavaVM();
         printf ("Destroying JVM %d\n",res);
         if (lib_handle) {
              FreeLibrary(lib_handle);
              printf ("Deleted lib handle\n");
    void init()
         char jvmPath[INI_MAX_PROPERTY_VALUE + 1];
         jint res = -1;
         JNIEnv *jniEnv = NULL;
         JavaVMInitArgs vm_args;
         JavaVMOption options[1];
         options[0].optionString = JDBCDRIVER;
         vm_args.version = jvmVersion;
    vm_args.options = options;
    vm_args.nOptions = 1;
    vm_args.ignoreUnrecognized = JNI_TRUE;
         memset(jvmPath, '\0', INI_MAX_PROPERTY_VALUE + 1);
         strcpy(jvmPath,JVMPATH);
         printf("Loading dll from %s\n",jvmPath);
         lib_handle = LoadLibrary(jvmPath);
         if (!lib_handle)
              printf("Error during LoadLibrary\n");
              return;
         printf("JVM dll Loaded Sucessfully\n");
         jint (__stdcall JNI_CreateJavaVM)( JavaVM*, void**, void*);
         JNI_CreateJavaVM = (jint (__stdcall *)(JavaVM**, void**, void*))GetProcAddress(lib_handle, "JNI_CreateJavaVM");
         if (NULL != JNI_CreateJavaVM)
              res = (JNI_CreateJavaVM)( &jvm, (void**)&jniEnv , &vm_args);
         if ( res < 0 ) {
              printf("Unable to create JVM\n");
         } else {
              printf("JVM Created Succesfully\n");
    void printException(JNIEnv *jniEnv) {
         jthrowable exceptionHandle = jniEnv->ExceptionOccurred();
         if ( exceptionHandle == NULL )
              return;
         /* Clear the exception from the enviroment*/
         jniEnv->ExceptionClear();
         /* Obtain the JavaException object to get its details */
         jclass jThrowableClass = jniEnv->GetObjectClass(exceptionHandle);
         if ( jThrowableClass == NULL ) {
              if (exceptionHandle)
                   jniEnv->DeleteLocalRef(exceptionHandle);     
              exceptionHandle = NULL;
              return ;
         printf("\n*****----- Java Error Message is -----*****\n");
         jmethodID midMessage = jniEnv->GetMethodID( jThrowableClass, "toString", "()Ljava/lang/String;" );
         if ( midMessage == NULL ){
              if (exceptionHandle)
                   jniEnv->DeleteLocalRef(exceptionHandle);
              if (jThrowableClass)
                   jniEnv->DeleteLocalRef(jThrowableClass);
              exceptionHandle = NULL;
              jThrowableClass = NULL;
              return;
         jstring jstrRet = (jstring)jniEnv->CallObjectMethod(exceptionHandle,midMessage);
         if ( jstrRet == NULL ){
              if (exceptionHandle)
                   jniEnv->DeleteLocalRef(exceptionHandle);
              if (jThrowableClass)
                   jniEnv->DeleteLocalRef(jThrowableClass);
              exceptionHandle = NULL;
              jThrowableClass = NULL;
              return;
         jboolean flg;
         const char *pExceptionStr = jniEnv->GetStringUTFChars(jstrRet, &flg);
         if ( flg == JNI_TRUE ) {
              printf("%s",pExceptionStr);
              jniEnv->ReleaseStringUTFChars(jstrRet, pExceptionStr);
         if (exceptionHandle)
              jniEnv->DeleteLocalRef(exceptionHandle);
         if (jThrowableClass)
              jniEnv->DeleteLocalRef(jThrowableClass);
         if (jstrRet)
              jniEnv->DeleteLocalRef(jstrRet);
         exceptionHandle = NULL;
         jThrowableClass = NULL;
         jstrRet = NULL;
         printf("\n**************---------End of Java Error Message ************\n");
         return;
    void connect() {
         jint res = -1;
         JNIEnv *jniEnv = NULL;
         jclass clsDriver = NULL;
         jmethodID colnstructorDriver = NULL;
         jmethodID methodConnect = NULL;
         jobject objectDriver = NULL;
         jobject objectConnection = NULL;
         jstring jConnectionString = NULL;
         printf("Getting the Enviroment\n");
         jint isPresent = jvm->GetEnv((void **)&jniEnv, jvmVersion );
         if (isPresent == JNI_EDETACHED || jniEnv == NULL) {
              printf("Could not get JNI Env for current thread");
    return;
         printf("Creating Instance of Driver\n");
         clsDriver = jniEnv->FindClass(DRIVERCLASS);
         colnstructorDriver = jniEnv->GetMethodID(clsDriver, "<init>", "()V");
         objectDriver = jniEnv->NewObject( clsDriver, colnstructorDriver );
         printf("Created Instance of Driver\n");
         printf("Connecting to the Database\n");
         methodConnect = jniEnv->GetMethodID(clsDriver, "connect", "(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;");
         jConnectionString = jniEnv->NewStringUTF(CONNECTIONSTRING);
         objectConnection = jniEnv->CallObjectMethod(objectDriver, methodConnect, jConnectionString, NULL);
         if (objectConnection == NULL) {
              printException(jniEnv);
              printf("Unable to Connect\n");
         else
              printf("Connection Done\n");
         //Releasing all the memory used....
         if (objectConnection)
              jniEnv->DeleteLocalRef(objectConnection);
         if (jConnectionString)
              jniEnv->DeleteLocalRef(jConnectionString);
         if (objectDriver)
              jniEnv->DeleteLocalRef(objectDriver);
         if (clsDriver)
              jniEnv->DeleteLocalRef(clsDriver);
         objectConnection = NULL;
         jConnectionString = NULL;
         objectDriver = NULL;
         clsDriver = NULL;
    int main() {
         printf ("Starting...\n");
         init();
         connect();
         fini();
         getch();
    }

  • Memory leak found in flash player active-x 'CallFunction' method.

    Hello,
    I think I found a memory leak that results from  calling the flash player active-X object's method 'CallFunction'. Each time this  method is called it seems that memory is not properly freed.
    I'm attaching here a  simple program I've made with C# that uses the shockwave flash object to load a  SWF and continuously perform calls to it using the 'CallFunction'. It also  displays the process memory so you can see how it's being increased after some  time running.
    In the zip file, under the bin/release directory, you'll find the  compiled executable and both the test SWF (CallFunctionTest.swf) and its source (AS3 file) which is  just a dummy Sprite that exposes a callable method using the ExternalInterface.  The SWF has been compiled using Flex compiler (Version 3.3.0 build 4852).
    The  leak may become more visible after some hours running. Also, it's interesting to  note that even by reloading the SWF without closing the application (by stopping  and restarting the stress in my test application) the memory is not freed.
    As a reference, in my  computer (Intel Dual core E2180 @ 2Ghz) the test application's virtual memory  (VM64) increased from 192MB to 480MB in 4 hours. In Windows XP 32-bit when this value reaches 2GB the process runs out of memory and the application crashes.
    Does anyone experienced the same problem?
    I have Flash Player version 10,0,32,18 installed.
    Thanks,
    Joan

    Hi,
    I found this problem recently.
    I embedded Flash in my Visual C++ project through ActiveX, and intensively call
    ShockwaveFlashObjects::IShockwaveFlash::CallFunction().
    It seems that every time I invoke this function, the memory usage of my program increase about 8kB, and never goes back again. I think this is caused by the internal memory leak in Flash.
    Does adobe have any plan to fix this issue?
    Alvin. C. Chung

  • How to determine memory leaks?

    I tried in XCODE, the RUN/ Start with Performance TOol / and tried out the various options. I was running my app and looking to see if it would report increasing memory use but it seemed to be looking at my total system (i was running under the simulator). In general what is the recommended procedure for determining memory leaks, which tool to use, and what tracing can i use?
    How does one look at the retain count of an object? are there system routines that have knonw leaks?

    You took the right path. Once instruments comes up select the Leaks tool. Turn off automatic leak detection. In your app, start off at some known state, do something, and come back to the known state and check for leaks. For instance start off in a view, do something that brings up another view then come back to the original view and check for leaks. Leaks will show you if you leaked. Since you took a very deterministic path then checked it should be straight forward to go to the code and find / fix the leaks. Leaks shows you where the code where the leak was generated.

  • Memory leak in JSpinner implementation (maybe others?)

    Hi,
    I am developing an application using Java and Swing, and have run into some problems with memory leaks. After examining the source code and making an example program (provided below), I can only come to the conclusion that there is a bug in the implementation of JSpinner in Sun Java 1.6.0_03.
    If one uses a custom model with the JSpinner, it attaches itself as a listener to the model. However, it never removes the listening connection, even if the model is changed. This causes the JSpinner to be kept in memory as long as the model exists, even if all other references to the component have been removed.
    An example program is available at http://eddie.dy.fi/~sampo/ModelTest.java . It is a simple swing program that has the JSpinner and two buttons, the first of which writes to stdout the listeners of the original model and the second changes the spinner model to a newly-created model. A sample output is below:
    Running on 1.6.0_03 from Sun Microsystems Inc.
    Listeners before connecting to JSpinner:
      Model value is 0, 0 listeners connected:
    Listeners after connecting to JSpinner:
      Model value is 0, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971ad
    Listeners now:
      Model value is 8, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971ad
    Changing spinner model.
    Listeners now:
      Model value is 8, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971adThis shows that even though the model of the JSpinner has been changed, it still listens to the original model. I haven't looked at other components whether they retain connections to the old models as well.
    In my case, I have an adaptor-model which provides a SpinnerModel interface to the actual data. The adaptor is implemented so that it listens to the underlying model only when it itself is being listened to. If the JComponents using the model were to remove the listening connections, it, too, would be automatically garbage-collected. However, since JSpinner does not remove the connections, the adaptor also continues to listen to the underlying model, and neither can be garbage-collected.
    All in all, the listener-connections seem to be a very easy place to make memory leaks in Java and especially in Swing. However, as I see it, it would be a simple matter to make everything work automatically with one simple rule: Listen to the models only when necessary.
    If a component is hidden (or alternatively has no contact to a parent JFrame or equivalent), it does not need to listen to the model and should remove the connections. When the component is again set visible (or connected to a frame) it can re-add the connections and re-read the current model values just as it does when initializing the component. Similarly, any adaptor-models should listen to the underlying model only when it itself is being listened to.
    If the components were implemented in this way, one could simply remove a component from the frame and throw it away, and automatically any listener-connections will be removed and it can be garbage-collected. Similarly any adaptor-models are collected when they are no longer in use.
    Changing the API implementation in this way would not require any changes to applications, as the only thing that changes are the listener-connections. Currently used separate connection-removing methods should still work, though they would be unnecessary any more. The API would look exactly the same from the view of an application programmer, only that she would not need to care about remnant listening connections. (As far as I can tell, the current API specification would allow the API to be implemented as described above, but it should of course require it to be implemented in such a way.)
    Am I missing something, or is there some valid reason why the API is not implemented like this?
    PS. I'm new to these forums, so if there is a better place to post these reports, please tell me. Thanks.

    Another cognition: It's the following code, that causes the memory to be accumulated:
    obj = m_orb.resolve_initial_references("NameService");
    ctx = NamingContextExtHelper.narrow(obj);For the first 4 calls to this code the memory usage of the nameservice is unchanged. From the 5th to the 8th call, it's increased by approx. 10KB per call. And thenceforward (beginning with the 9th call) it's increasing by approx. 10MB.
    What's going wrong here?

  • Memory Leaks   Unresponsive Mouse

    2009 8 core Mac Pro w/ 24 GB of RAM, ATI Radeon 4870, and a SeriTek PCIe eSATA card (card only has drives connected when running a manual drive clone).  When running Toast 10 or Parallels 9, my RAM will fill up (I use a program called Menu Meters to monitor stuff).  This machine worked just fine under OS 10.9 and earlier - no issues like this at all.  ClamXAV will also completely fill the RAM up (the meter will be full green, instead of part green, then mostly grey when Toast or Parallels fills it up).  I have to use Terminal to purge it so that the machine is usable.
    The other thing that happens is that sometimes when the computer wakes up or I am in the middle of doing something, the mouse will still move, but the dock will not pop open and the left button the mouse doesn't respond.  The right button will open the right click menu, but will not respond normally at all.  I have tried a different Magic Mouse, but the problem is the same.
    I thought that it may be a problem with the factory RAM and the Kingston RAM not playing nicely together.  So I ran it with just the factory 8 GB and then ran it with the Kingston 16 GB - the problem persists no matter which RAM is installed.  All of the RAM also passes the memory tests in Rember and TechTool.
    So, I need to find out if someone thinks that maybe the bluetooth module may be going bad causing the mouse issues.  I also need to find out what is causing the memory leaks.  I followed the steps that someone gave on this site to boot into safe mode, repair permissions, reset PRAM, then reset SMC (or the other way around - I did it like they said to).  It did nothing to fix the problem.
    I need some guidance here.  As I stated early on, the machine worked perfectly with OS 10.9.  I have WAY too much software that I use, so doing a completely fresh install is out of the question - I don't have time to reload everything.  This problem is annoying and I know that I am not the only one having these issues.  Any input will be greatly appreciated.  Thanks in advance.

    Here is the EtreCheck report:
    Problem description:
    Memory leaks when using Toast 10 or Parallels 9.  Mouse also become unresponsive (it will move, but left button does not work and dock will not pop open - mouse problem happens independent of the RAM being filled up - different mouse was tried with same result).
    EtreCheck version: 2.1.5 (108)
    Report generated January 9, 2015 at 9:20:59 PM MST
    Click the [Support] links for help with non-Apple products.
    Click the [Details] links for more information about that line.
    Click the [Adware] links for help removing adware.
    Hardware Information: ℹ️
        Mac Pro (Early 2009) (Verified)
        Mac Pro - model: MacPro4,1
        2 2.26 GHz Quad-Core Intel Xeon CPU: 8-core
        24 GB RAM Upgradeable
            DIMM 1
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 2
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 3
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 4
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 5
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 6
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 7
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 8
                2 GB DDR3 ECC 1066 MHz ok
        Bluetooth: Old - Handoff/Airdrop2 not supported
        Wireless:  en2: 802.11 a/b/g/n
    Video Information: ℹ️
        ATI Radeon HD 4870 - VRAM: 512 MB
            AL2216W 1680 x 1050 @ 60 Hz
    System Software: ℹ️
        OS X 10.10.1 (14B25) - Uptime: 2:4:35
    Disk Information: ℹ️
        HL-DT-ST BD-RE  WH12LS39 
        HL-DT-ST DVDRAM GH24NS90 
        SAMSUNG HD103SJ disk1 : (1 TB)
            EFI (disk1s1) <not mounted> : 210 MB
            OS 10.10.1 (disk1s2) / : 999.35 GB (410.30 GB free)
            Recovery HD (disk1s3) <not mounted>  [Recovery]: 650 MB
        SAMSUNG HD103SJ disk2 : (1 TB)
            EFI (disk2s1) <not mounted> : 210 MB
            Extra Storage (disk2s2) /Volumes/Extra Storage : 999.86 GB (554.20 GB free)
        SAMSUNG HD103SJ disk3 : (1 TB)
            EFI (disk3s1) <not mounted> : 210 MB
            Extra Storage 2 - Scratch (disk3s2) /Volumes/Extra Storage 2 - Scratch : 999.86 GB (39.54 GB free)
        WDC WD5001AALS-00LWTA0 disk0 : (500.11 GB)
            EFI (disk0s1) <not mounted> : 210 MB
            BOOTCAMP (disk0s2) /Volumes/BOOTCAMP : 499.90 GB (275.71 GB free)
    USB Information: ℹ️
        Shuttle Technology Inc. E-USB Bridge
        Sony C6606
        Apple, Inc. Keyboard Hub
            Apple Inc. Apple Keyboard
        Apple Inc. BRCM2046 Hub
            Apple Inc. Bluetooth USB Host Controller
    Firewire Information: ℹ️
        Apple Computer, Inc. iSight 200mbit - 400mbit max
    Gatekeeper: ℹ️
        Anywhere
    Kernel Extensions: ℹ️
            /Applications/Hotspot Shield.app
        [not loaded]    com.anchorfree.tun (1.0) [Support]
            /Applications/Parallels Desktop.app
        [not loaded]    com.parallels.kext.hidhook (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.hypervisor (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.netbridge (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.usbconnect (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.vnic (9.0 24251.1052177) [Support]
            /Applications/TechTool Deluxe.app
        [not loaded]    com.micromat.iokit.ttpatadriver (5.0.0) [Support]
        [not loaded]    com.micromat.iokit.ttpfwdriver (5.0.0) [Support]
            /Applications/TechTool Protogo/Protogo Applications/TechTool Pro 7.app
        [not loaded]    com.micromat.driver.spdKernel (1 - SDK 10.8) [Support]
        [not loaded]    com.micromat.driver.spdKernel-10-8 (1 - SDK 10.8) [Support]
            /Applications/Temperature Monitor 4.94/Temperature Monitor 4.94.app
        [not loaded]    com.bresink.driver.BRESINKx86Monitoring (8.0) [Support]
            /Applications/Toast 11 Titanium/Spin Doctor.app
        [not loaded]    com.hzsystems.terminus.driver (4) [Support]
            /Applications/Toast 7 Titanium/Toast Titanium.app
        [not loaded]    com.roxio.TDIXController (1.6) [Support]
            /Library/Extensions
        [loaded]    at.obdev.nke.LittleSnitch (4216 - SDK 10.8) [Support]
            /System/Library/Extensions
        [loaded]    com.SiliconImage.driver.Si3132 (1.2.5) [Support]
        [not loaded]    com.devguru.driver.SamsungComposite (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.microsoft.driver.MicrosoftMouse (8.2) [Support]
        [not loaded]    com.roxio.BluRaySupport (1.1.6) [Support]
            /System/Library/Extensions/MicrosoftMouse.kext/Contents/PlugIns
        [not loaded]    com.microsoft.driver.MicrosoftMouseBluetooth (8.2) [Support]
        [not loaded]    com.microsoft.driver.MicrosoftMouseUSB (8.2) [Support]
            /System/Library/Extensions/ssuddrv.kext/Contents/PlugIns
        [not loaded]    com.devguru.driver.SamsungACMControl (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.devguru.driver.SamsungACMData (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.devguru.driver.SamsungMTP (1.2.63 - SDK 10.5) [Support]
        [not loaded]    com.devguru.driver.SamsungSerial (1.2.63 - SDK 10.6) [Support]
    Startup Items: ℹ️
        HP IO: Path: /Library/StartupItems/HP IO
        SiCoreService: Path: /Library/StartupItems/SiCoreService
        Startup items are obsolete in OS X Yosemite
    Launch Agents: ℹ️
        [running]    at.obdev.LittleSnitchUIAgent.plist [Support]
        [loaded]    com.coupons.coupond.plist [Support]
        [running]    com.micromat.TechToolProAgent.plist [Support]
        [loaded]    com.oracle.java.Java-Updater.plist [Support]
        [invalid?]    com.parallels.mobile.prl_deskctl_agent.launchagent.plist [Support]
        [invalid?]    com.parallels.mobile.startgui.launchagent.plist [Support]
        [not loaded]    com.teamviewer.teamviewer.plist [Support]
        [not loaded]    com.teamviewer.teamviewer_desktop.plist [Support]
    Launch Daemons: ℹ️
        [running]    at.obdev.littlesnitchd.plist [Support]
        [loaded]    com.adobe.fpsaud.plist [Support]
        [loaded]    com.bombich.ccc.plist [Support]
        [loaded]    com.hp.lightscribe.plist [Support]
        [running]    com.micromat.TechToolProDaemon.plist [Support]
        [loaded]    com.microsoft.office.licensing.helper.plist [Support]
        [loaded]    com.oracle.java.Helper-Tool.plist [Support]
        [invalid?]    com.parallels.mobile.dispatcher.launchdaemon.plist [Support]
        [failed]    com.parallels.mobile.kextloader.launchdaemon.plist [Support] [Details]
        [not loaded]    com.teamviewer.teamviewer_service.plist [Support]
    User Launch Agents: ℹ️
        [loaded]    com.facebook.videochat.[redacted].plist [Support]
        [loaded]    com.google.keystone.agent.plist [Support]
        [running]    com.nchsoftware.expressinvoice.agent.plist [Support]
        [loaded]    uk.co.markallan.clamxav.clamscan.plist [Support]
        [loaded]    uk.co.markallan.clamxav.freshclam.plist [Support]
    User Login Items: ℹ️
        iTunesHelper    Application (/Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)
        SMARTReporter    Application (/Applications/SMARTReporter/SMARTReporter.app)
        BetterSnapTool    Application (/Applications/BetterSnapTool.app)
        smcFanControl    Application (/Applications/smcfancontrol_2_2_2/smcFanControl.app)
        Android File Transfer Agent    Application (/Users/[redacted]/Library/Application Support/Google/Android File Transfer/Android File Transfer Agent.app)
    Internet Plug-ins: ℹ️
        JavaAppletPlugin: Version: Java 8 Update 25 Check version
        FlashPlayer-10.6: Version: 16.0.0.235 - SDK 10.6 [Support]
        Default Browser: Version: 600 - SDK 10.10
        AdobePDFViewerNPAPI: Version: 11.0.06 - SDK 10.6 [Support]
        CouponPrinter-FireFox_v2: Version: 5.0.3 - SDK 10.6 [Support]
        AdobePDFViewer: Version: 11.0.06 - SDK 10.6 [Support]
        Flash Player: Version: 16.0.0.235 - SDK 10.6 [Support]
        QuickTime Plugin: Version: 7.7.3
        SharePointBrowserPlugin: Version: 14.4.6 - SDK 10.6 [Support]
        iPhotoPhotocast: Version: 7.0 - SDK 10.8
    Safari Extensions: ℹ️
        AdBlock [Installed]
        F.B. Purity - Cleans Up Facebook [Installed]
        OpenIE [Installed]
    3rd Party Preference Panes: ℹ️
        Déjà Vu  [Support]
        Flash Player  [Support]
        FUSE for OS X (OSXFUSE)  [Support]
        Java  [Support]
        MacFUSE  [Support]
        MenuMeters  [Support]
        Microsoft Mouse  [Support]
        MouseLocator  [Support]
        NTFS-3G  [Support]
        TechTool Protection  [Support]
    Time Machine: ℹ️
        Time Machine not configured!
    Top Processes by CPU: ℹ️
            48%    plugin-container
            39%    fontd
             6%    firefox
             5%    WindowServer
             4%    bluetoothaudiod
    Top Processes by Memory: ℹ️
        928 MB    firefox
        412 MB    plugin-container
        258 MB    mds_stores
        180 MB    iTunes
        129 MB    Finder
    Virtual Memory Information: ℹ️
        19.38 GB    Free RAM
        3.11 GB    Active RAM
        1.88 GB    Inactive RAM
        1.38 GB    Wired RAM
        2.40 GB    Page-ins
        0 B    Page-outs
    Diagnostics Information: ℹ️
        Jan 9, 2015, 07:16:57 PM    Self test - passed
        Jan 8, 2015, 11:37:48 AM    /Library/Logs/DiagnosticReports/ClamXav_2015-01-08-113748_[redacted].cpu_resour ce.diag [Details]
        Jan 8, 2015, 11:21:46 AM    /Users/[redacted]/Library/Logs/DiagnosticReports/Preview_2015-01-08-112146_[red acted].crash

  • T61 with memory leak on XP for driver battc.sys

    Hi
    I have an issue with XP where the battc.sys module that is part of Windows XP and responsible for the kernel side of monitoring the battery status. This module continually leaks memory until I have no more kernel paged resources left and programs start to fail on my laptop.
    I raised a support case for this with Microsoft and after some investigation and upgrading to the latest T61 power drivers that were released a few days ago on the Lenovo site, MS support told me it is a fault of the T61 and that I would need to disable Microsoft APCI support to stop this memory leak from occuring and to take the issue up with Lenovo.
    I have used the verifier tool to confirm that it is the Windows XP SP3 battc.sys memory module leaking.
    I am running the latest T61 drivers and fully patch with MS drivers on SP3.
    As MS have told me it is the fault of the T61 I am posting this issue here.
    Thanks
    Stephen

    It is memory available to the kernelwhich itself does not show under a process in task manager as far as I am aware (unles it is taken account as part of the system process).
    The best way to measure the available kernel memory space available is by using sysinternals procexp.
    You need to download procexp and also install the windows debugging tools from Microsoft. Then in procexp set the "Options > Configure Symbols : Debughlp.dll path" to the new debughlp.dll installed with your debu tools and set the symbols path to srv*c:\Symbols*http://msdl.microsoft.com/download/symbols
    Then you can choose in procexp "View > System Information" and see the used and total paged and non-paged kernel memory space.
    poolmon helps monitor all the symbols that are taking up this memory and verifier lets you drill down to the exact module and the changes in memory for a module that is occuring.
    Here are two really good links on it
    http://blogs.msdn.com/ntdebugging/archive/2006/12/18/Understanding-Pool-Consumption-and-Event-ID_3A0...
    http://blogs.msdn.com/ntdebugging/archive/2008/05/08/tracking-down-mmst-paged-pool-usage.aspx
    In my poolmon i notice that Mmst and battc are taking alot of memory after my computer has been running for some time. Mmst being high is normal but battc should not continually be growing as it is which is why I raised the case to MS but they want verification it is not a Lenovo issue.

Maybe you are looking for