Attempting to use seriously large heaps in 64-bit mode with 1.4.1_03 or "1.4.2-beta-b19", the combination of incremental GC and setting the initial heap size creates a crash on startup.
In our tests, with a 20gigabyte max heap size, any (that we tested) initial value for the heap will cause the following crash:
"1.4.1_03-b02"
java -d64 -XX:+ShowMessageBoxOnError -Xmx20480m -Xms20480m -Xincgc Memory
Unexpected Signal: 11, PC: ffffffff7e7c1704, PID: 7615
An error has just occurred, do you want to debug the problem?
y
Abort
$ pstack 7615 | c++filt
7615: /net/cafebabe.uk/export/apps/products/java/jdk/prodn/j2sdk1.4.1_03/bin
ffffffff7efa6540 read (0, ffffffff7f0c2850, 400)
ffffffff7ef97604 _filbuf (ffffffff7f0bd5f8, 1, ffffffff7f0bd5f8, 0, 73, 0) + c4
ffffffff7ef99eb8 fgets (ffffffff7fffbfc0, 400, ffffffff7f0bd5f8, ffffffff7e9cb5a2, 64, 0) + 208
ffffffff7e8ecf74 int os::message_box(const char*,const char*) (ffffffff7fffcca0, ffffffff7e9cb5a2, b, ffffffff7e7c1704, 1dbf, 0) + 44
ffffffff7e8ea6c8 void os::handle_unexpected_exception(Thread*,int,unsigned char*,void*) (100112c20, b, ffffffff7e7c1704, ffffffff7fffd440, ffffffff7e6accd8, 0) + 120
ffffffff7e6acde0 JVM_handle_solaris_signal (ffffffff7fffd440, ffffffff7e9ccc19, ffffffff7fffd160, 1, 0, 1) + 868
ffffffff7f318ae4 __sighndlr (b, ffffffff7fffd440, ffffffff7fffd160, ffffffff7e6ad17c, 0, 0) + c
ffffffff7f312718 call_user_handler (ffffffff7ee00000, ffffffff7fffd440, ffffffff7fffd160, 0, 0, 0) + 25c
ffffffff7f3128dc sigacthandler (b, ffffffff7fffd440, ffffffff7fffd160, 0, 0, 0) + 68
--- called from signal handler with signal 11 (SIGSEGV) ---
ffffffff7e7c1704 void CarTableDesc::initialize(unsigned long long,unsigned,Train*,CarSpace*) (10018a910, 100194a30, fffffffa34e20000, 0, 0, 0)
ffffffff7e9343e0 void TrainGeneration::add_to_car_pool(CarSpace*,int) (10018a800, 100194a30, 0, 10018a9c0, ffffffff7fffd760, 4ffde) + 3c
ffffffff7e933ba0 TrainGeneration::TrainGeneration(ReservedSpace,unsigned long,int,CardTableRS*) (10018a800, fffffffa34e20000, 4ffde0000, 4ffde0000, 1, 10018a290) + 1f0
ffffffff7e80ace8 Generation*GenerationSpec::init(ReservedSpace,int,GenRemSet*) (10010d280, fffffffa34e20000, 4ffde0000, 1, 10018a290, ffffffff7e748f60) + 158
ffffffff7e748fc0 void GenCollectedHeap::initialize() (10018a1a0, 0, 104684, 0, ffffffff7e207958, ffffffff7e30bf18) + 338
ffffffff7e75d3b8 void Universe::initialize_heap() (1f80, 3f0, ffffffff7eba1e20, 0, 10, 18) + 160
ffffffff7e75d228 void universe_init() (0, 0, 0, 100111020, ffffffff7e74ac50, 0) + 60
ffffffff7e73f1e4 void init_globals() (ffffffff7fffdd88, 100112c20, 100110fe0, 100110fa0, 0, 0) + 44
ffffffff7e756c28 int Threads::create_vm(JavaVMInitArgs*) (0, ffffffff7eb799c0, 0, 0, 0, 0) + 1f0
ffffffff7e7354d8 JNI_CreateJavaVM (ffffffffffffffff, ffffffff7fffe880, ffffffff7fffe040, fffffffffffffff8, ffffffffffffffe0, ffffffff7fffe061) + 88
0000000100001d4c main (6, 400, 5c0, 100008338, 400, 500) + 81c
00000001000014fc _start (0, 0, 0, 0, 0, 0) + 17c
Slightly different but still huge heap sizes may give different problems:
$ java -d64 -XX:+ShowMessageBoxOnError -Xmx19g -Xms1024m -Xincgc Memory
Exception java.lang.OutOfMemoryError: requested -614400 bytes for CarTableDesc in /export1/jdk/jdk1.4.2/hotspot/src/share/vm/memory/cartable.cpp. Out of swap space?
..but this negative number also suggests that the incremental heap is not coping well with the huge figures.
- relates to
-
JDK-4867781 64bit: Xincgc -version asserts: sizeof(pi) == sizeof(jint) || high(pi) == -1, "H
- Closed