-
Bug
-
Resolution: Fixed
-
P4
-
24, 25
-
b10
Normal usage of SpeculationLog is as a per compilation object with shared storage underneath. Usually that storage is long lived and part of the methodData and that it the normal JIT compilation mode. It's possibly to create one that manages the storage itself which is primarily used in unit tests. If multiple threads are using the same SpeculationLog that manages it's own storage, the collectionFailedSpeculations call could read from the native memory before it has been initialized by another thread which is in getFailedSpeculationsAddress which can very rarely lead to a crash. The code should be more careful to ensure that initialized value is seen.
- links to
-
Commit(master) openjdk/jdk/7f6c6878
-
Review(master) openjdk/jdk/23444