-
Bug
-
Resolution: Fixed
-
P4
-
11, 17, 18
-
b15
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8274700 | 17.0.2 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
JDK-8274762 | 11.0.14 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
$ CONF=linux-x86_64-zero-fastdebug make exploded-test TEST=jtreg:gtest/
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/shade/trunks/jdk/src/hotspot/os/linux/os_linux.cpp:3227), pid=562477, tid=562477
# assert(imin <= imax) failed: Unexpected page size
The actual problem is underflow in os::pd_create_stack_guard_pages() here:
stack_extent = (uintptr_t) get_stack_commited_bottom(
os::Linux::initial_thread_stack_bottom(),
(size_t)addr - stack_extent);
For Zero x86_64, these are off by a page, so the (addr - stack_extent) underflows, then get_stack_commited_bottom gets called with super-large size, which then fails the assert above. The assert should check for underflow specifically.
[0.002s][warning][os] Addr: 0x00007fff35e73000, stack_extent: 0x00007fff35e74000
I believe the root cause is primordial thread (which is why it is only seen in gtests?) having a weird stack base, which is explicitly handled by the shared code commonned by
- backported by
-
JDK-8274700 Zero: Cannot invoke JVM in primordial threads on Zero
-
- Resolved
-
-
JDK-8274762 Zero: Cannot invoke JVM in primordial threads on Zero
-
- Resolved
-
- blocks
-
JDK-8273376 Zero: Disable vtable/itableStub gtests
-
- Resolved
-
-
JDK-8273487 Zero: Handle "zero" variant in runtime tests
-
- Resolved
-
- relates to
-
JDK-8169373 Work around linux NPTL stack guard error
-
- Resolved
-
- links to
-
Commit openjdk/jdk11u-dev/6f51eb46
-
Commit openjdk/jdk17u/b5d40609
-
Commit openjdk/jdk/0f31d0fb
-
Review openjdk/jdk11u-dev/458
-
Review openjdk/jdk17u/141
-
Review openjdk/jdk/5376