JDK-8269179 : Crash in TestMacroLogicVector::testSubWordBoolean: assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 15.0.5,17,18
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: x86_64
  • Submitted: 2021-06-22
  • Updated: 2021-10-08
  • Resolved: 2021-06-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15 JDK 17 JDK 18
15.0.6Fixed 17 b29Fixed 18Fixed
Related Reports
Relates :  
Relates :  
Description
TEST: compiler/vectorization/TestMacroLogicVector.java

new Vector node:  2084  StoreVector  ===  1571  1574  1470  2083  [[ 2077  337  1574 ]]  @bool[int:>=0]:NotNull:exact+any *, idx=6; mismatched  Memory: @bool[int:>=0]:NotNull:exact+any *, idx=6; !orig=[1465],[1207],[1041],[921],[765],[338],287 !jvms: TestMacroLogicVector::testSubWordBoolean @ bci:19 (line 48)
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/type.hpp:1714
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/runner/work/jdk17/jdk17/jdk/src/hotspot/share/opto/type.hpp:1714), pid=55910, tid=55925
#  assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
#
# JRE version: OpenJDK Runtime Environment (17.0) (fastdebug build 17-internal+0-shipilev-9645acd269a69be95ce4abce1cb40b334975a8b3)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 17-internal+0-shipilev-9645acd269a69be95ce4abce1cb40b334975a8b3, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0xb50964]  State::_sub_Op_MacroLogicV(Node const*)+0x1b4
#

Only seen in Github actions testing e.g.

https://github.com/shipilev/jdk17/runs/2887815196

https://pipelines.actions.githubusercontent.com/b7odfrG6rG7jT7gNK71L5uXQXQKFto0eNFHGlQjN4yyOVoHRdB/_apis/pipelines/1/runs/3/signedlogcontent/245?urlExpires=2021-06-22T23%3A37%3A22.7747906Z&urlSigningMethod=HMACV1&urlSignature=BZl2es5n1hMttgxhulcd4cqyj5osvDMTmqsDln3tk%2B4%3D
Comments
Fix Request (15u): Need to backport this to jdk15u-dev too, as it's affected after the backport of 8267652 Applies clean
07-10-2021

Setting 11-na as there is a plan to backport 8267652 to openjdk11 and vpternlog_mem is missing in 11.
07-10-2021

The fix for this bug is in jdk-17+29-2535. It has not yet been synced to the jdk/jdk repo.
24-06-2021

Changeset: a30141d6 Author: Jie Fu <jiefu@openjdk.org> Date: 2021-06-24 01:17:56 +0000 URL: https://git.openjdk.java.net/jdk17/commit/a30141d636ff6cfe6a009a5f7422b732081cd2df
24-06-2021

[~jiefu] Thank you for taking it. Please, base fix and PR on JDK 17 repo - we need to fix it in JDK 17 (it will be ported into 18 late by gatekeeper).
23-06-2021

JDK 18 is also affected because JDK-8267652 was forward ported into it.
23-06-2021

diff --git a/src/hotspot/cpu/x86/x86.ad b/src/hotspot/cpu/x86/x86.ad index 5c8fd48..ea50eeb 100644 --- a/src/hotspot/cpu/x86/x86.ad +++ b/src/hotspot/cpu/x86/x86.ad @@ -8074,7 +8074,7 @@ instruct vpternlog(vec dst, vec src2, vec src3, immU8 func) %{ %} instruct vpternlog_mem(vec dst, vec src2, memory src3, immU8 func) %{ - predicate(vector_length_in_bytes(n->in(1)) > 8); + predicate(vector_length_in_bytes(n->in(1)->in(1)) > 8); match(Set dst (MacroLogicV (Binary dst src2) (Binary (LoadVector src3) func))); effect(TEMP dst); format %{ "vpternlogd $dst,$src2,$src3,$func\t! vector ternary logic" %}
23-06-2021

ILW = assert in one test, observed in github testing, no workaround = MMH = P3
23-06-2021

No. It crashed after JDK-8267652 on avx512-only machines. I'll fix it later.
23-06-2021

This occurred when testing an update to gcc 10.3 (from 10.2) so that is possibly why we haven't seen this crash before.
23-06-2021