title: No hs_err_pid.log file created and core dumped from jvm on Solaris
body: <p><strong>Problem description</strong></p>
  
  <p>After a while of running my java server application I am experiencing strange behaviour of Oracle Java virtual machine on Solaris. Normally, when there is a crash of jvm <code>hs_err_pid.log</code> file gets created (location is determined by <code>-XX:ErrorFile</code> jvm paramter as explained here: <a href="https://stackoverflow.com/questions/4149039/how-can-i-suppress-the-creation-of-the-hs-err-pid-file">How can I suppress the creation of the hs_err_pid file?</a></p>
  
  <p>But in my case, the file was not created, the only thing left was the <code>core</code> core dump file.</p>
  
  <p>Using <code>pstack</code> and <code>pflags</code> standard Solaris tools I was able to gather more information about the crash (which are included below) from the <code>core</code> file.</p>
  
  <p><strong>Tried solutions</strong></p>
  
  <ul>
  <li><p>Tried to find all <code>hs_err_pid.log</code> files across the file system, but nothing could be found (even outside the application working directory). i.e.:</p>
  
  <p><code>find / -name "hs_err_pid*"</code></p></li>
  <li><p>I tried to find jvm bugs related to jvm, but I couldn't find nothing interesting similar to this case.</p></li>
  <li>The problem looks somewhat similar to: <a href="https://stackoverflow.com/questions/2299250/java-vm-reproducable-sigsegv-on-both-1-6-0-17-and-1-6-0-18-how-to-report">Java VM: reproducable SIGSEGV on both 1.6.0_17 and 1.6.0_18, how to report?</a> but still I cannot confirm this since the <code>hs_err_pid.log</code> file is missing and of course the OS platform is different.</li>
  <li><strong>(EDIT)</strong> As suggested in one of the answers to <a href="https://stackoverflow.com/questions/951095/tool-for-analyzing-java-core-dump">Tool for analyzing java core dump</a> question, I have extracted heap dump from the <code>core</code> file using <code>jmap</code> and analysed it with with Eclipse MAT. I have found a leak (elements added to HashMap, never to be cleansed, at the time of core dump 1,4 M elements). This however does not explain why <code>hs_err_pid.log</code> file was not generated, nor jvm crashing. </li>
  <li><strong>(EDIT2)</strong>  As suggested by Darryl Miles, -Xmx limitations has been checked (Test contained code that indefinitely added objects to a <code>LinkedList</code>):
  
  <ul>
  <li><code>java -Xmx1444m Test</code> results with <code>java.lang.OutOfMemoryError: Java heap space</code>,</li>
  <li><code>java -Xmx2048m Test</code> results with <code>java.lang.OutOfMemoryError: Java heap space</code>,</li>
  <li><code>java -Xmx3600m Test</code> results with core dump.</li>
  </ul></li>
  </ul>
  
  <p><strong>The question</strong></p>
  
  <p>Has anyone experienced similar problem with jvm and how to proceed in such cases to find what actually happened (i.e. in what case the core gets dumped from the jvm and no <code>hs_err_pid.log</code> file is created)?</p>
  
  <p>Any tip or pointer to resolving this would be very helpful.</p>
  
  <p><strong>Extracted flags</strong></p>
  
  <pre><code># pflags core
  ...
  /2139095:      flags = DETACH
      sigmask = 0xfffffeff,0x0000ffff  cursig = SIGSEGV
  </code></pre>
  
  <p><strong>Extracted stack</strong></p>
  
  <pre><code># pstack core
  ...
  -----------------  lwp# 2139095 / thread# 2139095  --------------------
   fb208c3e ???????? (f25daee0, f25daec8, 74233960, 776e3caa, 74233998, 776e64f0)
   fb20308d ???????? (0, 1, f25db030, f25daee0, f25daec8, 7423399c)
   fb20308d ???????? (0, 0, 50, f25da798, f25daec8, f25daec8)
   fb20308d ???????? (0, 0, 50, f25da798, 8561cbb8, f25da988)
   fb203403 ???????? (f25da988, 74233a48, 787edef5, 74233a74, 787ee8a0, 0)
   fb20308d ???????? (0, f25da988, 74233a78, 76e2facf, 74233aa0, 76e78f70)
   fb203569 ???????? (f25da9b0, 8b5b400, 8975278, 1f80, fecd6000, 1)
   fb200347 ???????? (74233af0, 74233d48, a, 76e2fae0, fb208f60, 74233c58)
   fe6f4b0b __1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_ (74233d44, 74233bc8, 74233c54, 8b5b400) + 1a3
   fe6f4db3 __1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_ (fe6f4968, 74233d44, 74233bc8, 74233c54, 8b5b4
  00) + 27
   fe6f4deb __1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_ (74233d44, 8975278, 74233c54, 8b5b400) + 2f
   fe76826d __1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_ (74233d44, 897526c, fed2d464, fed2d6d0, 7
  4233c54, 8b5b400) + c1
   fe76f4fa __1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_ (74233d44, 8975268, 897526c, fed2d464, fed2d6d0, 8b5b
  400) + 7e
   fe7805f6 __1cMthread_entry6FpnKJavaThread_pnGThread__v_ (8b5b400, 8b5b400) + d2
   fe77cbe4 __1cKJavaThreadRthread_main_inner6M_v_ (8b5b400) + 4c
   fe77cb8e __1cKJavaThreadDrun6M_v_ (8b5b400) + 182
   feadbd59 java_start (8b5b400) + f9
   feed59a9 _thr_setup (745c5200) + 4e
   feed5c90 _lwp_start (745c5200, 0, 0, 74233ff8, feed5c90, 745c5200)
  </code></pre>
  
  <p><strong>System information:</strong></p>
  
  <pre><code># uname -a
  SunOS xxxx 5.10 Generic_137138-09 i86pc i386 i86pc
  # java -version
  java version "1.6.0_11"
  Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
  Java HotSpot(TM) Server VM (build 11.0-b16, mixed mode)
  # ulimit -a
  time(seconds) unlimited
  file(blocks) unlimited
  data(kbytes) unlimited
  stack(kbytes) 10240
  coredump(blocks) unlimited
  nofiles(descriptors) 256
  memory(kbytes) unlimited
  </code></pre>
  
  <p><strong>Used jvm args:</strong></p>
  
  <pre><code>java -Xms1024M -Xmx2048M -verbose:gc -Xloggc:logs/gc.log -server com.example.MyApplication
  </code></pre>
  
  <p>Please comment if you find some information missing, I'll try to add them.</p>