mdsplus icon indicating copy to clipboard operation
mdsplus copied to clipboard

javamds.c has several problem needing to be fixed

Open tfredian opened this issue 6 years ago • 12 comments

While doing some general cleanup and fixes it was discovered that javamds.c appears to have quite a few issues.

  1. The error message handling is definitely not thread safe since it is using statically declared memory. This could be changed to use thread specific data structures. See: */*ThreadSafe .c for examples.
  2. The code in MdsGetArray when class != CLASS_A will malloc a return buffer and if the dtype is not supported it will currently return an uninitialized buffer.
  3. The code in general needs some work to clean it up. Much of it has been unchanged for over a decade so it probably hasn't created any serious problems yet. If we add some java tests using valgrind and compiler sanitize options it is highly likely they will show additional problems.

tfredian avatar Feb 04 '19 14:02 tfredian

Discovered this now...... I will look into it shortly

GabrieleManduchi avatar Nov 12 '19 11:11 GabrieleManduchi

Ok, I studied it a little. javamds used to be the C layer for jTraverser and jScope. Now jScope does not rely anymore on it, so all LocalProvider related method implementation is not used anymore (including MdsGetArray). Currently, javamds is only used by jTraverser and there is no requirement for thread safe operation. The native C implementation of jTraverser class represents an ancestor of mdsobjects and in principle jTraverser could be easily changed to use java mdsobjects. Sooner or later I will work on it, but before this I want to implement the testing features of java mdsobjects (planned within few weeks) Eventually we'll get rid of javamds.c

GabrieleManduchi avatar Nov 13 '19 14:11 GabrieleManduchi

You could elaborate if jTraverser can make use of the jni used by jTraverser2, i.e. mdsplus-api. Basically you could inherit mdsplus-api into jTraverser. Or we could merge the missing functions from jTraverser into jTraverser2 (e.g. javabeans) and discontinue jTraverser.

zack-vii avatar Nov 26 '19 21:11 zack-vii

Why not basing both jTraverser and jTraverser2 on java mdsobjects that represents the official Java MDSplus API? We have just completed it with a comprehensive  test suite. If some functions provided by jTraverser2 JNI are not supported by java mdsobjects, we can extend it to include them. I would prefer to limit as far as possible the proliferation of JNI libraries in MDSplus, and I had already planned getting rid of javamds.c (holding the JNI for jTraverser and jDispatcher) using only java mdsobjects.

On 11/26/2019 10:46 PM, Timo Schroeder wrote:

You could elaborate if jTraverser can make use of the jni used by jTraverser2, i.e. mdsplus-api. Basically you could inherit mdsplus-api into jTraverser. Or we could merge the missing functions from jTraverser into jTraverser2 (e.g. javabeans) and discontinue jTraverser.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/MDSplus/mdsplus/issues/1538?email_source=notifications&email_token=ACCLESDOPMKHNW42ZHI4NELQVWKLHA5CNFSM4GUFGFTKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFHRKCA#issuecomment-558830856, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCLESDXFJYGA745IEJVBM3QVWKLHANCNFSM4GUFGFTA.

-- Gabriele Manduchi

Istituto Gas Ionizzati del CNR Consorzio RFX - Associazione EURATOM/ENEA sulla Fusione Corso Stati Uniti 4, 35127 Padova - Italy ph +39-049-829-5039/-5000 fax +39-049-8700718 mailto:[email protected], http://www.igi.cnr.it

GabrieleManduchi avatar Nov 27 '19 07:11 GabrieleManduchi

I need the extended capabilities of mdsplus-api for jTraverser2 also I need mdsplus-api in maven for our minerva framework.

zack-vii avatar Nov 27 '19 09:11 zack-vii

Another thing maybe worth consideration is merging jTraverser and jTraverser2. The only concern is that our users are not eager to change a tool they already know (think about people still using DWScope!!)

GabrieleManduchi avatar Nov 27 '19 16:11 GabrieleManduchi

what are the capabilities of mdsplus-api that are not provided by mdsobjects?

GabrieleManduchi avatar Nov 27 '19 16:11 GabrieleManduchi

Treeshr segment control tcl interface. more complete set of descriptors. remote access.

zack-vii avatar Nov 29 '19 09:11 zack-vii

But thanks this inspired me to get rid of JavaMdsLib all together.. it is much easier with "mdsip -P tunnel"

zack-vii avatar Nov 29 '19 09:11 zack-vii

If I understand, you are now adopting an approach similar to that of jScope, i.e. pure java code interacting via mdsip. True?

GabrieleManduchi avatar Nov 29 '19 14:11 GabrieleManduchi

i fixed the java helgrind problem and activated valgrind for mdsobjects tests. its all good but in MdsTreeNodeTest it seems the dbid is not freed. same in MdsTreeTest

<?xml version="1.0"?>

<valgrindoutput>

<protocolversion>4</protocolversion>
<protocoltool>memcheck</protocoltool>

<preamble>
  <line>Memcheck, a memory error detector</line>
  <line>Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.</line>
  <line>Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info</line>
  <line>Command: /usr/bin/java MDSplus.TestRunner MDSplus.MdsTreeNodeTest</line>
</preamble>

<pid>27604</pid>
<ppid>27603</ppid>
<tool>memcheck</tool>

<args>
  <vargv>
    <exe>/usr/bin/valgrind</exe>
    <arg>--error-exitcode=1</arg>
    <arg>--suppressions=/git/mdsplus/conf/valgrind-python.supp</arg>
    <arg>--suppressions=/git/mdsplus/conf/valgrind-java.supp</arg>
    <arg>--suppressions=/git/mdsplus/conf/valgrind-mdsplus.supp</arg>
    <arg>--tool=memcheck</arg>
    <arg>--leak-check=full</arg>
    <arg>--show-reachable=no</arg>
    <arg>--error-exitcode=7</arg>
    <arg>--gen-suppressions=all</arg>
    <arg>--num-callers=30</arg>
    <arg>--trace-children=yes</arg>
    <arg>--child-silent-after-fork=yes</arg>
    <arg>--trace-children-skip-by-arg=*SetMdsplusFileProtection*</arg>
    <arg>-q</arg>
    <arg>--log-file=MDSplus.MdsTreeNodeTest-valgrind-memcheck-%p.log</arg>
    <arg>--xml=yes</arg>
    <arg>--xml-file=MDSplus.MdsTreeNodeTest-valgrind-memcheck-%p.xml</arg>
  </vargv>
  <argv>
    <exe>/usr/bin/java</exe>
    <arg>MDSplus.TestRunner</arg>
    <arg>MDSplus.MdsTreeNodeTest</arg>
  </argv>
</args>

<status>
  <state>RUNNING</state>
  <time>00:00:00:00.034 </time>
</status>


<status>
  <state>FINISHED</state>
  <time>00:00:00:43.617 </time>
</status>

<error>
  <unique>0x2d9f86</unique>
  <tid>1</tid>
  <kind>Leak_DefinitelyLost</kind>
  <xwhat>
    <text>945 (152 direct, 793 indirect) bytes in 1 blocks are definitely lost in loss record 2,011 of 2,318</text>
    <leakedbytes>945</leakedbytes>
    <leakedblocks>1</leakedblocks>
  </xwhat>
  <stack>
    <frame>
      <ip>0x4C2FA1E</ip>
      <obj>/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>calloc</fn>
      <dir>/builddir/build/BUILD/valgrind-3.13.0/coregrind/m_replacemalloc</dir>
      <file>vg_replace_malloc.c</file>
      <line>711</line>
    </frame>
    <frame>
      <ip>0x30D76999</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>_TreeNewDbid</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>577</line>
    </frame>
    <frame>
      <ip>0x30D76D06</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>CreateDbSlot</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>675</line>
    </frame>
    <frame>
      <ip>0x30D782D2</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>_TreeOpenEdit</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>1144</line>
    </frame>
    <frame>
      <ip>0x306E448F</ip>
      <obj>/workspace/tests/64/lib64/libJavaMds.so</obj>
      <fn>Java_MDSplus_Tree_editTree</fn>
      <dir>/git/mdsplus/javamds</dir>
      <file>mdsobjects.c</file>
      <line>1869</line>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C944E6</ip>
    </frame>
    <frame>
      <ip>0x650577A</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x68036A4</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6805064</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6557B10</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
      <fn>JVM_InvokeMethod</fn>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BE53</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
  </stack>
  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: definite</skaux>
    <sframe> <fun>calloc</fun> </sframe>
    <sframe> <fun>_TreeNewDbid</fun> </sframe>
    <sframe> <fun>CreateDbSlot</fun> </sframe>
    <sframe> <fun>_TreeOpenEdit</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_editTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_TreeNewDbid
   fun:CreateDbSlot
   fun:_TreeOpenEdit
   fun:Java_MDSplus_Tree_editTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
</error>

  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: definite</skaux>
    <sframe> <fun>calloc</fun> </sframe>
    <sframe> <fun>_TreeNewDbid</fun> </sframe>
    <sframe> <fun>CreateDbSlot</fun> </sframe>
    <sframe> <fun>_TreeOpenEdit</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_editTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_TreeNewDbid
   fun:CreateDbSlot
   fun:_TreeOpenEdit
   fun:Java_MDSplus_Tree_editTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
<error>
  <unique>0x2da002</unique>
  <tid>1</tid>
  <kind>Leak_DefinitelyLost</kind>
  <xwhat>
    <text>3,939 (760 direct, 3,179 indirect) bytes in 5 blocks are definitely lost in loss record 2,135 of 2,318</text>
    <leakedbytes>3939</leakedbytes>
    <leakedblocks>5</leakedblocks>
  </xwhat>
  <stack>
    <frame>
      <ip>0x4C2FA1E</ip>
      <obj>/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>calloc</fn>
      <dir>/builddir/build/BUILD/valgrind-3.13.0/coregrind/m_replacemalloc</dir>
      <file>vg_replace_malloc.c</file>
      <line>711</line>
    </frame>
    <frame>
      <ip>0x30D76999</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>_TreeNewDbid</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>577</line>
    </frame>
    <frame>
      <ip>0x30D76D06</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>CreateDbSlot</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>675</line>
    </frame>
    <frame>
      <ip>0x30D75ABB</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>_TreeOpen</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>227</line>
    </frame>
    <frame>
      <ip>0x306E421E</ip>
      <obj>/workspace/tests/64/lib64/libJavaMds.so</obj>
      <fn>Java_MDSplus_Tree_openTree</fn>
      <dir>/git/mdsplus/javamds</dir>
      <file>mdsobjects.c</file>
      <line>1810</line>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C944E6</ip>
    </frame>
    <frame>
      <ip>0x650577A</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x68036A4</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6805064</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6557B10</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
      <fn>JVM_InvokeMethod</fn>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BE53</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
  </stack>
  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: definite</skaux>
    <sframe> <fun>calloc</fun> </sframe>
    <sframe> <fun>_TreeNewDbid</fun> </sframe>
    <sframe> <fun>CreateDbSlot</fun> </sframe>
    <sframe> <fun>_TreeOpen</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_openTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_TreeNewDbid
   fun:CreateDbSlot
   fun:_TreeOpen
   fun:Java_MDSplus_Tree_openTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
</error>

  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: definite</skaux>
    <sframe> <fun>calloc</fun> </sframe>
    <sframe> <fun>_TreeNewDbid</fun> </sframe>
    <sframe> <fun>CreateDbSlot</fun> </sframe>
    <sframe> <fun>_TreeOpen</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_openTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_TreeNewDbid
   fun:CreateDbSlot
   fun:_TreeOpen
   fun:Java_MDSplus_Tree_openTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
<error>
  <unique>0x2da074</unique>
  <tid>1</tid>
  <kind>Leak_DefinitelyLost</kind>
  <xwhat>
    <text>18,841 (152 direct, 18,689 indirect) bytes in 1 blocks are definitely lost in loss record 2,249 of 2,318</text>
    <leakedbytes>18841</leakedbytes>
    <leakedblocks>1</leakedblocks>
  </xwhat>
  <stack>
    <frame>
      <ip>0x4C2FA1E</ip>
      <obj>/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>calloc</fn>
      <dir>/builddir/build/BUILD/valgrind-3.13.0/coregrind/m_replacemalloc</dir>
      <file>vg_replace_malloc.c</file>
      <line>711</line>
    </frame>
    <frame>
      <ip>0x30D76999</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>_TreeNewDbid</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>577</line>
    </frame>
    <frame>
      <ip>0x30D76D06</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>CreateDbSlot</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>675</line>
    </frame>
    <frame>
      <ip>0x30D78651</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>_TreeOpenNew</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>1206</line>
    </frame>
    <frame>
      <ip>0x306E4474</ip>
      <obj>/workspace/tests/64/lib64/libJavaMds.so</obj>
      <fn>Java_MDSplus_Tree_editTree</fn>
      <dir>/git/mdsplus/javamds</dir>
      <file>mdsobjects.c</file>
      <line>1867</line>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C944E6</ip>
    </frame>
    <frame>
      <ip>0x650577A</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x68036A4</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6805064</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6557B10</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
      <fn>JVM_InvokeMethod</fn>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BE53</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
  </stack>
  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: definite</skaux>
    <sframe> <fun>calloc</fun> </sframe>
    <sframe> <fun>_TreeNewDbid</fun> </sframe>
    <sframe> <fun>CreateDbSlot</fun> </sframe>
    <sframe> <fun>_TreeOpenNew</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_editTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_TreeNewDbid
   fun:CreateDbSlot
   fun:_TreeOpenNew
   fun:Java_MDSplus_Tree_editTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
</error>

  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: definite</skaux>
    <sframe> <fun>calloc</fun> </sframe>
    <sframe> <fun>_TreeNewDbid</fun> </sframe>
    <sframe> <fun>CreateDbSlot</fun> </sframe>
    <sframe> <fun>_TreeOpenNew</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_editTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_TreeNewDbid
   fun:CreateDbSlot
   fun:_TreeOpenNew
   fun:Java_MDSplus_Tree_editTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
<error>
  <unique>0x2da0b3</unique>
  <tid>1</tid>
  <kind>Leak_PossiblyLost</kind>
  <xwhat>
    <text>757,760 bytes in 1 blocks are possibly lost in loss record 2,312 of 2,318</text>
    <leakedbytes>757760</leakedbytes>
    <leakedblocks>1</leakedblocks>
  </xwhat>
  <stack>
    <frame>
      <ip>0x4C2DB6B</ip>
      <obj>/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>malloc</fn>
      <dir>/builddir/build/BUILD/valgrind-3.13.0/coregrind/m_replacemalloc</dir>
      <file>vg_replace_malloc.c</file>
      <line>299</line>
    </frame>
    <frame>
      <ip>0x30D63991</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>TreeExpandNodes</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeAddNode.c</file>
      <line>395</line>
    </frame>
    <frame>
      <ip>0x30D78943</ip>
      <obj>/workspace/tests/64/lib64/libTreeShr.so</obj>
      <fn>_TreeOpenNew</fn>
      <dir>/git/mdsplus/treeshr</dir>
      <file>TreeOpen.c</file>
      <line>1243</line>
    </frame>
    <frame>
      <ip>0x306E4474</ip>
      <obj>/workspace/tests/64/lib64/libJavaMds.so</obj>
      <fn>Java_MDSplus_Tree_editTree</fn>
      <dir>/git/mdsplus/javamds</dir>
      <file>mdsobjects.c</file>
      <line>1867</line>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C944E6</ip>
    </frame>
    <frame>
      <ip>0x650577A</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x68036A4</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6805064</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
    </frame>
    <frame>
      <ip>0x6557B10</ip>
      <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj>
      <fn>JVM_InvokeMethod</fn>
    </frame>
    <frame>
      <ip>0x8CAC166</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BE53</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BD7F</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9C041</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
    <frame>
      <ip>0x8C9BFFC</ip>
    </frame>
  </stack>
  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: possible</skaux>
    <sframe> <fun>malloc</fun> </sframe>
    <sframe> <fun>TreeExpandNodes</fun> </sframe>
    <sframe> <fun>_TreeOpenNew</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_editTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:TreeExpandNodes
   fun:_TreeOpenNew
   fun:Java_MDSplus_Tree_editTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
</error>

  <suppression>
    <sname>insert_a_suppression_name_here</sname>
    <skind>Memcheck:Leak</skind>
    <skaux>match-leak-kinds: possible</skaux>
    <sframe> <fun>malloc</fun> </sframe>
    <sframe> <fun>TreeExpandNodes</fun> </sframe>
    <sframe> <fun>_TreeOpenNew</fun> </sframe>
    <sframe> <fun>Java_MDSplus_Tree_editTree</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <obj>/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so</obj> </sframe>
    <sframe> <fun>JVM_InvokeMethod</fun> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <sframe> <obj>*</obj> </sframe>
    <rawtext>
<![CDATA[
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:TreeExpandNodes
   fun:_TreeOpenNew
   fun:Java_MDSplus_Tree_editTree
   obj:*
   obj:*
   obj:*
   obj:*
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   obj:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-3.b10.fc26.x86_64/jre/lib/amd64/server/libjvm.so
   fun:JVM_InvokeMethod
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}
]]>
    </rawtext>
  </suppression>
<errorcounts>
</errorcounts>


</valgrindoutput>

zack-vii avatar Dec 01 '19 12:12 zack-vii

true

zack-vii avatar Dec 01 '19 12:12 zack-vii