JDK-8079409 : ParNew fails to allocate space in plab
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P2
  • Status: Resolved
  • Resolution: Duplicate
  • Submitted: 2015-05-05
  • Updated: 2015-05-07
  • Resolved: 2015-05-07
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Resolved
Related Reports
Duplicate :  
Description
Test: test/gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterMinorGC.java

Assert fails:
#  Internal Error (hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp:258), pid=22341, tid=0xf22ffb70
#  assert(obj != __null || plab->words_remaining() < word_sz) failed: Else should have been able to allocate
#
# JRE version: Java(TM) SE Runtime Environment (9.0) (build 1.9.0-internal-fastdebug-20150505001227.jesper.main2gc-b00)

Current thread (0xf642a400):  GCTaskThread [stack: 0xf227f000,0xf2300000] [id=22383]

Stack: [0xf227f000,0xf2300000],  sp=0xf22fed00,  free space=511k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xa7c888]  VMError::report_and_die()+0x198;;  VMError::report_and_die()+0x198
V  [libjvm.so+0x3d6c46]  report_vm_error(char const*, int, char const*, char const*)+0x76;;  report_vm_error(char const*, int, char const*, char const*)+0x76
V  [libjvm.so+0x8af909]  ParScanThreadState::alloc_in_to_space_slow(unsigned int)+0x169;;  ParScanThreadState::alloc_in_to_space_slow(unsigned int)+0x169
V  [libjvm.so+0x8b2ad6]  ParNewGeneration::copy_to_survivor_space(ParScanThreadState*, oop, unsigned int, markOopDesc*)+0x7a6;;  ParNewGeneration::copy_to_survivor_space(ParScanThreadState*, oop, unsigned int, markOopDesc*)+0x7a6
V  [libjvm.so+0x8b7d43]  void ParScanClosure::do_oop_work<oop>(oop*, bool, bool)+0x203;;  void ParScanClosure::do_oop_work<oop>(oop*, bool, bool)+0x203
V  [libjvm.so+0x8bfb72]  int InstanceKlass::oop_oop_iterate<true, ParScanWithoutBarrierClosure>(oop, ParScanWithoutBarrierClosure*)+0x112;;  int InstanceKlass::oop_oop_iterate<true, ParScanWithoutBarrierClosure>(oop, ParScanWithoutBarrierClosure*)+0x112
V  [libjvm.so+0x8bd651]  InstanceKlass::oop_oop_iterate_nv(oop, ParScanWithoutBarrierClosure*)+0x31;;  InstanceKlass::oop_oop_iterate_nv(oop, ParScanWithoutBarrierClosure*)+0x31
V  [libjvm.so+0x8b1852]  ParScanThreadState::trim_queues(int)+0x1c2;;  ParScanThreadState::trim_queues(int)+0x1c2
V  [libjvm.so+0x8b4dd7]  ParEvacuateFollowersClosure::do_void()+0x47;;  ParEvacuateFollowersClosure::do_void()+0x47
V  [libjvm.so+0x8abc57]  ParNewGenTask::work(unsigned int)+0x1d7;;  ParNewGenTask::work(unsigned int)+0x1d7
V  [libjvm.so+0xaced91]  GangWorker::loop()+0x321;;  GangWorker::loop()+0x321
V  [libjvm.so+0xace72a]  GangWorker::run()+0x1a;;  GangWorker::run()+0x1a
V  [libjvm.so+0x8886f0]  java_start(Thread*)+0x100;;  java_start(Thread*)+0x100
C  [libpthread.so.0+0x6a49]

There is a Linux core file.

Comments
This was caused by the fix for JDK-8073204. After backing out that fix (in JDK-8079556) this works again. It only happened on i586 (32 bit). It could be reproduced every time.
07-05-2015

ILW = High (crash), Low (happened once), High (none) = P2
05-05-2015