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

Leslie Zhai zhaixiang at loongson.cn
Thu Sep 20 01:34:38 UTC 2018


Thanks!

Leslie Zhai


在 2018年09月20日 07:49, Zhengyu Gu 写道:
> Pushed.
>
> http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/rev/7a6239517d46
>
> -Zhengyu
>
> On 09/19/2018 07:28 PM, Leslie Zhai wrote:
>> 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; P
>> 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!
>>>>>
>>>>
>>




More information about the jdk8u-dev mailing list