EVALUATION
I could only reproduce the crash on linux-x64. It happens with and without compressed oops, both UseSerialGC and UseParallelGC, and 7-b147 and latest 7u2-b07.
UseSerialGC:
Stack: [0x00007fd0a56f6000,0x00007fd0a57f7000], sp=0x00007fd0a57f4f10, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x3e4b74] FastScanClosure::do_oop(oopDesc**)+0x24
V [libjvm.so+0x44cfa9] frame::oops_interpreted_do(OopClosure*, RegisterMap const*, bool)+0xc9
V [libjvm.so+0x800eba] JavaThread::oops_do(OopClosure*, CodeBlobClosure*)+0x15a
V [libjvm.so+0x7fd4b2] Threads::oops_do(OopClosure*, CodeBlobClosure*)+0x32
V [libjvm.so+0x7732c3] SharedHeap::process_strong_roots(bool, bool, SharedHeap::ScanningOption, OopClosure*, CodeBlobClosure*, OopsInGenClosure*)+0x1a3
V [libjvm.so+0x4836c4] GenCollectedHeap::gen_process_strong_roots(int, bool, bool, bool, SharedHeap::ScanningOption, OopsInGenClosure*, bool, OopsInGenClosure*)+0x74
V [libjvm.so+0x3e5f29] DefNewGeneration::collect(bool, bool, unsigned long, bool)+0x289
V [libjvm.so+0x485c62] GenCollectedHeap::do_collection(bool, bool, unsigned long, bool, int)+0x672
V [libjvm.so+0x37c20e] GenCollectorPolicy::satisfy_failed_allocation(unsigned long, bool)+0xce
V [libjvm.so+0x843964] VM_GenCollectForAllocation::doit()+0x94
V [libjvm.so+0x849c2c] VM_Operation::evaluate()+0x4c
V [libjvm.so+0x848710] VMThread::evaluate_operation(VM_Operation*)+0x80
V [libjvm.so+0x848c51] VMThread::loop()+0x1a1
V [libjvm.so+0x8492d0] VMThread::run()+0x70
V [libjvm.so+0x6edf80] java_start(Thread*)+0x100
UseParallelGC:
Stack: [0x00007ff2b5c26000,0x00007ff2b5d27000], sp=0x00007ff2b5d25710, free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x74d378] PSScavengeRootsClosure::do_oop(oopDesc**)+0x28
V [libjvm.so+0x44cfa9] frame::oops_interpreted_do(OopClosure*, RegisterMap const*, bool)+0xc9
V [libjvm.so+0x800eba] JavaThread::oops_do(OopClosure*, CodeBlobClosure*)+0x15a
V [libjvm.so+0x74d5f5] ThreadRootsTask::do_it(GCTaskManager*, unsigned int)+0x75
V [libjvm.so+0x47ad30] GCTaskThread::run()+0xf0
V [libjvm.so+0x6edf80] java_start(Thread*)+0x100
|