With ubsan, we run into the following error :
jdk/src/hotspot/share/gc/g1/g1Policy.cpp:1114:33: runtime error: 2.71198e+167 is outside the range of representable values of type 'const unsigned long'
#0 0x119407cf8 in G1Policy::predict_eden_copy_time_ms(unsigned int, unsigned long*) const g1Policy.cpp:1114
#1 0x11936469f in G1CollectionSet::finalize_young_part(double, G1SurvivorRegions*) g1CollectionSet.cpp:304
#2 0x119365890 in G1CollectionSet::finalize_initial_collection_set(double, G1SurvivorRegions*) g1CollectionSet.cpp:436
#3 0x11943eb51 in G1YoungCollector::calculate_collection_set(G1EvacInfo*, double) g1YoungCollector.cpp:283
#4 0x11943f02b in G1YoungCollector::pre_evacuate_collection_set(G1EvacInfo*) g1YoungCollector.cpp:497
#5 0x119440d17 in G1YoungCollector::collect() g1YoungCollector.cpp:1088
#6 0x11935d758 in G1CollectedHeap::do_collection_pause_at_safepoint_helper() g1CollectedHeap.cpp:2493
#7 0x11935a5d6 in G1CollectedHeap::do_collection_pause_at_safepoint() g1CollectedHeap.cpp:2409
#8 0x11943d820 in VM_G1CollectForAllocation::doit() g1VMOperations.cpp:121
#9 0x119f8475d in VM_Operation::evaluate() vmOperations.cpp:75
#10 0x119f9f16b in VMThread::evaluate_operation(VM_Operation*) vmThread.cpp:283
#11 0x119fa0067 in VMThread::inner_execute(VM_Operation*) vmThread.cpp:427
#12 0x119f9ef8d in VMThread::loop() vmThread.cpp:493
#13 0x119f9ed15 in VMThread::run() vmThread.cpp:177
#14 0x119eb10d6 in Thread::call_run() thread.cpp:221
#15 0x119abece4 in thread_native_entry(Thread*) os_bsd.cpp:598
#16 0x7fff204338fb in _pthread_start+0xdf (libsystem_pthread.dylib:x86_64+0x68fb)
#17 0x7fff2042f442 in thread_start+0xe (libsystem_pthread.dylib:x86_64+0x2442)
Seems converting a double to size_t at this point is not always working well.