RFR: 8335906: [s390x] Test Failure: GTestWrapper.java
Amit Kumar
amitkumar at openjdk.org
Tue Jul 9 05:18:03 UTC 2024
PAT_1 is fine because only 1 element is there, i.e. last element:
[debug] u.c[idx] = 6a, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, j value = 6a, v = 6a
[debug] u.c[idx] = 64, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, d value = 64, v = 64
[debug] u.c[idx] = 6b, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, k value = 6b, v = 6b
[debug] u.c[idx] = 2f, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, / value = 2f, v = 2f
[debug] u.c[idx] = 69, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, i value = 69, v = 69
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, n value = 6e, v = 6e
[debug] u.c[idx] = 74, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, t value = 74, v = 74
[debug] u.c[idx] = 65, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, e value = 65, v = 65
[debug] u.c[idx] = 72, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, r value = 72, v = 72
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, n value = 6e, v = 6e
[debug] u.c[idx] = 61, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, a value = 61, v = 61
[debug] u.c[idx] = 6c, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, l value = 6c, v = 6c
issue starts when array `u.c` size increases;
PAT_2:
[debug] u.c[idx] = 64, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, d value = 6a64, v = 6a64
[debug] u.c[idx] = 6a, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, j value = 6a64, v = 6a64
[debug] u.c[idx] = 2f, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, / value = 6b2f, v = 6b2f
[debug] u.c[idx] = 6b, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, k value = 6b2f, v = 6b2f
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, n value = 696e, v = 696e
[debug] u.c[idx] = 69, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, i value = 696e, v = 696e
[debug] u.c[idx] = 65, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, e value = 7465, v = 7465
[debug] u.c[idx] = 74, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, t value = 7465, v = 7465
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, n value = 726e, v = 726e
[debug] u.c[idx] = 72, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, r value = 726e, v = 726e
[debug] u.c[idx] = 6c, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, l value = 616c, v = 616c
[debug] u.c[idx] = 61, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, a value = 616c, v = 616c
[debug] u.c[idx] = 6c, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, l value = 2f6c, v = 2f6c
[debug] u.c[idx] = 64, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, d value = 6a64, v = 6a64
[debug] u.c[idx] = 6a, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, j value = 6a64, v = 6a64
It should have been interpreted as `6a` and then `64` but chronology is reversed here. Issue is that we are reading the array in reverse order. Which is what, this patch is fixing. Instead of reading the array from back, We will find the location of location of element, respective to the iteration. i.e. in this case we will find the index of `6a` for `0th` iteration and pick index of `64` for `1st` iteration.
With Fix:
PAT_1:
[debug] u.c[idx] = 6a, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, j value = 6a, v = 6a
[debug] u.c[idx] = 64, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, d value = 64, v = 64
[debug] u.c[idx] = 6b, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, k value = 6b, v = 6b
[debug] u.c[idx] = 2f, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, / value = 2f, v = 2f
[debug] u.c[idx] = 69, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, i value = 69, v = 69
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, n value = 6e, v = 6e
[debug] u.c[idx] = 74, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, t value = 74, v = 74
[debug] u.c[idx] = 65, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, e value = 65, v = 65
[debug] u.c[idx] = 72, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, r value = 72, v = 72
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, n value = 6e, v = 6e
[debug] u.c[idx] = 61, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, a value = 61, v = 61
[debug] u.c[idx] = 6c, sizeof(u.v) = 8, unitsize = 1 , i+1 = 1, l value = 6c, v = 6c
PAT_2:
[debug] u.c[idx] = 6a, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, j value = 6a64, v = 6a64
[debug] u.c[idx] = 64, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, d value = 6a64, v = 6a64
[debug] u.c[idx] = 6b, sizeof(u.v) = 8, unitsize = 2 , i+1 = 1, k value = 6b2f, v = 6b2f
[debug] u.c[idx] = 2f, sizeof(u.v) = 8, unitsize = 2 , i+1 = 2, / value = 6b2f, v = 6b2f
PAT_3:
[debug] u.c[idx] = 23, sizeof(u.v) = 8, unitsize = 4 , i+1 = 1, # value = 23006a64, v = 23006a64
[debug] u.c[idx] = 0, sizeof(u.v) = 8, unitsize = 4 , i+1 = 2, value = 23006a64, v = 23006a64
[debug] u.c[idx] = 6a, sizeof(u.v) = 8, unitsize = 4 , i+1 = 3, j value = 23006a64, v = 23006a64
[debug] u.c[idx] = 64, sizeof(u.v) = 8, unitsize = 4 , i+1 = 4, d value = 23006a64, v = 23006a64
[debug] u.c[idx] = 6b, sizeof(u.v) = 8, unitsize = 4 , i+1 = 1, k value = 6b2f696e, v = 6b2f696e
[debug] u.c[idx] = 2f, sizeof(u.v) = 8, unitsize = 4 , i+1 = 2, / value = 6b2f696e, v = 6b2f696e
[debug] u.c[idx] = 69, sizeof(u.v) = 8, unitsize = 4 , i+1 = 3, i value = 6b2f696e, v = 6b2f696e
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 4 , i+1 = 4, n value = 6b2f696e, v = 6b2f696e
PAT_4:
[debug] u.c[idx] = ff, sizeof(u.v) = 8, unitsize = 8 , i+1 = 1, ? value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = ff, sizeof(u.v) = 8, unitsize = 8 , i+1 = 2, ? value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = e0, sizeof(u.v) = 8, unitsize = 8 , i+1 = 3, ? value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = dc, sizeof(u.v) = 8, unitsize = 8 , i+1 = 4, ? value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = 23, sizeof(u.v) = 8, unitsize = 8 , i+1 = 5, # value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = 0, sizeof(u.v) = 8, unitsize = 8 , i+1 = 6, value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = 6a, sizeof(u.v) = 8, unitsize = 8 , i+1 = 7, j value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = 64, sizeof(u.v) = 8, unitsize = 8 , i+1 = 8, d value = ffffe0dc23006a64, v = ffffe0dc23006a64
[debug] u.c[idx] = 6b, sizeof(u.v) = 8, unitsize = 8 , i+1 = 1, k value = 6b2f696e7465726e, v = 6b2f696e7465726e
[debug] u.c[idx] = 2f, sizeof(u.v) = 8, unitsize = 8 , i+1 = 2, / value = 6b2f696e7465726e, v = 6b2f696e7465726e
[debug] u.c[idx] = 69, sizeof(u.v) = 8, unitsize = 8 , i+1 = 3, i value = 6b2f696e7465726e, v = 6b2f696e7465726e
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 8 , i+1 = 4, n value = 6b2f696e7465726e, v = 6b2f696e7465726e
[debug] u.c[idx] = 74, sizeof(u.v) = 8, unitsize = 8 , i+1 = 5, t value = 6b2f696e7465726e, v = 6b2f696e7465726e
[debug] u.c[idx] = 65, sizeof(u.v) = 8, unitsize = 8 , i+1 = 6, e value = 6b2f696e7465726e, v = 6b2f696e7465726e
[debug] u.c[idx] = 72, sizeof(u.v) = 8, unitsize = 8 , i+1 = 7, r value = 6b2f696e7465726e, v = 6b2f696e7465726e
[debug] u.c[idx] = 6e, sizeof(u.v) = 8, unitsize = 8 , i+1 = 8, n value = 6b2f696e7465726e, v = 6b2f696e7465726e
Maybe I understood whole thing incorrectly, So I'm open for suggestions.
-------------
Commit messages:
- fix
Changes: https://git.openjdk.org/jdk/pull/20089/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20089&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8335906
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/20089.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20089/head:pull/20089
PR: https://git.openjdk.org/jdk/pull/20089
More information about the hotspot-runtime-dev
mailing list