Request for Approval: Backport of JDK-8205965: SIGSEGV on write to NativeCallStack::EMPTY_STACK

Leslie Zhai zhaixiang at loongson.cn
Wed Sep 19 23:28:30 UTC 2018


Hi Zhengyu,

Please review the committed patch, thanks a lot!

jtreg test on Linux 4.13.16-100.fc25.x86_64, hotspot base on 
8722:16b9bbfaa450

0. applied the patch, compiled with clang-8 [1]

1. without patch, compiled with gcc-9 [2]

2. without patch, compiled with gcc-6.4.3 [3]

jtdiff /home/xiangzhai/project/jtreg-8722-clang-8-dev/hotspot/JTwork/ 
/home/xiangzhai/project/jtreg-8722-gcc-9-dev/hotspot/JTwork/ 
/home/xiangzhai/project/jtreg-8722-gcc-6/hotspot/JTwork/
0: /home/xiangzhai/project/jtreg-8722-clang-8-dev/hotspot/JTwork pass: 
685; fail: 44; error: 3; not run: 22
1: /home/xiangzhai/project/jtreg-8722-gcc-9-dev/hotspot/JTwork pass: 
686; fail: 43; error: 3; not run: 22
2: /home/xiangzhai/project/jtreg-8722-gcc-6/hotspot/JTwork  pass: 690; 
fail: 38; error: 4; not run: 22

0      1      2      Test
fail   fail   pass   compiler/5091921/Test6559156.java
fail   fail   pass   compiler/5091921/Test6890943.java
pass   fail   pass   gc/g1/TestShrinkAuxiliaryData05.java
pass   fail   pass   gc/g1/TestShrinkAuxiliaryData10.java
pass   fail   pass   gc/g1/TestShrinkAuxiliaryData15.java
fail   pass   pass   gc/g1/TestShrinkAuxiliaryData20.java
fail   pass   pass   gc/g1/TestShrinkAuxiliaryData25.java
fail   pass   pass runtime/SharedArchiveFile/LimitSharedSizes.java
fail   pass   pass runtime/SharedArchiveFile/SpaceUtilizationCheck.java
pass   pass   error serviceability/sa/jmap-hashcode/Test8028623.java

10 differences
jtdiff /home/xiangzhai/project/jtreg-8722-clang-8-dev/langtools/JTwork/ 
/home/xiangzhai/project/jtreg-8722-gcc-9-dev/langtools/JTwork/ 
/home/xiangzhai/project/jtreg-8722-gcc-6/langtools/JTwork/
0: /home/xiangzhai/project/jtreg-8722-clang-8-dev/langtools/JTwork pass: 
3,111; fail: 2; not run: 11
1: /home/xiangzhai/project/jtreg-8722-gcc-9-dev/langtools/JTwork pass: 
3,111; fail: 2; not run: 11
2: /home/xiangzhai/project/jtreg-8722-gcc-6/langtools/JTwork pass: 
3,111; fail: 2; not run: 11

No differences
jtdiff  /home/xiangzhai/project/jtreg-8722-clang-8-dev/jdk/JTwork/ 
/home/xiangzhai/project/jtreg-8722-gcc-9-dev/jdk/JTwork/ 
/home/xiangzhai/project/jtreg-8722-gcc-6/jdk/JTwork/
0: /home/xiangzhai/project/jtreg-8722-clang-8-dev/jdk/JTwork pass: 
5,089; fail: 38; error: 15; not run: 1,153
1: /home/xiangzhai/project/jtreg-8722-gcc-9-dev/jdk/JTwork  pass: 5,101; 
fail: 39; error: 2; not run: 1,153
2: /home/xiangzhai/project/jtreg-8722-gcc-6/jdk/JTwork  pass: 5,098; 
fail: 39; error: 5; not run: 1,153

0      1      2      Test
pass   fail   fail   java/lang/Runtime/exec/LotsOfOutput.java
error  pass   error  java/net/Socket/LingerTest.java
pass   pass   error  java/nio/Buffer/Basic.java
error  pass   pass 
java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java
error  pass   pass 
java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java
error  pass   pass 
java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java
error  pass   pass 
java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java
error  pass   pass java/util/concurrent/Exchanger/ExchangeLoops.java
error  pass   pass 
java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java
error  pass   pass java/util/concurrent/FutureTask/CancelledFutureLoops.java
error  pass   pass 
java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java
error  pass   pass 
java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java
error  pass   pass 
java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java
error  pass   pass 
java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java
error  pass   pass 
java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java
pass   pass   error sun/tools/jstatd/TestJstatdExternalRegistry.java

16 differences
----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---

I will run jtreg test again, and -verbose:all for the error and fail 
testcases compiled with clang-8 to reduce false positive.

[1] $ clang -v
LLVM China clang version 8.0.0 (git at github.com:llvm-mirror/clang.git 
7f223b8fbf26fa0e4d8f98847a53c4ba457720f0) 
(git at github.com:llvm-mirror/llvm.git 
841e300fb15be4f9931d18d2f24f48cb59ef24a8) (based on LLVM 8.0.0svn)
Target: x86_64-redhat-linux
Thread model: posix
InstalledDir: /opt/llvm-git/bin
Found candidate GCC installation: /usr/lib/gcc/i686-redhat-linux/6.4.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/6.4.1
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/6.4.1
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64

[2] $ gcc -v
Using built-in specs.
COLLECT_GCC=/opt/gcc-git/bin/gcc
COLLECT_LTO_WRAPPER=/opt/gcc-git/libexec/gcc/x86_64-redhat-linux-gnu/9.0.0/lto-wrapper
Target: x86_64-redhat-linux-gnu
Configured with: ../configure --target=x86_64-redhat-linux-gnu 
--host=x86_64-redhat-linux-gnu --build=x86_64-redhat-linux-gnu 
--with-cpu=generic --prefix=/opt/gcc-git --enable-bootstrap 
--enable-shared --enable-threads=posix --enable-checking=release 
--enable-languages=c,c++,lto,go,fortran --enable-plugin 
--enable-initfini-array --enable-gnu-unique-object 
--enable-linker-build-id --with-linker-hash-style=gnu 
--enable-__cxa_atexit --enable-gnu-indirect-function --enable-c99 
--enable-long-long --enable-libgomp --enable-lto --enable-libsanitizer 
--enable-libatomic --enable-libquadmath --enable-libitm 
--enable-libcilkrts --enable-libmpx --enable-symvers 
--disable-libstdcxx-pch --disable-multilib --disable-libunwind-exceptions
Thread model: posix
gcc version 9.0.0 20180912 (LLVM China experimental) (GCC)

[3] $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/6.4.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap 
--enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr 
--mandir=/usr/share/man --infodir=/usr/share/info 
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared 
--enable-threads=posix --enable-checking=release --enable-multilib 
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions 
--enable-gnu-unique-object --enable-linker-build-id 
--with-linker-hash-style=gnu --enable-plugin --enable-initfini-array 
--disable-libgcj --with-isl --enable-libmpx 
--enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 
--build=x86_64-redhat-linux
Thread model: posix
gcc version 6.4.1 20170727 (Red Hat 6.4.1-1) (GCC)

在 2018年09月19日 07:06, Zhengyu Gu 写道:
> Hi Leslie,
>
> The backport is approved.
>
> Please send me *committed* patch [1] after proper tests, I will 
> sponsor it for you.
>
> Thanks,
>
> -Zhengyu
>
> [1] http://openjdk.java.net/sponsor/ Section 3
>
> You should use commit message from original patch and add yourself as 
> contributor, ex.
>
> 8205965: SIGSEGV on write to NativeCallStack::EMPTY_STACK
> Summary: Made EMPTY_STACK non-const, so it will not be placed in 
> read-only BSS section.
> Reviewed-by: stuefe, martin
> Contributed-by: zhaixiang at loongson.cn
>
>
>
> On 09/18/2018 06:28 PM, Seán Coffey wrote:
>> Approved for jdk8u-dev.
>>
>> regards,
>> Sean.
>>
>>
>> On 18/09/2018 07:48, Leslie Zhai wrote:
>>> Hi Zhengyu,
>>>
>>> I would like to backport the fix for:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8205965
>>>
>>> To OpenJDK 8 updates dev:
>>>
>>> http://hg.openjdk.java.net/jdk8u/jdk8u-dev
>>>
>>> The fix is mostly the same as the version that was committed in 12, 
>>> here is the patch:
>>>
>>> http://cr.openjdk.java.net/~zgu/8205965_8u/webrev.00/
>>>
>>> The patch was reviewed, thanks for your review!  Here is the 
>>> relevant thread:
>>>
>>> http://mail.openjdk.java.net/pipermail/jdk8u-dev/2018-September/007860.html 
>>>
>>>
>>> A patch by Loongson!  Please sponsor it, thanks a lot!
>>>
>>

-- 
Regards,
Leslie Zhai

-------------- next part --------------
A non-text attachment was scrubbed...
Name: JDK-8205965-8u.patch
Type: text/x-patch
Size: 6193 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/jdk8u-dev/attachments/20180920/6fff845d/JDK-8205965-8u.patch>


More information about the jdk8u-dev mailing list