svn commit: r508703 - in head/java/openjdk8: . files
Greg Lewis
glewis at FreeBSD.org
Mon Aug 12 04:05:59 UTC 2019
Author: glewis
Date: Mon Aug 12 04:05:58 2019
New Revision: 508703
URL: https://svnweb.freebsd.org/changeset/ports/508703
Log:
Workaround for infinite recursion crash
* FreeBSD crashes on infinite recursion rather than throwing a stack
overflow because the stack address of the fault is in the page below
the guard area. Workaround this by rounding down the fault address to
the nearest page boundary. Investigation is still under way into what
may be causing this but this appears to prevent it in simple test cases.
PR: 222146
Added:
head/java/openjdk8/files/patch-hotspot_src_os__cpu_bsd__x86_vm_os__bsd__x86.cpp (contents, props changed)
Modified:
head/java/openjdk8/Makefile
Modified: head/java/openjdk8/Makefile
==============================================================================
--- head/java/openjdk8/Makefile Mon Aug 12 01:35:23 2019 (r508702)
+++ head/java/openjdk8/Makefile Mon Aug 12 04:05:58 2019 (r508703)
@@ -2,6 +2,7 @@
PORTNAME= openjdk
PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//}.${BSD_JDK_VERSION}
+PORTREVISION= 1
CATEGORIES= java devel
MASTER_SITES= LOCAL/jkim:jtreg
PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION}
Added: head/java/openjdk8/files/patch-hotspot_src_os__cpu_bsd__x86_vm_os__bsd__x86.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/java/openjdk8/files/patch-hotspot_src_os__cpu_bsd__x86_vm_os__bsd__x86.cpp Mon Aug 12 04:05:58 2019 (r508703)
@@ -0,0 +1,12 @@
+--- hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.orig 2019-08-11 09:24:22.211149000 -0700
++++ hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp 2019-08-11 09:25:08.826582000 -0700
+@@ -470,6 +470,9 @@
+ // Handle ALL stack overflow variations here
+ if (sig == SIGSEGV || sig == SIGBUS) {
+ address addr = (address) info->si_addr;
++#ifdef __FreeBSD__
++ addr = (unsigned char*) align_ptr_down(addr, os::vm_page_size());
++#endif
+
+ // check if fault address is within thread stack
+ if (addr < thread->stack_base() &&
More information about the svn-ports-all
mailing list