From 85962e367be5fa6aae72d6d583bcd01b1ffe3f08 Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Thu, 11 Oct 2018 21:51:59 +0530 Subject: [PATCH 01/15] adding jvmkill.c and also merged it into libgemfirexd64.so and libgemfirexd.so --- gemfirexd/core/lib/libgemfirexd.so | Bin 4855 -> 7325 bytes gemfirexd/core/lib/libgemfirexd64.so | Bin 6938 -> 8541 bytes .../gemfirexd/internal/engine/build.sh | 39 ++++++++++ .../gemfirexd/internal/engine/jvmkill.c | 67 ++++++++++++++++++ 4 files changed, 106 insertions(+) mode change 100644 => 100755 gemfirexd/core/lib/libgemfirexd.so create mode 100644 gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh create mode 100644 gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c diff --git a/gemfirexd/core/lib/libgemfirexd.so b/gemfirexd/core/lib/libgemfirexd.so old mode 100644 new mode 100755 index f2ebecae1438c5477942327b8ca7ac5ab919aa38..705cf0f1d7b3389a5349ef0e002c8244e47f0144 GIT binary patch literal 7325 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 QCCCZTvAOi~j6BKz18rvyy8r+H literal 4855 zcmbtYeQaA-6~B(tHv6DWLQC7xQEM`&73-Vrq+VLS+~#X7Nm?3rWK`wJv0vi1*?yV* z98y$?WFDfySVXL#vh|;-(lnt>DrzR&bVil|?g=nNw$09&Azu&v> zIxpEOF>#{fbI->;_ug~QJ@?&wtGlnq=ko~#e&HA7&Nd3s4tl9cYT89WtP7aF*|z~X z*E@mE+CbTF4e)j#fjo7zqo41JfG>10wvRIUVBg@i+ZSK{%MXrscK>Gng{`lczkhUS zOMLP5+Dnz|YybY{Ki0xz8E||B0W?0V7*O(Wc=%Sdw|Mw_(Ebka>_!={7O_#>3x^lL z6Pm^K+Ggj76-W*fL25TTPT{ict9(os_Ua! zE2kIiMBdhQp_@6=7WxPXRLO}1n~9A1O+)DW$Mr+Ts9CU$d}k(6C>RB?KQW%rlU7zA zGsi7Ek~!8pq{xTJ zC+nKL&1P8WMk-+^5QE`DK}H9nT#Cl^$-+|f_U+r-sYkT1)>dyvWPF)vJfX|~c;=UQO{A}1?179x{aRN~zST6bQ4ONs)t|&BGGCcDq!ZY0AMhu@1|<0m3yKX})oeV;q^P#y&1Y`H35~TJ77vwpY!43evfk_!CE; zp(B^8wR23Q+8K^XsGZ@7NwazF3cA(Ka7AgVug!vm{|5)>o(DTs{WFrkG~Yb=$|kU) zc(h#l4+nbHURx0RHhg+ie60(+NU z^-ViwwUZ@U$UeIk@_+qBiSB)+i_J&AezeN<&1n!!Rg=!}>#;o8V|g3OrA0aZ9Ti75 zy*^l*EnQrHz14TAD|WKYl#T#l}o_#xku5&Xme+YXN)R_zX7LPzGHY0q7+BUKW)<(0 z_iom#81zVE5l56+rXB~+`u$Z<)_-Og>-cHpFiaet_XlEt>M2AF&e(1OWxZvcL|!}R zgtd==P+6DY1k17LV*&Iz@c(jo$LJ&e@NQJ_BaHnFFo*^8c6RO#Y{SjAJqa%!Jur1g<}0%cT7+E%`R z0VH`i2}d+>yyY!t55;Dfp+m$ILTg*N50KXP9gB$NVGCqRlbTbbK)nV?gF2?U=7b z=BWbJ_rRzN$#qd;Xh2_bQ%9c_<$?9M_!98$r6j&mS922}o72Z-M9 zBl;qo0Md^8%riwCLR$gtsGo5u<98f3MCAjbdizP&4&imac_(4VcqveQo`!&aX?FtW z`@}8mp7q$xz;5Oi*g@rt>wI^EVNNp-2%I11TLmhAyz^&pSXf&X z(2jTssO(rbPs5HiQ-QL30|I5oZ;P|AqfUWp{|*9<&$#g0^gQgyD^PZSgn<53j?nI2 zW#sCpXT7E`1y^8qRWYEnA&_!!6&%C`GJ}rHnH@lm%iQAGSmqDHjh>FmAIv@gtTP1p zvXXI^ymSzAJM-;DU~M4y-AJ(pNM7z1&${Hfqw-8k9*YF<>=OKL1Y>oct62JW_q(r{ z$-15=Se`9Xzq|81Ly|{u06Z%MzjOP_Ga>nPj+}2k$un{?&n3@YL450a-lp=tC-pnG zs(celUS<^YQ1Tlb%6yZ&bi}-pylkkqjbCh%3isD9HrMx^qDH)hnA>W;KI}AWD94 zo;8Nx6YIqHLA~QY1%B4!@250$f&Tb$t>WVY|10pU3j`nH%k%TSI^QC$fgknw;{?@r z2m9aVnQ#EMn^y3ATdMrv+b;s%`<8qdJokt3;9K;#r$2Z9hv3zI@ooAv_zQ9yu^ZQG z&#cft@9BRJ`dknO7*T~-2P6F zDrM=T8EY6XP3QAOPZTEvzBa}(hHa#@ox3{j7gXqGYJ%J@;e6BRsbV&JOpVh$(B%x% zb7)V0x2`x2quNWOINw6fC`H@M6gb)5z5{#r^yvqBdIr1WdVJ5`zHUxBRj~AQBA3eG z@hn%MyqVFCsD?+XK9OwP zTURQo$l2>1h^Y{o1jxr4JQpvOET|?kOlN8wd{$A`BbM|6L8m+r)MSQfUNwcOYKEwV z6g}rvxtBIeD?%_OSxO`C*ip)Vd!1w}Xqy8IrmXi3=utiY+tjE8N0q8YUPmRev03XRq*Rk!D=|wTdN`;UPazqMSkll^6jh0j{?8Cir-DJpi6P*P zVzZcP)QT8o{8E0iIHYhMpNFLUvtz` zva_h&7)Cg$@*)yXMGiyOwoy{Dl8#NMZ0IN>GtrWnek;)j zyLa^5W@WN5w9^Pfeb}^P)0TonNp0E@5?LFq&IrSpNM}%^2_rIf7-Duh78QqM@wn)k zw34>5KRK8(qaq#~kA$+R&`x1kQPVb|H=fNpJqjop75#$)d%KO+&<&xsV!kzWV=*7z zrQSx3oX<3;Y2EST&sXv1i26|0Eysq#+gHRe5^9B|u-q2n{o;t?AA9(_SiWk+z2GVF zy3FGhLq?_*wQe(>SD6vd_-5Wa?w?TO>wJSI?a`W9T=J2>;KJ2bA?03k;qLus(S^I0 zpd}ZssxIwZbm8uyzT(2w(l6zkRJ+JF^*blch4UUjW!qi2yPhpB+`Uhn;swLO-6j>z4LFSU>iB;2dcQQMmDH6cw&%#&5&6PUMK6qN3%+0@5{G zh^M!_d_nRXiKkbvoR|Ds;;E_2Pe{IocxvMEDan6Q51yK~d=k9AP}c+jeW8Q&4(Qjd z=yUJr$5w)O)f_yBijF~=D*EBU!XniN@^2Be(D6D5%b#8G>vPZPXWzX=_g&C`xssF0 zn|4X%UqM-)d!g_)>Cblj0HDZySwGgXjdBOz&t9+3cVxgV9YmFurtov{g}NC4zK_mL zPzp6{dk|F?=&FvDTBzCAqH?dSaVodv0P6ELVAv{LIJkT}3^Z(;CHdvABVSTKiT-ao z_DQWi_s8kxpHnX`J^m?rVZOFmkLAV7kMGg_JmNTeb$lXkW;g`bs(<5M=%FWkz6-ENb^SKS-y#B!R zQ~|Vp7Uk54mq6yuGCyB;q)v16oEAO)uR`HzcrCp5Jjv7eE)8d~D|BOMuVtHB7)fhw z3AgVEx8Pq(rLo9k1Bq(!STZ+5z9@}a*;FnQv3h5w%p7*5=x*(r>~4)#{Z37)jK-6e{{EYt7Z32L!jG?$H&dc;jA`c#^TaSRLXkfhEsNIA{N1Z zkxCAwqLx=&DEWTaO-_4CeOLPTw4ly3na2KEC=7x=iQce5{|fpj=w*1dKcR9^>K{6< zQS#kADtt4IzAM+)2Tr2Dn}N}pOTbQ=Xt1#_*tD-<-CcoMam$uH*Wb`Ak256GgQp$# z=gRWAq2}H8l^wqV8Ts z$;AKD=g|YSOd#<-?QqWb0Oje7Kxw^0isyLVd-*(gg(~NB!Ig^VJ!^~N`FtS9A}}uh z+oy#TiCk3vXv|Y;sdeZYhlqA{7~qL{Ldo-BYEp8vLCK`{Nj^iIR4~sI+P5iP?hw(U z0LHf~$6U{V@~65@us=*cS^p(fajaL8SK{KL;-6OK|4_VYp7Q?r6aH@Y*5qT=A!}4e zY*zGIMRzLNrzq?5Igfch-}QHQ@7A^-7|$i`oYod<54G)R%}FkNU$`yQ(iUpF&cTHU zWsfFoa~#ypICP40$&_t{CX>0)crF%??!ft4a#Ln@N`#_ElhAaiopDO|h%UtxW1uW! z#Z6LBxpdqXA^9m2vaK29y;qapXHbyKsn86=6PN-?Ns_yfAY=sSFqe8xow2;I>MCK5%$me-2NnV-1@vOG39lP z^l2^h>dye9dhxo+_b*I&J%)%(G~2b`xyA<_EcPOQ)LRTR4Qg*pe|5>6)Ft&BYD zG5sAdw?6Msp`LU ztHt}7Tf&bT^Zrzh`-|tsa=f;9zAVS<1n(2&_!`0Me>q-XT;I#_K=C|Tj#u7?Q@I~2 zIj^tf^6QH6mvX$yeXO)|so-_4Ts~NgSCr!og4d;Tys>!CSB`HGyq=Wf8?ioUZb;_+ z;tPn+RKqV5Jg?nKez6Ic<<;aj3!aDN@|RcKt5dnZcsegh(>SXY9~4T6lcVn&A8xq4 z^{4Ne8k}T!-(o#F9}zyw178(%DLn7NZwKzfR|c;GJl-cHUfG`u$`0SFf|coe`1N5C zo+Q^R-ccheC2zj zIEb&xI9V_8%D4$#O!=ye6S@)8$hjx&1CF;_k)o^MGr+6GYwicW0dbr|YJBo*epuS6 zoR5!5yfR+%CUC8yHbVSa%2z4CdP(t`PS5+I^K>J|RoXLOIuy?1jV%r+JB!MWypuuU zZNN1aa?v}bybDm-VY!Ns z3|={3Ziv3vnWMt_){Ev6iK9?)aWdLfCYrNj@hs|m=X8SZ6p_n#ZyaHwZ?tQu*XSMY zp@^Am9p|Ijlrd!{qZA_R`Q~uf&_FjN5ISS&{=xlwy9SN@eSNp~ju~TJdk1@A<3B{& z%7R{Hp#b}Nsq^6+I@kg}vDyHMU6I5EKTl79mub7_+R literal 6938 zcmcgwU2Ggz6+Y{=8#ghI z?2e67p*E6>XfP3OcqtL6R-XdAq%X*T5RMWM$x~2;@Ee8_aEK8}q2RVsmUHf$v!1zL zmp_TSnmzY?=kLy$Irq-JFL(7EsS1TaS{R-K;?6$eA#oNo)o}+&9NOR!{Qo#?Q@S+zz;vIZ~x8Bm@c#cM5Ir28?vWIQxRink6gX{1APc`mQc z8lh-){3v1MhwOLVUAy$7cP@Roqw80TKiK)>^xPLuZ|`5aRr=w@2le;f{tFG~BU>0p z(;$OjO^Rn!u-dl@PI-Q!g8nZNYpj5O6|oJ_1Pf~oC6zosiGds7K?&A*xDw*u7RK+h zzTn@&P9tW!kCKgTk4L~*MgNm1C;bTPKhF9M3SXHAk~d@F?G%b>jAbW#R=1;1rAb`Z*?NVz=NSS#v6chAwo9ahwgng_~Rg(|FykoF@fVfE^n0vO1T zZcXFsABGOZsFA#y<-~jPsN=b?Ls#yFZ_=FK99GWn7C1Uy>#GmwE?Bw-^Ty-JLA|R zei(J&?tBT`?n}f|mhRq0mITzuUt+T6016XdnRTm5x0SmoX{XK~8b%o;F5GGFKRG&( zm^jo#yjz#JcxZE#0SlMVTjJu54?_m@T-?2g1pOUCou0k#B(8lJPE6bjC7zip8tZp< zQoPwv;zG?1l(&~Q-9Xhw?4rDI=jSyK!v=)Tw14jA^}+Q!Ujb?u?+UtvQ#b&3E2@7J zb!epZ82=k6xmlX0`@MPH8*yTCO=9w~mq=;yd|M4Vn2eU@2hC-Fi%kVr=l%SMI+6vM)QG#k;uW8 zh|zbl-^h<(-QjGJGSV$=F{3A)8yz>IX3T7f?vF+zX0*j@Hl0k&9B+$Ru~rCe3qMP9 zZWUe)_$1npMv(R)rABKNwa|+vAT-_(+E%xwmey9n$?i4|QRY6!n%%(6wr$OHJoJ6yJBQGkW2u{l+6$onHHs#{W&@sfMYEKGi%mS;U%|m(Lzqw`d)t zCiAq^)C}vt_pp>Fc`YRj8@?f`O>+@TZT7L8)@N$R*?yhJ;)>-psr^~5S2lwP%PF7K zWZBs4u`thp1@B{CGCjq5w6;@|c=%Y<_#0Rs^RIY`d!PCHeBJ~gY zEWKRbbe>w$<8@7wXV5ZLH(9)xB!IQ|ksnnRUP*!jsZ4nv=t7_q?<1kF`!3YNTQGo$UEAqk=WUE5{HsUpZI60 zK%P@vLD54#n{{%op2z=|--d?t?#X+z+V{5jmpT$YiXD0d#a`-5Xb&rjoxIn=n<)P~ zzMEn%^(eG+6?=wphvR)8i@nrqnR30#7$v^cQ5@~5cEw)mU#QeOs;I{9goOn5sP@EO z>P@J=-w-{ar_i2iS$L^up>d9+kDp;kVTW=l_A-A6mH9*Rt>1r6vzPfusLWqvPjjAb zKaLpXMCMDGe}zh(QAITwhww%0`0e+wBcT#s^u@k`ftNJh>gEN;mpBjd*v1hjKjjS)^3+xv zzqf90fY-JBzlJs;JTZJ#94jvXZzz1__`i?18ozA7SpOQ*N_o4f{5&Y>&yn`EA>1{~ z`onI(n;#qDiZ;&o#gB$pVWJE%_R$Ti;JXp8bRM}+;VaKUlZZdz^DEt#5wCRq`WoVN z{;I!+-(g%omwj^;{qG`P>D>2*!dITZ*5SO{2o>g;q@BUj(ehC%BnxiQ9UUArlX%A1 z(SQ7e)pPV@Kb^o@odNDxhfkEsTSJ-r0G_I(f92E1eoA z?iuiQbE(m6_MF7&>g`lvj+|(JzRMDh!bpEPirV+7D5GvVQ>4Lm_Z&am-eVm2kfo$GrjH4AMHSN`R*xxh0|p3*tvYB{2!kD29K-b iasRn&`N-Ciee#NfT|V#)oF50Bln3@d9(H?Y?EeH&c3ivw diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh new file mode 100644 index 000000000..a0ca548d3 --- /dev/null +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +rm -f *.so + +CURR_DIR=`pwd` +cd $CURR_DIR + +script_real_path=`realpath $0` +script_home=`dirname $script_real_path` + +# generate and fetch ./com_gemstone_gemfire_internal_NanoTimer.h +cd $script_home/../../../../../../../../../../gemfire-core/src/main/java/ +javah com.gemstone.gemfire.internal.NanoTimer +mv ./com_gemstone_gemfire_internal_NanoTimer.h $script_home/ +cd - +if [ -e $script_home/com_gemstone_gemfire_internal_NanoTimer.h ];then + echo "SUCCESS: com_gemstone_gemfire_internal_NanoTimer.h generated " +fi + +# generate and fetch com_pivotal_gemfirexd_internal_GemFireXDVersion.h +cd $script_home/../../../../../ +ppp=`pwd` +echo "currently at $ppp" +javah com.pivotal.gemfirexd.internal.GemFireXDVersion +mv ./com_pivotal_gemfirexd_internal_GemFireXDVersion.h $script_home/ +cd - +if [ -e $script_home/com_pivotal_gemfirexd_internal_GemFireXDVersion.h ];then + echo "SUCCESS: com_pivotal_gemfirexd_internal_GemFireXDVersion.h generated " +fi + +cd $script_home + +gcc -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd.so +gcc -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd64.so + +chmod -x *.so + + +cd $CURR_DIR diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c new file mode 100644 index 000000000..6e85bfa47 --- /dev/null +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c @@ -0,0 +1,67 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +#include + +static void JNICALL +resourceExhausted( + jvmtiEnv *jvmti_env, + JNIEnv *jni_env, + jint flags, + const void *reserved, + const char *description) +{ + fprintf(stderr, + "ResourceExhausted: %s: killing current process!\n", description); + kill(getpid(), SIGKILL); +} + +JNIEXPORT jint JNICALL +Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +{ + jvmtiEnv *jvmti; + jvmtiError err; + + jint rc = (*vm)->GetEnv(vm, (void **) &jvmti, JVMTI_VERSION); + if (rc != JNI_OK) { + fprintf(stderr, "ERROR: GetEnv failed: %d\n", rc); + return JNI_ERR; + } + + jvmtiEventCallbacks callbacks; + memset(&callbacks, 0, sizeof(callbacks)); + + callbacks.ResourceExhausted = &resourceExhausted; + + err = (*jvmti)->SetEventCallbacks(jvmti, &callbacks, sizeof(callbacks)); + if (err != JVMTI_ERROR_NONE) { + fprintf(stderr, "ERROR: SetEventCallbacks failed: %d\n", err); + return JNI_ERR; + } + + err = (*jvmti)->SetEventNotificationMode( + jvmti, JVMTI_ENABLE, JVMTI_EVENT_RESOURCE_EXHAUSTED, NULL); + if (err != JVMTI_ERROR_NONE) { + fprintf(stderr, "ERROR: SetEventNotificationMode failed: %d\n", err); + return JNI_ERR; + } + + return JNI_OK; +} From 84f3fed5598e04acc0481c57c1f837202ca9793f Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Fri, 12 Oct 2018 18:31:30 +0530 Subject: [PATCH 02/15] changes related to review comments and enhances --- .../gemfirexd/internal/engine/build.sh | 72 +++++++++++++------ 1 file changed, 50 insertions(+), 22 deletions(-) diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh index a0ca548d3..1f071d81e 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh @@ -1,39 +1,67 @@ #!/bin/sh -rm -f *.so +################## +# helper functions +################## +is_file_generated(){ + file_path=$1 + if [ -e "$file_path" ];then + file_name=`basename $file_path` + echo "SUCCESS: file $file_name generated" + else + echo "ERROR: file_path $file_path not generated" + exit 1 + fi +} -CURR_DIR=`pwd` -cd $CURR_DIR +rm_if_exists(){ + file_path=$1 + if [ -e "$file_path" ];then + echo "WARNING: deleting $file_path" + rm $file_path + fi +} +CURR_DIR=`pwd` script_real_path=`realpath $0` +# script home is assumed to be +# /store/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ script_home=`dirname $script_real_path` +snappy_store_home=$script_home/../../../../../../../../../../ +gemfire_core_java=$snappy_store_home/gemfire-core/src/main/java/ +gemfirexd_core_java=$script_home/../../../../../ +# modify below variables as per requirement +gemfire_version="\"7.5.Beta\"" +gemfire_buildid="\"1234\"" +gemfire_builddate="\"2018-10-12\"" +gemfire_buildos="\"linux\"" + +rm_if_exists $script_home/libgemfirexd.so +rm_if_exists $script_home/libgemfirexd64.so + # generate and fetch ./com_gemstone_gemfire_internal_NanoTimer.h -cd $script_home/../../../../../../../../../../gemfire-core/src/main/java/ -javah com.gemstone.gemfire.internal.NanoTimer -mv ./com_gemstone_gemfire_internal_NanoTimer.h $script_home/ -cd - -if [ -e $script_home/com_gemstone_gemfire_internal_NanoTimer.h ];then - echo "SUCCESS: com_gemstone_gemfire_internal_NanoTimer.h generated " -fi +cd $gemfire_core_java +javah -d $script_home/ com.gemstone.gemfire.internal.NanoTimer +is_file_generated $script_home/com_gemstone_gemfire_internal_NanoTimer.h + # generate and fetch com_pivotal_gemfirexd_internal_GemFireXDVersion.h -cd $script_home/../../../../../ -ppp=`pwd` -echo "currently at $ppp" -javah com.pivotal.gemfirexd.internal.GemFireXDVersion -mv ./com_pivotal_gemfirexd_internal_GemFireXDVersion.h $script_home/ -cd - -if [ -e $script_home/com_pivotal_gemfirexd_internal_GemFireXDVersion.h ];then - echo "SUCCESS: com_pivotal_gemfirexd_internal_GemFireXDVersion.h generated " -fi +cd $gemfirexd_core_java +javah -d $script_home/ com.pivotal.gemfirexd.internal.GemFireXDVersion +is_file_generated $script_home/com_pivotal_gemfirexd_internal_GemFireXDVersion.h +# generate so files cd $script_home -gcc -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd.so -gcc -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd64.so -chmod -x *.so +gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd.so +is_file_generated $script_home/libgemfirexd.so +gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd64.so +is_file_generated $script_home/libgemfirexd64.so + +chmod -x *.so +# go back to initial working dir cd $CURR_DIR From d6827e41c66004baef125e840c5194f0fb9efd37 Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Mon, 15 Oct 2018 16:45:07 +0530 Subject: [PATCH 03/15] replacing realpath command with absPath() --- .../java/com/pivotal/gemfirexd/internal/engine/build.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh index 1f071d81e..6dd8d086c 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh @@ -22,8 +22,12 @@ rm_if_exists(){ fi } +function absPath() { + perl -MCwd -le 'print Cwd::abs_path(shift)' "$1" +} + CURR_DIR=`pwd` -script_real_path=`realpath $0` +script_real_path==`absPath $0` # script home is assumed to be # /store/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ script_home=`dirname $script_real_path` From 4007ec89a615ad23ab6ca88b3d814091a7d430fc Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Fri, 19 Oct 2018 17:56:27 +0530 Subject: [PATCH 04/15] added generation of ibgemfirexd*.dylib for Mac --- .../gemfirexd/internal/engine/build.sh | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh index 6dd8d086c..1ab9e2f68 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh @@ -27,45 +27,69 @@ function absPath() { } CURR_DIR=`pwd` -script_real_path==`absPath $0` +script_real_path=`absPath $0` # script home is assumed to be # /store/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ script_home=`dirname $script_real_path` -snappy_store_home=$script_home/../../../../../../../../../../ -gemfire_core_java=$snappy_store_home/gemfire-core/src/main/java/ -gemfirexd_core_java=$script_home/../../../../../ +snappy_store_home=$script_home/../../../../../../../../../.. +gemfire_core_java=$snappy_store_home/gemfire-core/src/main/java +gemfirexd_core_java=$snappy_store_home/gemfirexd/core/src/main/java +gemfirexd_core_lib=$snappy_store_home/gemfirexd/core/lib # modify below variables as per requirement gemfire_version="\"7.5.Beta\"" gemfire_buildid="\"1234\"" gemfire_builddate="\"2018-10-12\"" gemfire_buildos="\"linux\"" - -rm_if_exists $script_home/libgemfirexd.so -rm_if_exists $script_home/libgemfirexd64.so - +echo "WARNING: verify below values that are being used" +echo "gemfire_version=$gemfire_version" +echo "gemfire_buildid=$gemfire_buildid" +echo "gemfire_builddate=$gemfire_builddate" +echo "gemfire_buildos=$gemfire_buildos" # generate and fetch ./com_gemstone_gemfire_internal_NanoTimer.h cd $gemfire_core_java -javah -d $script_home/ com.gemstone.gemfire.internal.NanoTimer -is_file_generated $script_home/com_gemstone_gemfire_internal_NanoTimer.h +javah -d $gemfirexd_core_lib/ com.gemstone.gemfire.internal.NanoTimer +is_file_generated $gemfirexd_core_lib/com_gemstone_gemfire_internal_NanoTimer.h # generate and fetch com_pivotal_gemfirexd_internal_GemFireXDVersion.h cd $gemfirexd_core_java -javah -d $script_home/ com.pivotal.gemfirexd.internal.GemFireXDVersion -is_file_generated $script_home/com_pivotal_gemfirexd_internal_GemFireXDVersion.h +javah -d $gemfirexd_core_lib/ com.pivotal.gemfirexd.internal.GemFireXDVersion +is_file_generated $gemfirexd_core_lib/com_pivotal_gemfirexd_internal_GemFireXDVersion.h # generate so files cd $script_home +case "$(uname -s)" in + Darwin) + os_name="darwin" + rm_if_exists $gemfirexd_core_lib/libgemfirexd.dylib + rm_if_exists $gemfirexd_core_lib/libgemfirexd64.dylib + clang -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $gemfirexd_core_lib/ -dynamiclib utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd64.dylib + is_file_generated $gemfirexd_core_lib/libgemfirexd64.dylib -gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd.so -is_file_generated $script_home/libgemfirexd.so + clang -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $gemfirexd_core_lib/ -dynamiclib utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd.dylib + is_file_generated $gemfirexd_core_lib/libgemfirexd.dylib -gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -I $script_home/ -shared utils.c jvmkill.c -o libgemfirexd64.so -is_file_generated $script_home/libgemfirexd64.so + chmod -x $gemfirexd_core_lib/*.dylib + ;; + Linux) + os_name="linux" + rm_if_exists $gemfirexd_core_lib/libgemfirexd.so + rm_if_exists $gemfirexd_core_lib/libgemfirexd64.so + gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $script_home/ -shared utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd.so + is_file_generated $gemfirexd_core_lib/libgemfirexd.so -chmod -x *.so + gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $script_home/ -shared utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd64.so + is_file_generated $gemfirexd_core_lib/libgemfirexd64.so + + chmod -x $gemfirexd_core_lib/*.so + ;; + *) + echo "ERROR: kernel not recognized" + exit 1 + ;; +esac # go back to initial working dir cd $CURR_DIR From 003de5d094b2771ca7ff35a54eec0b4bf35e0748 Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Mon, 22 Oct 2018 16:27:58 +0530 Subject: [PATCH 05/15] adding gemfirexd(64).dylib files --- gemfirexd/core/lib/libgemfirexd.dylib | Bin 0 -> 8964 bytes gemfirexd/core/lib/libgemfirexd64.dylib | Bin 0 -> 9036 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gemfirexd/core/lib/libgemfirexd.dylib create mode 100644 gemfirexd/core/lib/libgemfirexd64.dylib diff --git a/gemfirexd/core/lib/libgemfirexd.dylib b/gemfirexd/core/lib/libgemfirexd.dylib new file mode 100644 index 0000000000000000000000000000000000000000..5fa86b7409a24bd0c3ef8c248da6c33d38493b32 GIT binary patch literal 8964 zcmeHMU2GIp6u#3gxL{$orovv{$%XEn(#wX*P z^vwC0d(J)gySK^gJ!k*?<;ES1v1;&a@I3Il9>(@EKNFzu$Aj}OsizBull&zElHzBT zn7o{u%AiS_O_lM58ph5dFG);wlRRv=Y;bN2rFzpzZkX9#I4g4;oX=Q2{3NN)GI?j& zIcP1&fnXk2k{Ly}?3wF0irAI#ldLKyAX&;mD(6wd)K#sY3{YhqKOpu~_(?j+nUC|V zwp-O=T-Ey07*v_#h>x)z_(?kBocU;t9&0bwukBjvctiW(;PPJ5eiCu60Ye+gjH$!E zH6Ghw<#5hT_?7pD^Q3&c95tAqN+9XXLA4MQaUPRR+171)W*v(WOY@O*=C~PQ@AGOn zIN#LT{)Du?wR|Q;IH>?g4;D^y0;*}EGhG1Fd2#xK-G-tYK_ex{<%FyS4NcBuhN#Y< zVWxE@*srAeR9zX21*2pddNi1lRV|p12V}TX!HhbPHsz#apsJaQuEC{f{i>z}1A*K9 zRZNgndxPL2`e>PcNXv#!)FLvr5po}70g~{ewMH5kyAzTU(Agn9 zLN*Ad#e_Ni@6vw%9erKSQ!!u>Y?|l!Z??X9zUPtPu|?7|-~YruTM8f5$>zx)KEJ0gR)Z8&QiFvZ-X#8eMV`a1n43 za1n43a1r=_A<#W~Y3s;jT~6|ko;?5g$RFO_D?e(($Bpl;Gsd!!N$-KSsgB6R5qL(% z{3qC%*B<&kHI-|-HhT8tjU~c(?XM$ab=$X{qLI>6Br*HSSA9eQ-;!r7Adw&MCP?qe zwRv;3u!_g8;glT_4c z$(rZ1G)2~d=dR*8DqYA)*X?Ovrm^w;@M7i{FWNX@@><8_1$eJCS|JIRh$IBm=&@^T zatynKVUf;ac;YE!BQ%k@xMz&k3IxN2E5G@cuo-ymdynSB`i2)kDQ4>)wB z(wmqQnYi0>0mot^{e~zu`mJZ3^{mH}vAD-F=o>H}C&%TVX<-XUyFeO!bYA|Jv}V%2 zfc9WuRbZWB%3`>A#Y(X`6kfeN99kZ37SkD1O{q^SF)^uX*+C|Cc5d!mBW_SkNgELR zWHqV8)`*Rf1M-^!> zE@$zHOY<0O#GPsqrSyx@tgd4oF{7uWieWV11KR#hC$#8WnU+aJl5CJLiwOe#mVOup z@e8HjqNLOBz#9CrqIi(71CKmp9vf0gA0qB!@HqHOaOH2>%JHu4BH$w6BH$w6BH$w6 zBH$w6BH$w6BH$w6BH$wM-$0_&Pode~^B4`0LGibX=6?W#dUG?|X>{NTU@QM z69TJ(7p+=NL3*oIix#`xf9376mhM71I_F`nq_bl}sbgCnKS)jaQp5%&^%%OnJ?ppH z6Ce;px8ojXKqPZwplKcV{>AL(d7 z7J&wq>Jz$BHe5Ez2An8;nvN}afkkiLmzkO=N$Tv4xM_r)B{IaHV157A~Dud y?(;g|iHy$xnosY*KZN#X;J<{}u{GtLb{xryvo?Lo%IB-%WZiOjxn6kz$Jk%4Xr4a+ literal 0 HcmV?d00001 diff --git a/gemfirexd/core/lib/libgemfirexd64.dylib b/gemfirexd/core/lib/libgemfirexd64.dylib new file mode 100644 index 0000000000000000000000000000000000000000..0c412b4977ab15a581409d5a15db629d64a294fe GIT binary patch literal 9036 zcmeHNU2GIp6ut{oDuP|&gB8RM#v&To?G~yHytLSrK}#uZAsEwKr@OP;f! X125> z#v+igX_{<^A;iSQ#F*#{Au%RWlUf90!KmPiH5wqspH|TH5q)6&&di-JYaXw5{fJwB*ra;oXz>h-=Q>}__W86&(v^quB5{}PsMYI<78`2G7q*!xtB zd)PBsWgAS+^ZI^GPjXF984j-Y@7+3A)7v7#ejA=`YH44OI{Vtu-q&6+;_c@hTH04S zE8gC4u4lM4k{vKIJZGEm^Y86>=IB_FzDE>)Iwu}+o;E6u$!+$+!ceVHAndnCK6=D? zM!B1R^}^m-p+LCO9@+BdA`#A$imeD?2UoAR&F3HCN_)37-5%|O?AYnt+Vw)bW2?7; zk~=Pb4H*--Qy3$^uzh8sU!Q4|dX!3jbf=}7R@BNWgUTL7k6OBt%Z<<)qLyu#YBa58 zQ<|v`C!-01mYIlV6-|%sQHB(-veBG2WY|ikLQvCf)zraK^|Yp|(MaTOKfVbv+CUVg z%zb)8Bsl_xSjnS|jW$tVa^qf$*1^OBwMvY2qdkgt3N4*+T66bm#+IV(fPq>B;6CD^ z5K%m+(3z#PR(U=Et0)Y8@u#SYzY>V%8NdAd7r#EWspZtr;p2ZCYiWKAyf8^FTjG=_ zJxn|h`P7O+y5#Gk<{#lkh(+_3NpYakJ7U>tHnO=g5NjYyc4e%K&fgOP(>enRA`nC% zh(Hj5AOb-I{@V!blnXz}hpvYU7cWg8x>39T@zdLIb*Ov$jI~N0&(9aWne73VwfH={ z@Wv*2Vf==C=v=t}EDe54m)UEVQ=mv)!(qoU$KKdtd2F;5R}Xot<#XHu`b$@ff@r)~ zK6rgCS%nLa+YiWNHG@!*$6Dp_mKPy)?NxdF&6%5}(quj96t2up zU?zFI<{&kN__RFs$~;U>xWkuA#cA9b%f?ogjjbVL%_QA9wmA0PBp{ohJ5%g@Y^uG~ zUF+yHz=2f=s*0(Iy3Dg{k@Z>ezy+TtKo*xb*Uc#yt$ z=Dw#MUBc$Rrrvt$O;fL(dXwlq6KRQTR&7O!HLu?wH8;gt*TtIF#hN7}XKPvQfSQyt znw}qK@t&UTJsYJhsvXydq?Dp%)Z|8~F}cJW>BY#9s@u;hnaqHa*lXQQsLQaml$KCz z&Cs_QNwrG0N41Q+nNZ`ygGwHkKbptdDDBlUa3w7z@}`M-q?~CaRLfe8t0mUX9!8;7 zLLrh+=uQa=(f2alGpTsrzSO7Bg{7$L9Zkk^kZpsJ5DSs1JJKofeL5l9bE5rHv@@dh zf4APzU@#CwAc#N^fgl1w1cC?z5eOm>L?DPj5P={9K?H&b{BIFhzPf%FO}@O1Qwlt( znr4pe*cUFgAuE@3lI(l{d1oZWM`!Vx;!vo__SHKY0|!*oV1N=}B4Z@>^0aE>T}374 zS};>NWWnte!6rbA=CmZCRv>!tK%XeYk(*oiJhF})Sx3%V+S7Of;oJ32LrJptL*;}a zA3{PCk1FiL5L*B)(wMpmyG|Mt>2WtV$-5NY=z||7=P_OM*?S?8&Gh7lDWNVjwy4?X zkO|%0vCEwRitx4zFE~T0V6l_+sANKO2 zlyjtKIy^l&xl}Z5UasEDiF@M`<5io*%e(jwx967PzucyZ?e$Izj<2 literal 0 HcmV?d00001 From 3e4bdf9c2e360e463b2c98d096c20f0f8fec808f Mon Sep 17 00:00:00 2001 From: root Date: Tue, 23 Oct 2018 01:48:24 -0400 Subject: [PATCH 06/15] recompiled libgemfirexd so files on centos with logging in jvmkill --- gemfirexd/core/lib/libgemfirexd.so | Bin 5576 -> 6239 bytes gemfirexd/core/lib/libgemfirexd64.so | Bin 7685 -> 8496 bytes .../gemfirexd/internal/engine/build.sh | 4 ++-- .../gemfirexd/internal/engine/jvmkill.c | 18 ++++++++++++++---- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gemfirexd/core/lib/libgemfirexd.so b/gemfirexd/core/lib/libgemfirexd.so index 2ef6692b82780aaff40ea6df09169a6c59ea48c5..0f1e78f782585a68b48e6d36de25d22a8a8af134 100644 GIT binary patch literal 6239 zcmbtYeQaCR6~C@cN$DslE2FS#cwit1;yGz3r7$gR>Xt&9mV7|FD0?{eOKfWU1^YRq z69_Vk4bNB$A7g{{k8DNLBsQsA5h?{ufkd<*w6&}o{iD*d(N2yCtY`ruD0si$z3;{^ zp-7v!*73Q&d(J)Qew_R9?gQc0O&*U&=;Re%K{R=e5KZ8xzoH~f!Y|Gdbz+scM9Q^3 z`GNBkp^6Z-Lds>?r6>mlVDLK7Vn@CR{0QnCfs8Z;OrqT9&@pgL0pv+qcKazi2Kc$; zuD=3OFKBaHmk5nMx$pd?M_#%3(}Ne(J^Jhw)4LZZDLWs;wy@rh#TA~=MDrGwp$p<7 zP+;o3*@JICc3(^QuhY+8_F`iDiCePA@7b}cbN2Ph3#Ip$z4MoUFN4~=&oKH^R@%tgk&JB^!bqeOwlMm@Ac_t}n2jV8-#3ME>!8tY z_9wEonQ2KzvRN}LZjB5^jHs0|1`>mo9Z4GfW~widF^6I>1U*zWHk+wUDB7{{4l|QY zz?ad`Z`y4UJ27ZFMWR}5P$^X{LzK0xw5d&34Yx(oR%aq*W?(Vx6-J@!B%CUzx~Ns&zS zMuS-^xJDReEMiA6F1^{T8Zi{5V`6jbmJKaNW3VB(x|*NMg*e)awH!@m&&AHGT{6c3^P!@s5u2?~ofFKZs2&KVAFai?kqeJ;nSPXgxG$FDvEi zkSq8Cn}ae+W9e0L8?`r$Wuerx$$)7 zU$5qA-jkoG?fzcRILEjgM8WX*P15~};^P76V~8&*=1(&>W-l$tvcif$pEj@P?8(4bjYBJQ% zPp>V8YYROy_+Kq6P=;r zA$Tn1ccLe(R?2rX2bVRdShx@FUnM$^s3}nX=ci~$&kWo;P75Da`*UZ<@boC0Vj#-L zP+@rdA74d(x6Tx64{Z$8coum=923~9w6A<*2sa0TiV-uln8rF`qVa1)*^ zhG&X3tnvsYY78omoV1ro@>6s5@~U1b zzt8bj%+J7HksBjfR@Gs)-OO6KOw+=Vzl5>3)ASm&w4De;{K;&209YvK?#-Mn>*$nzM}O3WJkp6Qh>*3LGEu zKJme46>AoG-cd)fSKyeCcN-csp^sxh-p6<^dxI7lVEad(7M5yi0MP z!^)Fq7-G_DLOI%Fu?^VSES_l}gVWZRNxUQLv;iGx2law7pdWx91N{p02hb~^H$le` zfSX%d*7@sj1HQ)J6l@CKz))xmt!`NDuWLsP+!C=>d41#RYlH}9cc<(~FSwmiJg#$T z%Ql1k>0Gckmq^Cyaq*BS9?8Zx6n-OImLbdA617jO&mTLS858G2H{wdeLWgu*Hx4q69n%j$T94lmB=q<@YbgODA3DmnfiJ>Wx8f>4lUE?< zk+_DLymCg>T2+`kmRgevs}a=S*IwBRwZ@bjL4d@y#N?Gblv*XiLR9HnG<4a)-IuhfE$tzzAs_zkA zc}gpplCPYbXJQ}TFW4j9UXQpyuxYxz9?Wzdux_shQFJ}99-l=RpWA>LpPVue{C$^l zU``2f9Q-aWG$iV~_jq) z#_BJLsKB?xR@~Ji{iet)yxj|9bL+MZ>syU&n>KZXJB`lu8(PEcTP$lC@klzB#5Thrh?;Z;jQ>J_kB&~TRLM(2sJsuaRFRiF9P>)<>oAO4&N aL4Hlmlg)cLtxEVlIM?Yf`C_UbYX1wlr;)b+ delta 2359 zcmZuyZERFk5WR2Te%CI$ZD|Wd7TdK}B&BIUtcFs=LWqb_K0`}^T9E!|OG?EbNS3m} zSnF!ZfJRM7#YmJuBw~<6qYYb&CY2DZilzZVs(I3l0R?P?@;v9gUEHX%nVmWJbMCn_ z_g$#?>Vcj@zj7%xODT2Bzo)pkddRC36^%*-mC|6WwnA8F9vY@V-Kl;DY!c&>=t~yv z+0{7v{ayP*Cr*VwSU7a^{C(#)9(w2LsyB3u@Jj^n11 zMy>juBpT8Zg7Zfjz~(?5a#bsdj!aU@2^3QKDuRHn08@hMsu=<{GVq)1z`iXoIVwwC zfZYN-lEQ`m8b1&1ePEz6)ejz2JvW2o;2`-*>B{iP>yBTG=0Cf!wPW3rtxMWAG^wo} zO&iN2DhSY4L5@vUEQB*3pO`rbN*~# ziUGbsyCMy=hhg2I`6w+y{g@Ur9Pv@$U#_cbcPmj4bfuaIa+WsOzTnVA}z+R z==ynCEa^13X7dU%jAY@nl?iU+@%#W&}Ht8O~KOLF@mZq?Y|7f%HV0S{$O3h z+5}@U%B>~l0iuII*LW6rJ}x1N76zT#rn@`$s`88Nm?z*7~T zf7>)i`+ItNu)?ZkoylIT(Ov5`W?{3=#9SHh%+z}2hNnbpkjdUsZIR6P=0@YOmfuXX z>#>NlJ9dp>DXzGG+%!)BnWKa8Z3?~Kci3j4xv5ksm=ZF94(y*x5Rx9dj?S~ zh8maCzL^s67dV>yGTk51oBT?i@^6naW0*X=eAXNj8YzW5R_gj~vuzAMtA0I_f;C!$ zaeml&uvxIoOxAH95`+27#Kt|M0F^3$&cJ%~uVE0&^dTs&#mY{cJGZSL9iXj^L0p0D z)ukb8VJTmZv>d=1A3;w-&q6Oje}_7~$9~E>plQ=&M|Rl92&wbrJ)mAJOO41kK-`2{ zA=k6RZpLy=m&t)*AH$l$vFB{{q5RydEt(*Jj;nS@b+$PKJXLdmB zWig&vqM}wp(bKIovstq-(~Z1Y2K@ocA%PTK;ZzW^NYPV|A*r-6(+iB;!Avvz(?hFU z>4r}kskIxJpLWLD7>^f(3{!MIEc;pw z*P51TaF%BbAl?kjTA}3N+FRL=^lGtimO2QW`N2JwF`t+EC2-~k{fCTx26S0_#^x73 zZsV$X0|PR@_&0$wzxa++5pX;g$jQLPz~#VwV5HLO&r;if>t*-E)6$UNDBtG48nQp- YH8qQtEPiysy2|nj*;i00KNh_BHyV`DApigX diff --git a/gemfirexd/core/lib/libgemfirexd64.so b/gemfirexd/core/lib/libgemfirexd64.so index 933d9262cc79a27203c4de25232ddf9bbd514eaa..bdc572118b986e0553afb38b5bc590b601d76fda 100644 GIT binary patch literal 8496 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 diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh index 1ab9e2f68..476401c7d 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/build.sh @@ -77,10 +77,10 @@ case "$(uname -s)" in os_name="linux" rm_if_exists $gemfirexd_core_lib/libgemfirexd.so rm_if_exists $gemfirexd_core_lib/libgemfirexd64.so - gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $script_home/ -shared utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd.so + gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m32 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $gemfirexd_core_lib/ -shared utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd.so is_file_generated $gemfirexd_core_lib/libgemfirexd.so - gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $script_home/ -shared utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd64.so + gcc -DGEMFIRE_VERSION=$gemfire_version -DGEMFIRE_BUILDID=$gemfire_buildid -DGEMFIRE_BUILDDATE=$gemfire_builddate -DGEMFIRE_BUILDOS=$gemfire_buildos -m64 -O3 -fPIC -DPIC -D_REENTRANT -I $JAVA_HOME/include -I $JAVA_HOME/include/$os_name -I $gemfirexd_core_lib/ -shared utils.c jvmkill.c -o $gemfirexd_core_lib/libgemfirexd64.so is_file_generated $gemfirexd_core_lib/libgemfirexd64.so chmod -x $gemfirexd_core_lib/*.so diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c index 6e85bfa47..3ef3a08e9 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c @@ -20,6 +20,13 @@ #include +static void *logMessage(char * message){ + FILE * logFile = NULL; + logFile = fopen("jvmkill.log", "w"); + fprintf(logFile, message); + fclose(logFile); +} + static void JNICALL resourceExhausted( jvmtiEnv *jvmti_env, @@ -28,8 +35,7 @@ resourceExhausted( const void *reserved, const char *description) { - fprintf(stderr, - "ResourceExhausted: %s: killing current process!\n", description); + logMessage(strcat("ResourceExhausted: %s: killing current process!\n", description)); kill(getpid(), SIGKILL); } @@ -41,7 +47,9 @@ Agent_OnLoad(JavaVM *vm, char *options, void *reserved) jint rc = (*vm)->GetEnv(vm, (void **) &jvmti, JVMTI_VERSION); if (rc != JNI_OK) { - fprintf(stderr, "ERROR: GetEnv failed: %d\n", rc); + char * rcStr; + sprintf(rcStr, "%d", rc); + logMessage(strcat("ERROR: GetEnv failed: % d\n", rcStr)); return JNI_ERR; } @@ -52,7 +60,9 @@ Agent_OnLoad(JavaVM *vm, char *options, void *reserved) err = (*jvmti)->SetEventCallbacks(jvmti, &callbacks, sizeof(callbacks)); if (err != JVMTI_ERROR_NONE) { - fprintf(stderr, "ERROR: SetEventCallbacks failed: %d\n", err); + char * errStr; + sprintf(errStr, "%d", err); + logMessage(strcat("ERROR: SetEventCallbacks failed: % d\n", errStr)); return JNI_ERR; } From b1cf612afc6acc82ac98e4901a60b00c5b86c1fd Mon Sep 17 00:00:00 2001 From: hemanthmeka Date: Tue, 23 Oct 2018 07:24:57 -0400 Subject: [PATCH 07/15] minor fixes --- gemfirexd/core/lib/libgemfirexd.so | Bin 6239 -> 6423 bytes gemfirexd/core/lib/libgemfirexd64.so | Bin 8496 -> 9316 bytes .../gemfirexd/internal/engine/build.sh | 5 +++ .../gemfirexd/internal/engine/jvmkill.c | 34 +++++++++++------- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/gemfirexd/core/lib/libgemfirexd.so b/gemfirexd/core/lib/libgemfirexd.so index 0f1e78f782585a68b48e6d36de25d22a8a8af134..9bc6482444f25c906471bebe3829a5e7ae799872 100644 GIT binary patch literal 6423 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 L7reDqm&N}DRE%wq delta 3003 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 RV|1xJm)QUCdfmR&{|BawDqR2o literal 8496 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 #include #include - +#include #include -static void *logMessage(char * message){ - FILE * logFile = NULL; - logFile = fopen("jvmkill.log", "w"); - fprintf(logFile, message); +void *logMessage(char * message){ + FILE * logFile = fopen("jvmkill.log", "w"); + if(logFile == NULL){ + fprintf(stderr, "Error opening log file"); + } + fputs(message, logFile); fclose(logFile); } @@ -35,7 +37,10 @@ resourceExhausted( const void *reserved, const char *description) { - logMessage(strcat("ResourceExhausted: %s: killing current process!\n", description)); + char* msg=(char*)malloc(sizeof(char)*120); + sprintf(msg, "ResourceExhausted: %s: killing current process!", description); + logMessage(msg); + free(msg); kill(getpid(), SIGKILL); } @@ -44,12 +49,13 @@ Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jvmtiEnv *jvmti; jvmtiError err; + char* msg=(char*)malloc(sizeof(char)*120); jint rc = (*vm)->GetEnv(vm, (void **) &jvmti, JVMTI_VERSION); if (rc != JNI_OK) { - char * rcStr; - sprintf(rcStr, "%d", rc); - logMessage(strcat("ERROR: GetEnv failed: % d\n", rcStr)); + sprintf(msg, "ERROR: GetEnv failed: %d\n", rc); + logMessage(msg); + free(msg); return JNI_ERR; } @@ -60,16 +66,18 @@ Agent_OnLoad(JavaVM *vm, char *options, void *reserved) err = (*jvmti)->SetEventCallbacks(jvmti, &callbacks, sizeof(callbacks)); if (err != JVMTI_ERROR_NONE) { - char * errStr; - sprintf(errStr, "%d", err); - logMessage(strcat("ERROR: SetEventCallbacks failed: % d\n", errStr)); + sprintf(msg, "ERROR: SetEventCallbacks failed: %d\n", err); + logMessage(msg); + free(msg); return JNI_ERR; } err = (*jvmti)->SetEventNotificationMode( jvmti, JVMTI_ENABLE, JVMTI_EVENT_RESOURCE_EXHAUSTED, NULL); if (err != JVMTI_ERROR_NONE) { - fprintf(stderr, "ERROR: SetEventNotificationMode failed: %d\n", err); + sprintf(msg, "ERROR: SetEventNotificationMode failed: %d\n", err); + logMessage(msg); + free(msg); return JNI_ERR; } From 1e9e3733043cf0fada864a103fd6ecf0f238fc89 Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Tue, 23 Oct 2018 18:07:37 +0530 Subject: [PATCH 08/15] logging heap histogram on critical event --- .../cache/control/HeapMemoryMonitor.java | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java index 5552bae5f..f80f4987f 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java @@ -16,11 +16,14 @@ */ package com.gemstone.gemfire.internal.cache.control; +import java.io.BufferedReader; +import java.io.InputStreamReader; import java.lang.management.ManagementFactory; import java.lang.management.MemoryMXBean; import java.lang.management.MemoryPoolMXBean; import java.lang.management.MemoryType; import java.lang.management.MemoryUsage; +import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.Executors; @@ -54,8 +57,10 @@ import com.gemstone.gemfire.internal.cache.control.ResourceAdvisor.ResourceManagerProfile; import com.gemstone.gemfire.internal.i18n.LocalizedStrings; import com.gemstone.gemfire.internal.shared.LauncherBase; +import com.gemstone.gemfire.internal.shared.NativeCalls; import com.gemstone.gemfire.internal.shared.SystemProperties; import com.gemstone.gemfire.internal.util.LogService; +import org.apache.log4j.Logger; /** * Allows for the setting of eviction and critical thresholds. These thresholds @@ -117,6 +122,8 @@ public final class HeapMemoryMonitor implements NotificationListener, private static boolean testDisableMemoryUpdates = false; private static long testBytesUsedForThresholdSet = -1; + Logger logger = Logger.getLogger(this.getClass()); + /** * Number of eviction or critical state changes that have to occur before the @@ -673,6 +680,33 @@ private boolean shouldDelayMemoryEvent(boolean delayMemoryEvent, MemoryState sta return false; } + /** + * Logs heap histogram for given pid + * + * @param pid + * PID of the process for which heap histogram is to be logged + */ + public void jmapHisto(String pid) { + BufferedReader reader; + String line; + try { + Process jmapProcess = Runtime.getRuntime().exec("jmap -histo " + pid); + logger.info("heap histogram for " + pid + " beginning"); + // if inputStream or errorStream gets filled and not read, exec waits infinitely + reader = new BufferedReader(new InputStreamReader(jmapProcess.getInputStream())); + while ((line = reader.readLine()) != null) { + logger.info(line); + } + reader = new BufferedReader(new InputStreamReader(jmapProcess.getErrorStream())); + while ((line = reader.readLine()) != null) { + logger.info(line); + } + jmapProcess.waitFor(); + } catch (Exception e) { + logger.error("Failed to log heap histogram for pid: " + pid, e); + } + } + /** * Update resource manager stats based upon the given event. * @@ -682,11 +716,13 @@ private boolean shouldDelayMemoryEvent(boolean delayMemoryEvent, MemoryState sta private void updateStatsFromEvent(MemoryEvent event) { if (event.isLocal()) { if (event.getState().isCritical() && !event.getPreviousState().isCritical()) { + int pid = NativeCalls.getInstance().getProcessId(); + jmapHisto(Integer.toString(pid)); this.stats.incHeapCriticalEvents(); } else if (!event.getState().isCritical() && event.getPreviousState().isCritical()) { this.stats.incHeapSafeEvents(); } - + if (event.getState().isEviction() && !event.getPreviousState().isEviction()) { this.stats.incEvictionStartEvents(); } else if (!event.getState().isEviction() && event.getPreviousState().isEviction()) { From 937546d930bd1c7e846844f065b26ea378578605 Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Wed, 24 Oct 2018 16:52:51 +0530 Subject: [PATCH 09/15] adding libgemfirexd dylib files --- gemfirexd/core/lib/libgemfirexd.dylib | Bin 8964 -> 9312 bytes gemfirexd/core/lib/libgemfirexd64.dylib | Bin 9036 -> 9364 bytes .../gemfirexd/internal/engine/jvmkill.c | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gemfirexd/core/lib/libgemfirexd.dylib b/gemfirexd/core/lib/libgemfirexd.dylib index 5fa86b7409a24bd0c3ef8c248da6c33d38493b32..e581b0b0fc4cdb7ef87d637c373fc6017a7a347e 100644 GIT binary patch literal 9312 zcmeHNZ)_A*5Pw$=J*3jsAk@%=MX3R!y=%n?)hJ+3Q=#Qrplw8a-QMl>_PEv6G~Kn&r7Moo+wqlrrf;P;~8d|P;68#->NuXI4k zetrc>%DJWFEaGgKW4{nKG$1I3IuCv}>U20a_oRpP6gREx5QNn}0*e^C8FHc&rvric zwhx*Me889|lvGABM1S@?I$)cDoM?^XfM~@Bv7ARu%TTpp>Hw0y#$h?jg(0(G|JSJPR&D;IiajbzY?FFK4ALlLX zbzTbr=bJmbH-$SoojoZ*2s;Kk2q!cyQZ)kn zLvaR8OE;9@u#%3ehLVc~qtrExXfQ3SS}-Y($PlH28FfUr^oJXi)9jnn+x{{63fzV3l1hu$va)O8Q6 zgpA^3mtqG2uW|Y$1JGD&fMiRt`rA%p)qE_NH4U0S;nqE-rKDRnR#L#Oh93DmjyVND zS6BKpM-RLVcp30A;AOzez`xDF_VI7~^3#h8;rj8zpL~%2J+OPtJ6-s2tb6{1c};#g zQ0zL_6Dgg>$5ei*{t!EH;HF>G=L%gvkAHml&*i@34L{|l7T>e;C~1bzMUoet{WMO{ zQn&n35eod{S&8_8LRX;BfL{6a5Ab={Q-1oOaND@^=)?>_e``M?sud%B`_-cHip8j&A5xE$fv=$-EV&O-qo!Jlb zy8g+!)#2m7L%^4S&j25+Du>R8^P2c zLYU=;rznXcy{(gHe?*Eq7@M=6jff1%Jz^V*$EFb8}DxEHt|_$=^cVD)$1IgUJmmjN#W zUIx4jcp30A;AOzefR_O;16~Ha40svvGVs63K*NgK9hXT@G>tB($@nrgJq_zQmCa*{ zVPsg(y@84Ks6oc;Li!MD*eIlr{){^q0k~DTx7N1Ephj-Rc{H($L0AuAG^Iy(@nOZn zos2@l#Sq3JHASzHdUP4Ha(j2@KwBtuJ?S)&G?TT=SyG9lh9c}%62IF}EoGLvD{}=bNd>@)1;wakaxv_*f03s1s`n1{QT<)c5V;FYlH$eH*52aNep_c=ndBQZ9D% zbM%XVip3pD`gW9>2Ri!f0bq#fbmJarM5&0_yS{mBbO|nXPEj+l6wN5z@w_RaK)hry zlsQ$yI&rhJ2sntMH{B7{(M=BuuDF}Cc@%*=EBqk%r-={Pb@vx5@(IY_01s2L7PWJS z|Ij6;TTn;-wTu7B#n;#h!Vlf0I{H_*_!TZb@Px2hbaI6 delta 1177 zcmZ8gUr3Wt6hHUdr)@g7Syr>GW}B52q*f4Rq`^WXbVZsE<>%0;GygT0^bl#-Uxqfl z)k6doSm;Ah*h5eCg_b=;R8#~B`C=&U!3d(a^*f&>tHXEB{r&De=iGD8z29WXxqZ=a zif$!(BZzcs|CybZJ{ysfi2C}U@3IVmYy%mRNn)2}0_+9Yge(Ocv=dc<4a#0|MW}L> zvMJL6ZiP`W{*^@li=(T%G=guUFiwwbflZjF+7^6$=4*Xt2)1HZi3qs z+hRVbjI}Mz7@~+h(cQZ*--A z8W+eZ(IjF|79N>HL=p+X&$1AN^$K1d3u6=1ig(2E5K#jY#TZ4||I1^~d0dr=@3GD;B$=tGZ1}yGf?Gc68M?x78lk8Uo>PuqA+;CmiWTT77#c*cz^9 zngNQ{_Fx?|C)n{|bF-(SthA~iFK;VXK|;f;H0}3y`nB4&7LB$SHw0S4T6yb%Hh&$B zh=xE*eJ~U_Ri||ZLLI@jR(c{x!E8rZy4@Saux!pQ>Utndq-Wx&w^zWtWpmTThto4_ z^19KbIba*#F%HE|volVcf7pzzWjMvY<;9X$2;3ImNfS)bka&&Bg5WP*n yUlVXLF#p}iOBSecwM0e6Z<)9zg?l(#(>lU+fl#QOw0|4@x5YBcUOq^6mzK|npaEu!#G%AG6`fhD+a<_Zg z-E$nOB9jn_)p3%ALIjm6S)!E?5&|SZ)IsJVr!=G=NUKUjN);pVM{5P72%(lgQm(%@ zJL{}BBob;r^uvxk^WN{x%-i?g?A-3o^ZVa?ezB3U#3IJnHK@x_pIgG%Vb%hUu^*$J zNie1;+p{~jbJ4=aA9hJ5Fmy7g;gvcS#nHwb;`|cT*Z%`w{&Is)2`?67Ia$oc!%$Id zr#xuSi=z52k|QXae8LFBjrr0f^pVe0e0|D@Rw!u}#|!=KzMcKzMmYMIy*+&oWHr*SNMJ=pHHH;MdYa+wr1HWyQq$+dsHK38)~U^ zfP6^Vj%jJBVXZi%TiRGYl_O|dxl~crjnp1>RE4ORD(R!9qZUE~b;Hpt10u~B)(tI{ zOkV9Ta)E+Am_nVG-n}lFKL7#jrg9r&PMvl$SeIG1;245|E}V}09uo1xd{Tg&ibcj{`!Yg?PuN|-_h~L zE zO6M^=K6ceVoDhZjGY<{)xEJN>J*{}tkgJ_Hfp{C}GVY9g_-t8{D@#^mnp|nZpgKCH zTcLc4o{Qe?fW7X&W%rzS9iKA$aOTlnb6=9xw{|n3Uw+~<2@=`;_MI`BRR`#C-<2zi zV7NDxXh^in?rgok-JLmn*11-$E_(&a&S&N7?@wQ>*QeX~}p_o3z>)TIA4MHfxiU}wfX^WNS~ zf#BXQM{mg6PK*=Y-omHMdP{wgw*vH79mPE(KXHP*r9jM(iM^G^^x0`h*c81}q~A-| zGWGtZj9bedt~u|+OnSD5&7Auc6oul~>(2Ordl&O5aMfjBLtl7G4?LqU4=hn1y5QLW zh_{bKm)7wSa+-U#9=##Y9>zG~*=9av)@%1g-bPR_gJ$|#H11#c0Wc?sei+;$9-INZcfGzaj1@aV~LB6Zb4}2f?jRb|yDzjw+=) z?ph~xw5Pk)rrX!1J0!E@=tcc8EiV;xqddm;j28Fmg+j7m4zv9%Ygwj+F`9u7Gzl_k zNH1tCyKUQp+crvDG$(6}N<%7S`Hj+={L-Lj06n9c;oPeh3WI8HuYI*aeWs%i={eQW zO=GK>*A|T3rrBoM%4ylL5w(oBKe~>+Q6d}3q+Hpua2=^+nK{k2SNZR+H^XfzVTvVS z^sT%OlxpzZOFT9K-ai}I3jXHF5+&eOtO3i!Uxz`iT>8aF&#wi|3u*{DCg?#ypBD6} zpp$~WBh=iuzXe9 zBcyA2w?ZlKyk=P?_RD=O6Wz$l<$01_8ARS0N%3(HCoa4sCfL3wu?ffoERB!qCw{-B zI~?r~Qx@D$%KTmTJ@24P6aULQDRc)0H?$JE y|FPx$4NQAKv~@#21(E$5>|C*D#cuWYX|O|sz3K1DU_V~=bD~($Gf*CNH2(pfhFnAd delta 1282 zcmZWoT}TvB6ux)HNlRUKE6Cc)RWt18VNC=h)ZOT3j0HFChX|QA9d$`}b=@R_*pz~X zWoh$@L=g4TLoZ=1L2V#w8QCxP5Ewx}LZlYqYcEaTot-t>4s*`A-$ZK8`FvmS*|S9+isfH-KO;>+esU2v!?Z_X`N*n-A@m( zw=_W|c2Q`ex$K=#O)J@Q(N6PNg}BY;vZkH$%orE*iA{n>OxzO%>h{8V$w5d8S^yV= zy`_W{K<_CdBoDRba~qfwFP(D^SOVv=3CS*5;aSMO&{f5D*m#cE$Dgkkw(qJL8@Mp~ zYq(|yb4e#`G7|GLwt#t6-o#z$hLo6=Qj~e~%YE9pq_>@RUCRs$XFJ;@zv+dySo@j2>hjBoX8@;p@VZ5=t=y>$i-V z!M_7(Sj+FDK&SlO-B@#?3Pw>p;2ZEMZNVOe)VMp #include -void *logMessage(char * message){ +void logMessage(char * message){ FILE * logFile = fopen("jvmkill.log", "w"); if(logFile == NULL){ fprintf(stderr, "Error opening log file"); From 66391d4b9a76d5c5ae0dddb97f529edeac8628f9 Mon Sep 17 00:00:00 2001 From: hemanthmeka Date: Wed, 24 Oct 2018 08:16:35 -0400 Subject: [PATCH 10/15] adding .so files compiled on centos --- gemfirexd/core/lib/libgemfirexd64.so | Bin 9316 -> 9316 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/gemfirexd/core/lib/libgemfirexd64.so b/gemfirexd/core/lib/libgemfirexd64.so index b4ad1d8a50d2a4edf9cf82ae66cdb56b20c3ccb2..1f915eb40241ef57006e2b88b1dea1a4355d7632 100644 GIT binary patch delta 84 zcmV-a0IUDxNaRScpaB%G6B-gnFT%Vv`$|qdqWUV|at*Yzv;mq3BJW6v-soZe|Nlsd q-$;vWBoIi8TqFocgTxr=TmJw54<7)ta0+Py1!)Qn2uQQu4TctUH6+LY delta 84 zcmaFj@x)`p0!EQ4CfhQ9!Cfw`A#y(MvpmoLXPfb3^A^Tg97^{*I^VxY{P+LAN9X+) onIO75Muo$pJ4Z#pqxp!$;j{^x3%D|wS@XE~IGi`%<82cI0GHY&{{R30 From 581f2827e4a1e31d6b13aee31c343b07247c5930 Mon Sep 17 00:00:00 2001 From: hemanthmeka Date: Thu, 25 Oct 2018 09:39:35 -0400 Subject: [PATCH 11/15] incorporating review suggestions --- .../cache/control/HeapMemoryMonitor.java | 20 ++++----- gemfirexd/core/lib/libgemfirexd.so | Bin 6423 -> 6017 bytes gemfirexd/core/lib/libgemfirexd64.so | Bin 9316 -> 8340 bytes .../gemfirexd/internal/engine/jvmkill.c | 42 +++++++++--------- 4 files changed, 28 insertions(+), 34 deletions(-) diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java index f80f4987f..e0ca958c1 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java @@ -52,6 +52,7 @@ import com.gemstone.gemfire.internal.SetUtils; import com.gemstone.gemfire.internal.StatisticsImpl; import com.gemstone.gemfire.internal.cache.GemFireCacheImpl; +import com.gemstone.gemfire.internal.cache.PartitionedRegion; import com.gemstone.gemfire.internal.cache.control.InternalResourceManager.ResourceType; import com.gemstone.gemfire.internal.cache.control.MemoryThresholds.MemoryState; import com.gemstone.gemfire.internal.cache.control.ResourceAdvisor.ResourceManagerProfile; @@ -95,6 +96,9 @@ public final class HeapMemoryMonitor implements NotificationListener, private static final int POLLER_INTERVAL = Integer.getInteger(POLLER_INTERVAL_PROP, 500); + // Duration in millis to wait for jmap -histo to finish + private static final int JMAP_HISTO_SLEEP_DURATION = 3 * 1000; + // This holds a new event as it transitions from updateStateAndSendEvent(...) to fillInProfile() private ThreadLocal upcomingEvent = new ThreadLocal(); @@ -690,18 +694,10 @@ public void jmapHisto(String pid) { BufferedReader reader; String line; try { - Process jmapProcess = Runtime.getRuntime().exec("jmap -histo " + pid); - logger.info("heap histogram for " + pid + " beginning"); - // if inputStream or errorStream gets filled and not read, exec waits infinitely - reader = new BufferedReader(new InputStreamReader(jmapProcess.getInputStream())); - while ((line = reader.readLine()) != null) { - logger.info(line); - } - reader = new BufferedReader(new InputStreamReader(jmapProcess.getErrorStream())); - while ((line = reader.readLine()) != null) { - logger.info(line); - } - jmapProcess.waitFor(); + String[] jmapCommand = new String[] {"sh", "-c", "jmap -histo " + pid + " > " + + pid + '_' + PartitionedRegion.rand.nextInt() + ".jmap" }; + Process jmapProcess = Runtime.getRuntime().exec(jmapCommand); + Thread.sleep(JMAP_HISTO_SLEEP_DURATION); } catch (Exception e) { logger.error("Failed to log heap histogram for pid: " + pid, e); } diff --git a/gemfirexd/core/lib/libgemfirexd.so b/gemfirexd/core/lib/libgemfirexd.so index 9bc6482444f25c906471bebe3829a5e7ae799872..92f01cf79b3ea678a02a2f8a4242a76d9a78207c 100644 GIT binary patch delta 2837 zcmZuzZERCj7(Tb{wzliGZtI|9VrRFELHMZ4zzrtMxv`=%fE&0l#~iXjb!>C%2L8ZW zu9%djT09aX1f%}Y#19h14~Q5?3Yb9f2QkVYBN`-~EXxcdS#VOH=iU}7@lD?Qp68tR zob%r2yyw05t*YR%sM8wF5TaTL@r>=D+r8Rj6@rRRA?!jZFk0U{Sm=G|sDx%F#|^Mv z_!;yF{lj(s`MLRqY= zQgY;ovS$7b;FJ`gk;M>_QXqd*3KfSeGL!|pB|@0cpD*T!74T^Xrr5<_i8A1pH2gOD zqu6*CY=OuYztS;Fh=wG-1-k*b4)Zv^=$`p&IF9*MNq-PiD8{(E)?q;iLeyB~dBe1O zw0CgG*YEEYy}f-S!#l+zJ9_&4UF-W>2D-P4-hsiMewi?Cv}s&$xMW;?`Ew)cVzff0 z^7tv(uv&xh$nkQtBeE3Fg+HCXZBQqb+Nt5v$XA@LjwvC{E%ByG4}DJU)X=qaDwkK( zGxm|NyWtobnNep< zp}n)aS41{l3AL4*7~XpMPF8K8=yoD;{Y*3()fQikHG;7`eep<>E!0?U4mX)$OkuSS zJ9AWwa%uq$)(cLYKqJ&S9lr*rVC?HcEtc?z8L{Xq)b1b4 zd*uMU!kLjxSHH)0ib3&cAy$_sHaIc7Ut&0Ns2!o5EaQ4V-}pG9?vZEBWy)STZmtN7 zhC8RjBQxQ>v!RL3STv&cOyUF(b41<27Gn1N1FOBkcq15^-MD;U=fP{?+9A z1DGCPi3dn9AvZOu4+AI3#d`nuV(qhu1<5zN{s}fjhCZzAn2R05suQ88GYNlj;8o{0Kh$2zjjX65Y|PvC3O$)}vW( zm2SH`lLydfm5-sReUz+n$nLhVBAUUkT^_Z&EF{+nqTdvHnFua&8x8+wX8N=a}B5=5fWl%J=^Fo~3nZams1qb$?{4)Qk06C)= zHD8@I9pkMbR%omGa2y$cgC5N)p$da1u<$_tmn0k z@d1F4e2P)~hVrv5R~IhrPQ{@h4lbFBLqQysz^OPCT!!VqsTVik#UBUeG4ci|xHMZ} zHvp4M;+?Q|d9l#-V0AKD?h-_AiVX#9ybhec%MoB9=R1}K+S1m#fX=8{h(TEH{R=F! zi=yC9%{;*j%~0H=fuuTgNQDPgU6BF&)``00D_ zATaM0r2t7V3Y`8cbd3H;wgzoHTbu+={}npN@uV<-%gWvTwE{E_2Oc8X<-ge9z+|7o ze=+`Fw5MTP@=9==3zh<>`!Bd>{Gl}LhJR}jI?{i}jsT;w+&|}H7HaWYUtf>>bI!B! yg}H|_v_CLe(Z%J^kB7>Nl;vzPV*x!=qhQOHs9)`~C&enp;@_ literal 6423 zcmbtYeQaCR6~B(%5-2MvD^Rvd^@?eOXgwzlCG9#bZQ_1F`mr>HLKj{g`#FBp_A~Z# z2&mPXnQF6KkFLO^v1uA<m$R421a77UZfh{y=4XZ4=TWR#3WTP__aQ3wXcZz3;}3 z0cjJ*IzIPz&$;K^ci*`m?|wJjyV2wE2u)t$6-1f2LUceTzN9oA!Y}5CRG2TtCNo}dD=Ss{LA<3cw=+!&$sMe+&}d~^~v&k^H0D0?tGZeqBC`f zzLs!6T_Rr5fM3!|NDSYs@$~~=3D)FCVR=LQ53~}J{y(n63sC+?9j4yb(0)+^Ue$mX z*R@}Y^7p|zP|5ePKwK<#!Tvk0QHyx5x&gSq4*vvpnRA3lL0%~4iN8UP1K;7|d9cqk z3o-5DEe-9zh58We+g&}!Xs=8*`a2gr!23E6f1nG+`9c`RP|8jlIVX~J3_}=J+H!;u zhkz&$GZEsJQ6?ZVj>ku!jZ^jvUrZTh-Xa`opdr*Ozg9gNs+V$qrsdVTrCVU7I7jNtifDP z4I`@3F|nz4%Z6^FJ=hjpRV&YwLKy!h`ID~#C9lh@^&zi6>*tkg1K%krx5PS^nRO#_ zfOQKj3oDRU#9iDXag)dZlRB|}Aa!IuQceTUWo{t<=3-*|DB-c05|jIUO3c{BkmtaM zpAw5efD(&BDz~i9Ms0Um{macTHBS)kA-B=1km#+6fEYnCM5$-FyC6sXoeCRlT3jLaN>mry{}P zsc|%`-p^4u7v zB+f{@g1C!#uf#M>Y$o0zaR>1Z;x38VG_jjFB=I`py~KWCjK_65CmseIt^D{RAqtZ% z2cPZ%6#0QtVHy^P#+>=(LMuu|Utr=H$Wnpf%8#;r`L4zIzv8uLKWQqw<5_bi=Py6b z)`c-oQJPinF3>`?S#u`)_VEJUdkV)|_S`g3;ro~fqGGgii44E6bXNfOcpVp&3TIdv zbLN$0U2$QcdZKV_;hup?X>p)(ge2R)1GCY}>lpdM@zTKA;)l;xmw3*U@>2^wDjk?EP7YMm^OwWp#h!rgIbVPiW8(df ztJTxTRDTPTi;4qN6KiC!r83xbxv&)v!4~Dhc9sxr0iqomD;{?)!y^?P)rI|VRO|>$ zoP;b5OqKF7X8cI0aF!1&p6dxTbNz*s+X`HsUoPx%UB1X}JmU875AO3{j|6xKu|_NR zU}B9s+`FfP9S z@86UQd;f_(hEJ5jCriz2a+n%5gw-FN#CV|95VbAPayrRgGi7Ib?F&@x>6o??GMBL^ozCjj}iZ#SiXPx zK7NJg9IYJ1hFr`~>xX}sPLG$uix5GD9(O}eG`aECx^e^L#K-@sR{0QE;RN5|0aVsr zlY0Lc?r+Li%MhznSct9`rmD`R_17mEB@Jx}V^tx23CCc5DK2CPw6 z2d@flFrA3Mt$kI8zdh8}xw0*^vaQ{3XRtwGTaEdXRysc-ZWT8Vr?|BQv1f^JHfv{L zW2UY2kRLVvxRo?TxUX+}-&+4B(+Q`C{qYFuVr%`E$IjE5ozM(p8|%jQH5iHR%gr*v zgS#HI-8S2?;#L%Uv7O#($IMygeP+(iXQO6#BoWDD*Jr5QT0c9R;Q6u#c08io4vFnT?rl7S zwqSXNiCp0^HF2I2;u7!_wgHyMAbDovs*2en_d3iS`ylGkEt`G7s%38j{s@x3z6kL= zuIT|hz~kWK;Mc%!gFgUsU%eQ-47?h=5qupu4(`B1ZtCt{>u<%$`wD+Yup@XiQ=~n# zs%@3OwGX+mIpV1LmF=sp5F(hnE#*W8A)Ty}30+Ftju{+E=YxZJD;ZmfbBaWXNG>6Q zvD?yUsic!t8hy}`W-c(G%bH2rt3oE}h@dM)p0a!pHsmgpA!g#DC}LnPUbGv7lFUA9f3$A~r@-2dbAz04?KrQr z-7w1RD^gL;NzO~2STxa&bPHJ99f1vboC=p{N8S(CcKjwLKd3tg9mkIJJ+QXpw+NXh zFHJh`4^Tlnjv40)c~Toe(vJEguH?A*@dC-(2dZYu_qulM62GeW>^flA@i}pMg46!E7IuD)-BYmRyI@@Ty$`!Fly$!-+20CS`{NmY8g^U{ zHPMdzJXqUt?QFr~+l4w!+U_M(XghwZ?tmS2nsoVfR4_jK$8Xkt*b!^ec5k49{&X(U zZlyMIb<}gsrY}vSuzO1bNZODn`EE5mkA`~@43922w;7kY#hkDA*NVf|yLAnIwA55%{(x&iafNE7vY>M*l`AK9AxD2z1V!@%`- zNJoL|@2p+`9!LM~KwI8ny-GdOeA>lt0&8OYe>GrV-JE4MUR;N1zZ{tP#rMfOwKWa; zYk}+U)UI#PTfp^qaOnp7e1rX=I=mDy?*p#CV><<`=P&QrL^SK}Oc?mAV>HinY+Aa2a$Dawf8s{n_hOwz>BJGeR&Y7%&>MgS-x`@0Pkx ztktx+SBtfpkh*`YRkVG^ou|5ptl5Mxq_tZ`btO4V%X>!m{*hm0vvjjAZ)+M}N6rk# L7reDqm&N}DRE%wq diff --git a/gemfirexd/core/lib/libgemfirexd64.so b/gemfirexd/core/lib/libgemfirexd64.so index 1f915eb40241ef57006e2b88b1dea1a4355d7632..69a28b31351ba462a42187a16388031e025dde85 100644 GIT binary patch literal 8340 zcmcgxeQaCR6~B&?#+23$T`8f^^#N|zbgGr4Z3r#d@}1Yt{aBi^j*h)K{z%+9c4ohX zfVR;pEntGTfQG~n(wMeCD%c-oL#T9&nH2%8geZe))i#L$0}|S4?GRIef%iN2-D5w$ zBoo`D-N-rj{LaTc_xrwk@8}A4SGZh)lUsaA5I0$EA+1U~SuIksH6B?Yl+$%bRYz@sjPw zZgy>Yc;x&0-|POtveo31d?RfX;Yg|p0?OO=*;zvIGGYc;sf9wA5baegx+>Iry?NcwOOng+He7j}$(9i3Kc&UrKA|@lXE9|F@K%Wm4Pf zlO=QX7s;21MPdyN5PLF=fuU5=$e5wDX&AzYC*!6tVj#jW!eb%Ih7$4Hqr%uaYV<}2 z;u$lV?ns0(nP^6A4ULA3aB9dHj*q6yP{J694#nc>=vV}fpa)ZI!iYvfW(cj(pUGJ51SlC1J;5#Q9Y$lIF|g6zpcSI@=feDS{#m+&UMc(5;zyRp z(eo8zv+DO|wXX5_W8OI~n^k}2y_$4H)0EZ*PA}SUUYkgE+JHQDYizihGE%?ZhA-qoLG|%-p6MSW zGrb8dJpBRMNFRUBbE2^E&1y{)R{aJ4eJfj$BYu!9XQm2BtNutl^~%g?$^VXcYJ!=( zwF;nqIB!-I zPRlSSIqg2sayMi`&%WK(w`-(dA8+vxZ!XevEdy1Wn7)U+7&Kpl~KQU2?YoGeUHJDxmYMXXO$>l2qJNonFhGnzr4Xe>;{ z0wsUvYR5mSy!8uu_MPk>roa0sf}g1L>+!re_0VSB-RbwB0cuYa^|SB%hB{+<7c|el zHmM&xcLuEQ$-JKJ^VjRSrH8=^Jy(Uwp_NSk8a*5IH|yC?^}5q~?uY)Dfd{jl{?;IH z9nsd^e!*9le#2L{?-gHN|Fgcjn;-Yp_5Q?HxAi_>UHd^jcgR0Qz9w2$QZ=$~zEJ6> zq4+|lzp|bLaOTl-oqmmSHPat{LUm~QJ6e8v1=Z)^a}*+~fRJ|S*^d#khB}}rUxJSC z9lDFWOt|&j6aHEVj=L&c^?LU8!p{1`dEenIqz(C}t|O)FyYK6d=@U;&Jyh}~3BGfj z%=GLb|9R=Dx-j`7M&#lA$S~_RoNUM+-wEk6)Ox{*>bAm84-`^}j)K`sU5xnj+{Ufs zE7#HmGX2Rv5r4L7HR7DP83St)f@TP^&o|_!&qH{O#_-wWrSXw#xq;=Ui}Hu;@-~(q zW%Ru~GNL8o$&oP;68lDn zXh#WPFA`n7y*qk0X+2T1D>(JYt zGUKs$7<+0exh)lmI@LvQG?N-hhofC%gP{@Z;8bd6lSYBXlLK0KB%MZa+Hg7*#(sH? za9!ozOlMlmSfQiZG;{_*X=OYDdN=4E4D=(QV;JP8K`GI>lalN9Uf~+6ab2~j+Cyh; z!s(25{^LS{&nl!x7?pDoxI80udbRLEuSXtamAntM7G=t_Qjd4aRq<0VO+ZS1{7n2P zCV6IR^VW=4Z1oa-1k4T0-vDQK);->_a= z(~C7g51AIeu5o>x5P{5XLuRNS)J$7+kaNkD84V01M*{sL@kC@Dj-iqp4B@C6h}@Qh zrA5uOCE;Y|rzP=|wdGs9e%vd!9F~z{oe- z%gYGxOnH72M2Y8<#bFIbhUOaE^Za7ERw;7)tjBaWm~L za{E!tl<06odG3GbeHQJ(_T()85eV(}JJm+V^l7^>@?1W{k1Bg^Ccft@-v6uhhQ{V|7qy|S-Y_D+2#|7(Xm@Bhu8(f$UxZSyY zuGg!M^7(r|uLh0=xjnHx(=!lK5nMi>7p9c`9=kE}Y{&EshdtjzH2W+=)?+tL{$1sh z%Ww5*QngjtJLj*{{v5O^{(5Ou`p5R`N|4N{=9D%BT!tT)Efv(iAyxhdb`W{CXP9`N zJB$%Mq7GELT94?QNilN#TrWCD%~k&S6%Zi(%;DTwzNIzye>bA#{m`!AM#Q|omE&%~ z`&K!Q(Z>VOCUD~`fcF_2jQT7PynmGA)y4gx9QO!b@5}Mo_sb-A(@vn)=W_i^i|-TV z_#F3}($8YS>twmUw|Jjlj{5|!Yvp(i-YYaaB=c^JE?$r9LN{()d7UZ8KPPzoD94xL zT|=`&GVd0b3!d+Gp<65yJdexq(*1QgUMqOsmE%|1S(&%S`|Nh6c~pseaHj!{dlzoV zo$a$$;m(Xrwe!mPFhDD{k~V~m*VI7u}|T;T2FZ1jVV9%41lLJU;Kw4qxfqb z?SG%deZr&GdGbMtt`c2y^e=s*QvByJbnWR`Fmtur$$4;Vy{{EJ9rgMX^vVCE@-M$- zf&CRf7y89H9^7asmzX`?Y9xM{SmUVg3W;ARILF~?;Jg>1sAAdxTq|;=3|-sIg?|nB zT<;LKNPPBt$paEE`Q_XZrJq;*OYKhSmkM{jqvYrD^V&T4d%&-?T$cS`fOUGV_orIm zbG;j_1y1iq&Ux3QaOZo{=6UqnfzS2cbC1Mlub-0=FALpb!njegJ^6@m+RT_Eu~;CC z7mkj;9lb_y%dS3p2{Jm%xUC&FQ6yyyBvSo&-H~62MhG`u_~08(L~*qgXjySHsym%$tr!}(Gv@^e&{GGfLP83fC>YGHcg>Bc>p zNIS2%gwYe+(cTs`c64{|>gqH4+S-F%RIx}VWekRr5g4gjsuDZDzP)YRmJY`wlJkjd zj(0HY!L0Zi_8-1k$=9dWR{MjJ?cu8Ip~`xqD%a(gt#Y*d^{!k-*M8;5><746?_KI0 TtXRqa@yXA6X|x{W%47K#(C5$g literal 9316 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 XyD|Iv*^SYq@=U}2hu7=&t^Pj%O #include -void logMessage(char * message){ - FILE * logFile = fopen("jvmkill.log", "w"); - if(logFile == NULL){ - fprintf(stderr, "Error opening log file"); - } - fputs(message, logFile); - fclose(logFile); + +static FILE * logFile = NULL; + +void logMessage(char *format, ...) { + va_list args; + va_start(args, format); + vfprintf(logFile, format, args); + fflush(logFile); + va_end(args); } static void JNICALL @@ -37,25 +39,25 @@ resourceExhausted( const void *reserved, const char *description) { - char* msg=(char*)malloc(sizeof(char)*120); - sprintf(msg, "ResourceExhausted: %s: killing current process!", description); - logMessage(msg); - free(msg); + if(logFile == NULL) { + logFile = fopen("jvmkill.log", "a"); + } + logMessage("ResourceExhausted: %s: killing current process!", description); kill(getpid(), SIGKILL); } JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { + if(logFile == NULL) { + logFile = fopen("jvmkill.log", "a"); + } + jvmtiEnv *jvmti; jvmtiError err; - char* msg=(char*)malloc(sizeof(char)*120); - jint rc = (*vm)->GetEnv(vm, (void **) &jvmti, JVMTI_VERSION); if (rc != JNI_OK) { - sprintf(msg, "ERROR: GetEnv failed: %d\n", rc); - logMessage(msg); - free(msg); + logMessage("ERROR: GetEnv failed: %d\n", rc); return JNI_ERR; } @@ -66,18 +68,14 @@ Agent_OnLoad(JavaVM *vm, char *options, void *reserved) err = (*jvmti)->SetEventCallbacks(jvmti, &callbacks, sizeof(callbacks)); if (err != JVMTI_ERROR_NONE) { - sprintf(msg, "ERROR: SetEventCallbacks failed: %d\n", err); - logMessage(msg); - free(msg); + logMessage("ERROR: SetEventCallbacks failed: %d\n", err); return JNI_ERR; } err = (*jvmti)->SetEventNotificationMode( jvmti, JVMTI_ENABLE, JVMTI_EVENT_RESOURCE_EXHAUSTED, NULL); if (err != JVMTI_ERROR_NONE) { - sprintf(msg, "ERROR: SetEventNotificationMode failed: %d\n", err); - logMessage(msg); - free(msg); + logMessage("ERROR: SetEventNotificationMode failed: %d\n", err); return JNI_ERR; } From 3f468e4fff01a40fdf027c15a3439788038de75d Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Tue, 30 Oct 2018 13:36:52 +0530 Subject: [PATCH 12/15] implementing review suggestions --- .../cache/control/HeapMemoryMonitor.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java index e0ca958c1..404680c24 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java @@ -691,13 +691,20 @@ private boolean shouldDelayMemoryEvent(boolean delayMemoryEvent, MemoryState sta * PID of the process for which heap histogram is to be logged */ public void jmapHisto(String pid) { - BufferedReader reader; - String line; try { - String[] jmapCommand = new String[] {"sh", "-c", "jmap -histo " + pid + " > " + - pid + '_' + PartitionedRegion.rand.nextInt() + ".jmap" }; + List inputArgs = ManagementFactory.getRuntimeMXBean().getInputArguments(); + String[] jmapCommand; + if(inputArgs.contains("-XX:+HeapDumpOnOutOfMemoryError")) { + jmapCommand = new String[] { "sh", "-c", "jmap -dump:format=b,file=" + + pid + PartitionedRegion.rand.nextInt() + ".hprof "+ pid + }; + }else{ + jmapCommand = new String[] { "sh", "-c", "jmap -histo " + pid + " > " + + pid + PartitionedRegion.rand.nextInt() + ".jmap" + }; + } Process jmapProcess = Runtime.getRuntime().exec(jmapCommand); - Thread.sleep(JMAP_HISTO_SLEEP_DURATION); + jmapProcess.waitFor(JMAP_HISTO_SLEEP_DURATION, TimeUnit.MILLISECONDS); } catch (Exception e) { logger.error("Failed to log heap histogram for pid: " + pid, e); } From 6bf9be06680e0a97ade77a2e0a3a11c50238e00e Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Thu, 6 Dec 2018 17:27:32 +0530 Subject: [PATCH 13/15] onOutOfMemoryError allowing a cleaner kill --- gemfirexd/core/lib/libgemfirexd.so | Bin 6017 -> 7639 bytes gemfirexd/core/lib/libgemfirexd64.so | Bin 8340 -> 12944 bytes .../gemfirexd/internal/engine/jvmkill.c | 33 ++++++++++-------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/gemfirexd/core/lib/libgemfirexd.so b/gemfirexd/core/lib/libgemfirexd.so index 92f01cf79b3ea678a02a2f8a4242a76d9a78207c..69e229357818221c8e336f641b1c0cbbc845b275 100644 GIT binary patch literal 7639 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 Wa*p&enEItjeUU2v)KY4S)B7(XQgP=1 literal 6017 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 N2ls!zH_B(ue*s>D2@e1O diff --git a/gemfirexd/core/lib/libgemfirexd64.so b/gemfirexd/core/lib/libgemfirexd64.so index 69a28b31351ba462a42187a16388031e025dde85..201535942a2713d7d587b99a99e3c3b556bddcd8 100644 GIT binary patch literal 12944 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 Cg2mVX literal 8340 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 TtXRqa@yXA6X|x{W%47K#(C5$g diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c index 9bd1a4c0e..49c20306a 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c @@ -21,14 +21,21 @@ #include -static FILE * logFile = NULL; +static FILE* g_logFile = NULL; void logMessage(char *format, ...) { + FILE* logFile = g_logFile; + if (logFile == NULL) { + char fname[100]; + sprintf(fname, "jvmkill_pid%d.log", getpid()); + logFile = fopen(fname, "a"); + g_logFile = logFile; + } va_list args; va_start(args, format); vfprintf(logFile, format, args); - fflush(logFile); va_end(args); + fflush(logFile); } static void JNICALL @@ -37,22 +44,20 @@ resourceExhausted( JNIEnv *jni_env, jint flags, const void *reserved, - const char *description) -{ - if(logFile == NULL) { - logFile = fopen("jvmkill.log", "a"); - } - logMessage("ResourceExhausted: %s: killing current process!", description); + const char *description) { + int timeout = 30; + logMessage("ResourceExhausted: %s: sending SIGTERM to current process!\n", description); + kill(getpid(), SIGTERM); + + logMessage("sleeping for %d seconds\n", timeout); + sleep(timeout); + + logMessage("ResourceExhausted: %s: sending SIGKILL to current process!\n", description); kill(getpid(), SIGKILL); } JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) -{ - if(logFile == NULL) { - logFile = fopen("jvmkill.log", "a"); - } - +Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jvmtiEnv *jvmti; jvmtiError err; jint rc = (*vm)->GetEnv(vm, (void **) &jvmti, JVMTI_VERSION); From fffcb902dbc6722017c0f5619ff3e94e6f8d47f9 Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Fri, 7 Dec 2018 19:15:55 +0530 Subject: [PATCH 14/15] adding timeout properties for jvmkill and heap dump --- .../cache/control/HeapMemoryMonitor.java | 21 +++++++++++++++++- gemfirexd/core/lib/libgemfirexd.so | Bin 6094 -> 11811 bytes gemfirexd/core/lib/libgemfirexd64.so | Bin 8459 -> 13048 bytes .../gemfirexd/internal/engine/jvmkill.c | 20 +++++++++++++++-- 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java index 93dcb30f9..814c7bf8c 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java @@ -21,7 +21,9 @@ import java.lang.management.MemoryPoolMXBean; import java.lang.management.MemoryType; import java.lang.management.MemoryUsage; +import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.concurrent.Executors; @@ -693,17 +695,34 @@ public void jmapDump(String pid) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss"); String dateSuffix = dateFormat.format(new java.util.Date( System.currentTimeMillis())); + Integer waitTime; + if (inputArgs.contains("-XX:+HeapDumpOnOutOfMemoryError")) { + Integer heapDumpTimeout = 30; + try { + Object[] filtArgs = inputArgs.stream() + .filter(e -> e.contains("snappydata.onCriticalHeapDumpTimeoutSeconds=")) + .map(e -> e.split("=")[1]).toArray(); + if (filtArgs.length > 0) { + heapDumpTimeout = Integer.parseInt(filtArgs[0].toString()); + } + }catch (NumberFormatException e) { + logger.warn("Failed to parse user provided value for " + + "OnCriticalHeapDumpTimeoutSeconds. default value of 30 will be used"); + } + jmapCommand = new String[] { "/bin/sh", "-c", "jmap -dump:format=b,file=" + "java_pid" + pid + "-" + dateSuffix + ".hprof " + pid }; + waitTime = heapDumpTimeout * 1000; } else { jmapCommand = new String[] { "/bin/sh", "-c", "jmap -histo " + pid + " > " + "java_pid" + pid + "-" + dateSuffix + ".jmap" }; + waitTime = 3 * 1000; } Process jmapProcess = Runtime.getRuntime().exec(jmapCommand); - jmapProcess.waitFor(JMAP_HISTO_SLEEP_DURATION, TimeUnit.MILLISECONDS); + jmapProcess.waitFor(waitTime, TimeUnit.MILLISECONDS); } catch (Exception e) { logger.error("Failed to log heap histogram for pid: " + pid, e); } diff --git a/gemfirexd/core/lib/libgemfirexd.so b/gemfirexd/core/lib/libgemfirexd.so index f938619ff807a6290349c6440d2d7632c171dae4..4a8e34f7a0f9a1b1974c07d1c627fccb6f8feee9 100644 GIT binary patch literal 11811 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 M`#&Em!8ga7~l diff --git a/gemfirexd/core/lib/libgemfirexd64.so b/gemfirexd/core/lib/libgemfirexd64.so index 4dce332e66d880deb5cbb54d7f43817599eab372..890dd956cb0e37ec0b9d444a089216c3825d5cb4 100644 GIT binary patch literal 13048 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 uwAzmVW{tsrU>4 diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c index 53096e82c..89dd7509d 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/jvmkill.c @@ -45,7 +45,23 @@ resourceExhausted( jint flags, const void *reserved, const char *description) { - logMessage("ResourceExhausted: %s: killing current process!", description); + int sleepSeconds = 0; + if (getenv("JVMKILL_SLEEP_SECONDS")) { + const char* s = getenv("JVMKILL_SLEEP_SECONDS"); + char *ptr; + sleepSeconds = strtol(s, &ptr, 10); + } + if (sleepSeconds < 1) { + sleepSeconds = 30; + } + + logMessage("ResourceExhausted: %s: terminating current process!\n", description); + kill(getpid(), SIGTERM); + + logMessage("SIGKILL will be issued after %d seconds if pid doesn't exit\n", sleepSeconds); + sleep(sleepSeconds); + + logMessage("ResourceExhausted: %s: killing current process!\n", description); kill(getpid(), SIGKILL); } @@ -78,4 +94,4 @@ Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { } return JNI_OK; -} +} \ No newline at end of file From 505f354e23d5ecaf7c10ac12aa75707dde89933e Mon Sep 17 00:00:00 2001 From: hemanth meka Date: Fri, 7 Dec 2018 19:20:52 +0530 Subject: [PATCH 15/15] minor formatting and cleanup --- .../gemfire/internal/cache/control/HeapMemoryMonitor.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java index 814c7bf8c..93d362936 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/control/HeapMemoryMonitor.java @@ -95,9 +95,6 @@ public final class HeapMemoryMonitor implements NotificationListener, private static final int POLLER_INTERVAL = Integer.getInteger(POLLER_INTERVAL_PROP, 500); - // Duration in millis to wait for jmap -histo to finish - private static final int JMAP_HISTO_SLEEP_DURATION = 3 * 1000; - // This holds a new event as it transitions from updateStateAndSendEvent(...) to fillInProfile() private ThreadLocal upcomingEvent = new ThreadLocal(); @@ -706,7 +703,7 @@ public void jmapDump(String pid) { if (filtArgs.length > 0) { heapDumpTimeout = Integer.parseInt(filtArgs[0].toString()); } - }catch (NumberFormatException e) { + } catch (NumberFormatException e) { logger.warn("Failed to parse user provided value for " + "OnCriticalHeapDumpTimeoutSeconds. default value of 30 will be used"); }