mdsplus
mdsplus copied to clipboard
javamds.c has several problem needing to be fixed
While doing some general cleanup and fixes it was discovered that javamds.c appears to have quite a few issues.
- 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.
- 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.
- 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.
Discovered this now...... I will look into it shortly
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
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.
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
I need the extended capabilities of mdsplus-api for jTraverser2 also I need mdsplus-api in maven for our minerva framework.
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!!)
what are the capabilities of mdsplus-api that are not provided by mdsobjects?
Treeshr segment control tcl interface. more complete set of descriptors. remote access.
But thanks this inspired me to get rid of JavaMdsLib all together.. it is much easier with "mdsip -P tunnel"
If I understand, you are now adopting an approach similar to that of jScope, i.e. pure java code interacting via mdsip. True?
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>
true