<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Great Lubomir, <div class=""><br class=""></div><div class="">I’ll checkout the new version later. In the meanwhile, I can confirm that with the trunk version and your patches also the JVM crash on Mac vanished !</div><div class=""><br class=""></div><div class="">Thanks !</div><div class=""><br class=""></div><div class="">— Alessio</div><div class=""><br class=""></div><div class=""><div apple-content-edited="true" class="">
Alessio Gambi, Ph.D.<br class=""><a href="mailto:gambi@st.cs.uni-saarland.de" class="">gambi@st.cs.uni-saarland.de</a><br class=""><br class="">

</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On 04 May 2017, at 11:50, Lubomír Bulej <<a href="mailto:lubomir.bulej@d3s.mff.cuni.cz" class="">lubomir.bulej@d3s.mff.cuni.cz</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Hi Alessio,</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">just to let you know, I have made some changes to the trunk that should</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">resolve the compilation issues on Mac for now, before I can move to a solution</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">that can properly accommodate different platforms and different compilers.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">This should leave us "only" with JVM/analysis issues, but we should be able to</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">test them on the trunk version.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Lubomir</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">On 04/05/17 10:07, Lubomír Bulej wrote:</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Hi Alessio,<br class=""><br class="">the compilation on Mac is still somehow broken due to way how clang handles<br class="">some of the options differently than GCC.<br class=""><br class="">I use the -fvisibility=hidden option with GCC to make most of the symbols<br class="">hidden except for those that are explicitly marked as visible. Apparently,<br class="">this does not work on clang, because it does not know the "externally_visible"<br class="">attribute, but understands the -fvisibility=hidden option, which means that it<br class="">will hide the Agent_OnLoad library entry point required by the JVM.<br class=""><br class="">So please do one more change (or apply the attached patch) to the<br class="">src-disl-agent/Makefile, which is to comment out the line with the following<br class="">content:<br class=""><br class="">CFLAGS_PARTS += -fvisibility=hidden<br class=""><br class=""><br class="">That should let you run "ant test" and get "expected" results.<br class=""><br class="">By "expected" I mean the 2-VM tests which only use DiSL server should always<br class="">succeed, while some of the 3-VM tests which use DiSL and ShadowVM servers may<br class="">fail spuriously. They do produce correct results, but there seems to be some<br class="">timing issue in the test harness which launches all the VMs and waits for them<br class="">to finish before proclaiming a test a success.<br class=""><br class="">It's on my TODO to look into these spurious failures, but there were usually<br class="">more pressing matters to attend to :-)<br class=""><br class=""><br class="">BTW, if you run with -Dtest.debug=true, you will get the command lines that<br class="">the harness uses to execute all the VMs -- these can be then executed manually<br class="">by just cut'n'pasting the commands into multiple terminal windows.<br class=""><br class="">Also, -Dtest.verbose=true will keep the output of the Vms around in separate<br class="">files for output and error streams for each (client|server|shadow) VM.<br class="">You can also use -Dtest.name=<testname> to run only a particular test.<br class=""><br class=""><br class=""><br class="">Lubomir<br class=""><br class="">On 03/05/17 20:26, Alessio Gambi wrote:<br class=""><blockquote type="cite" class="">Hi Lubomir,<span class="Apple-converted-space"> </span><br class=""><br class="">I start to suspect that the JVM on the Mac might be broken.<span class="Apple-converted-space"> </span><br class=""><br class="">I updated to the latest version:<br class=""><br class="">java version "1.8.0_131"<br class="">Java(TM) SE Runtime Environment (build 1.8.0_131-b11)<br class="">Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)<br class=""><br class="">But still JVM crashes… On the good side, I checked out trunk and repeated the same experiment on a Linux VM.<br class="">This time, both compilation that execution went smooth.<br class=""><br class="">Not sure how to proceed<span class="Apple-converted-space"> </span><br class=""><br class="">Best<br class=""><br class="">— Alessio<br class=""><br class=""><br class="">Alessio Gambi, Ph.D.<br class=""><a href="mailto:gambi@st.cs.uni-saarland.de" class="">gambi@st.cs.uni-saarland.de</a><br class=""><br class=""><br class=""><blockquote type="cite" class="">On 03 May 2017, at 10:55, Lubomír Bulej <lubomir.bulej@d3s.mff.cuni.cz> wrote:<br class=""><br class="">Hi Alessio,<br class=""><br class="">what we usually do when we manage to crash the JVM is introduce global<br class="">exclusion list to limit the scope of instrumentation. For example, in ShadowVM<br class="">version of Elephant Tracks, I had an initial exclusion like this:<br class=""><br class="">java.lang.*.*<br class="">java.security.*.*<br class="">java.util.*.*<br class=""><br class="">sun.misc.*.*<br class="">sun.reflect.*.*<br class=""><br class=""><br class="">Later I refined refined java.lang.*.* into<br class=""><br class="">java.lang.Class.*<br class="">java.lang.ClassLoader.*<br class="">java.lang.Thread.*<br class="">java.lang.String.*<br class="">java.lang.System.*<br class=""><br class="">java.lang.instrument.*.*<br class="">java.lang.invoke.*.*<br class="">java.lang.reflect.*.*<br class="">java.lang.ref.*.*<br class=""><br class=""><br class="">I didn't get to the other packages yet :-)<br class=""><br class=""><br class="">The global exclusion list is given to DiSL as a path to file using the<br class="">disl.exclusionList property.<br class=""><br class=""><br class="">BTW, when running ShadowVM (or plain DiSL, for that matter) I rarely use the<br class="">disl.py launcher. Instead, I'm using a script like the one I'm attaching,<br class="">because I want to be able to see what is going on.<br class=""><br class="">It may use some of the features from the trunk version to determine when a<br class="">server has started. Also, it will not be directly portable to Mac, because it<br class="">for example expects dynamic libraries to have an .so suffix, but you'll get<br class="">the idea and maybe adapt it your needs.<br class=""><br class="">You will also notice that I'm running the instrumentation without bypass,<br class="">which requires that the instrumentation does not really use the class library<br class="">and only calls into the REDispatch class.<br class=""><br class=""><br class="">Best regards,<br class="">Lubomir<br class=""><br class="">On 03/05/17 08:07, Alessio Gambi wrote:<br class=""><blockquote type="cite" class="">Hi Lubomir,<br class=""><br class="">I split the original message in two threads<br class=""><br class=""><blockquote type="cite" class="">Regarding the crash -- are you instrumenting anything in the Java Class Library?<br class=""></blockquote><br class="">Yes, I do.<span class="Apple-converted-space"> </span><br class=""><br class="">Is there any additional thing that I can try out on my own to rule out possible root causes?<br class=""><br class="">For example, some deeper logging/debugging, disabling/enabling DiSL options,<span class="Apple-converted-space"> </span><br class="">restrict the scope of instrumentation, define additional guards, etc…<br class=""><br class="">Best<br class=""><br class="">— Alessio<br class=""><br class=""><br class=""><blockquote type="cite" class=""><br class="">But let's fix the compilation problem first and re-test on the trunk.<br class=""><br class=""><br class="">Best regards,<br class="">Lubomir<br class=""><br class=""><br class=""><br class="">On 28/04/17 20:43, Alessio Gambi wrote:<br class=""><blockquote type="cite" class="">Dear DiSL-ers,<br class=""><br class="">while running a basic dynamic analysis using DiSL 2.1 (release) I stumbled upon a bad crash of the JVM [1].<br class=""><br class="">I have no idea of what’s going on, and how I can fix this.<br class=""><br class="">I can share the logs/dumps upon request.<br class=""><br class="">Here my configuration [2] (taken from the  hs_err_pid file)<br class=""><br class="">Any help is appreciated â€¦<br class=""><br class="">Thanks<br class=""><br class="">Best<br class=""><br class="">— Alessio<br class=""><br class="">PS: I tried but failed to build DiSL from trunk ...<br class=""><span class="Apple-tab-span" style="white-space: pre;">       </span><br class=""><br class="">[1]<br class="">  [exec] # A fatal error has been detected by the Java Runtime Environment:<br class="">  [exec] #<br class="">  [exec] #  SIGSEGV (0xb) at pc=0x00007fff9af03f72, pid=1802, tid=4867<br class="">  [exec] #<br class="">  [exec] # JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)<br class="">  [exec] # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode bsd-amd64 compressed oops)<br class="">  [exec] # Problematic frame:<br class="">  [exec] # C  [libsystem_c.dylib+0xf72]  strlen+0x12<br class="">  [exec] #<br class="">  [exec] # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again<br class="">  [exec] #<br class=""><br class=""><br class="">[2] ---------------  S Y S T E M  ---------------<br class=""><br class="">OS:Bsduname:Darwin 14.5.0 Darwin Kernel Version 14.5.0: Fri Feb 17 10:33:20 PST 2017; root:xnu-2782.50.9.1.1~1/RELEASE_X86_64 x86_64<br class="">rlimit: STACK 8192k, CORE 0k, NPROC 709, NOFILE 10240, AS infinity<br class="">load average:1.38 1.22 0.68<br class=""><br class="">CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 70 stepping 1, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2<br class=""><br class="">Memory: 4k page, physical 16777216k(3479728k free)<br class=""><br class="">/proc/meminfo:<br class=""><br class=""><br class="">vm_info: Java HotSpot(TM) 64-Bit Server VM (25.60-b23) for bsd-amd64 JRE (1.8.0_60-b27), built on Aug  4 2015 10:47:24 by "java_re" with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)<br class=""><br class="">time: Fri Apr 28 20:40:58 2017<br class="">elapsed time: 2 seconds (0d 0h 0m 2s)<br class=""><br class=""></blockquote></blockquote></blockquote><etjava.txt><br class=""></blockquote><br class=""></blockquote></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">--<span class="Apple-converted-space"> </span></span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Dept. Dist. and Dependable Systems</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Faculty of Mathematics and Physics</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Charles University, Czech Republic</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Web:<span class="Apple-converted-space"> </span></span><a href="http://d3s.mff.cuni.cz/" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://d3s.mff.cuni.cz</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Tel: +420-221914267</span></div></blockquote></div><br class=""></div></body></html>