|
Quick Lists
|
|
Bug ID:
|
6563987
|
|
Votes
|
0
|
|
Synopsis
|
api/org_ietf/jgss/GSSContext/index.html#SetGetTests: VM Crash JDK 6u2 since b03 with -server -Xcomp
|
|
Category
|
hotspot:compiler2
|
|
Reported Against
|
b03
|
|
Release Fixed
|
hs10(b14),
6u2(b04) (Bug ID:2149934)
, 7(b14) (Bug ID:2176964)
|
|
State
|
10-Fix Delivered,
Verified,
bug
|
|
Priority:
|
1-Very High
|
|
Related Bugs
|
6547163
|
|
Submit Date
|
31-MAY-2007
|
|
Description
|
JCK : JCK6.0 b36
J2SE : FAIL - 6u2 b03, PASS 6u2 b02
Platform[s] : FAIL - Solaris10-sparc
switch/Mode : FAIL - -server -Xcomp
Test api/org_ietf/jgss/GSSContext/index.html#SetGetTests causes VM to crash on
solaris10-sparc.
Posted Date : 2007-06-06 09:39:56.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
New arraycopy stubs code introduced in 6498658 changes and
in additional fix 6547163 crashes in few cases.
Based on the bug report I modified the test program I added
for 6547163 so that it tests arraycopy stubs for different array
sizes ranged from 8 bytes to 80 bytes with 1 byte step.
It found 3 failed cases including the reported one:
1. After 6547163 fix for sparc aligned arraycopy stubs code will
call copy_16_bytes_forward_with_shift() when arrays are misaligned
by 4 bytes in 32-bits VM. But this method works only when length
>= 16 bytes. There is the comment before the method call:
// The compare above (count >= 23) guarantes 'count' >= 16 bytes.
But for aligned arrays the compare is ('count' >= 12).
It causes 'count' became negative after the method call.
The loop which copy an array's tail decrements and compares
'count' with 0:
__ brx(Assembler::notZero, false, Assembler::pt, L_copy_byte_loop);
It will copy past an array until SEGV when 'count' is negative.
2. The sparc stubs for conjoint_byte_copy and conjoint_short_copy
incorrectly assumes that end of arrays are also aligned
when arrays itself are aligned. It cases SIGBUS when ldx/stx
instruction is executed on not aligned address of array's end.
3. Small (<4 bytes) arracopy is not executed for aligned conjoint
copy on x86 (32-bits VM) since the code is incorrectly
guarded by the !aligned check.
Posted Date : 2007-06-01 02:18:18.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |