Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Aug 2019 04:05:58 +0000 (UTC)
From:      Greg Lewis <glewis@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r508703 - in head/java/openjdk8: . files
Message-ID:  <201908120405.x7C45wLx029408@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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() &&



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201908120405.x7C45wLx029408>