-
Bug
-
Resolution: Fixed
-
P1
-
7u121, 8u92, 9
-
b127
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8168167 | 8u152 | Tobias Hartmann | P1 | Resolved | Fixed | b01 |
JDK-8163638 | 8u121 | Tobias Hartmann | P1 | Resolved | Fixed | b01 |
JDK-8159372 | 8u112 | Tobias Hartmann | P1 | Closed | Fixed | b02 |
JDK-8160590 | 8u111 | Tobias Hartmann | P1 | Resolved | Fixed | b03 |
JDK-8160584 | 8u102 | Tobias Hartmann | P1 | Resolved | Fixed | b31 |
JDK-8160499 | 8u92 | Tobias Hartmann | P1 | Resolved | Fixed | b34 |
JDK-8167745 | emb-8u121 | Tobias Hartmann | P1 | Resolved | Fixed | b01 |
JDK-8162089 | emb-8u111 | Tobias Hartmann | P1 | Resolved | Fixed | b03 |
JDK-8159373 | 7u121 | Vladimir Kempik | P1 | Closed | Fixed | b01 |
Depending on the scheduling of instructions, it may happen that a reference to the newly allocated String object escapes before the String.value field is initialized (see [2], '334 StoreP' stores the String object, '514 StoreP' initializes the String.value field). In a highly concurrent setting, another thread may try to dereference String.value from such a partially initialized String object and crash.
TestStringObjectInitialization.java reproduces this problem with JDK 7, 8 and 9 (see attached hs_err files) in approximately 1 out of 10 runs. I had to disable Indify String Concat, Compressed Oops and G1 to trigger the bug with JDK 9.
[1] https://bugs.openjdk.java.net/secure/attachment/60305/graph_baseline_before%20SC.png
[2] https://bugs.openjdk.java.net/secure/attachment/60306/graph_baseline_after_sc.png
- backported by
-
JDK-8160499 Partially initialized string object created by C2's string concat optimization may escape
-
- Resolved
-
-
JDK-8160584 Partially initialized string object created by C2's string concat optimization may escape
-
- Resolved
-
-
JDK-8160590 Partially initialized string object created by C2's string concat optimization may escape
-
- Resolved
-
-
JDK-8162089 Partially initialized string object created by C2's string concat optimization may escape
-
- Resolved
-
-
JDK-8163638 Partially initialized string object created by C2's string concat optimization may escape
-
- Resolved
-
-
JDK-8167745 Partially initialized string object created by C2's string concat optimization may escape
-
- Resolved
-
-
JDK-8168167 Partially initialized string object created by C2's string concat optimization may escape
-
- Resolved
-
-
JDK-8159372 Partially initialized string object created by C2's string concat optimization may escape
-
- Closed
-
-
JDK-8159373 Partially initialized string object created by C2's string concat optimization may escape
-
- Closed
-
- relates to
-
JDK-8160385 Properly fix 8159244 on jdk7
-
- Resolved
-
-
JDK-8160122 Backport of JDK-8159244 used wrong version of the JDK 9 fix
-
- Resolved
-
-
JDK-8166046 [TESTBUG] compiler/stringopts/TestStringObjectInitialization.java fails with OOME
-
- Resolved
-