Description
During the investigation for JDK-8259271 we found that the compiler (rightfully) reordered some loads that were written concurrently that caused crashes.
An assert in the pointer_delta() methods would have caught that unintentional reordering. pointer_delta() implicitly assumes left >= right, since the point of it is to use unsigned arithmetic to be able to deal with large memory ranges that exceed the range of ptrdiff_t.
Investigate adding an assert in pointer_delta (and see what else crashes).
An assert in the pointer_delta() methods would have caught that unintentional reordering. pointer_delta() implicitly assumes left >= right, since the point of it is to use unsigned arithmetic to be able to deal with large memory ranges that exceed the range of ptrdiff_t.
Investigate adding an assert in pointer_delta (and see what else crashes).
Attachments
Issue Links
- relates to
-
JDK-8267579 Thread::cooked_allocated_bytes() hits assert(left >= right) failed: avoid underflow
-
- Resolved
-
-
JDK-8267213 cpuinfo_segv is incorrectly triaged as execution protection violation on x86_32
-
- Resolved
-
-
JDK-8268334 Reconsider Thread::cooked_allocated_bytes()
-
- Open
-
-
JDK-8268265 MutableSpaceUsedHelper::take_sample() hits assert(left >= right) failed: avoid overflow
-
- Resolved
-
-
JDK-8259271 gc/parallel/TestDynShrinkHeap.java still fails "assert(covered_region.contains(new_memregion)) failed: new region is not in covered_region"
-
- Closed
-
(2 links to)