Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
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
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang