JDK-6982370 : SIGBUS in jbyte_fill
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs19
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2010-09-03
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
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 6 JDK 7 Other
6u21pFixed 7Fixed hs19Fixed
Related Reports
Relates :  
Description
When run with -XX:+OptimizeFill which is enabled by AggressiveOpts we got a crash in the nightlies.

http://sqeweb.sfbay.sun.com/nfs/results/vm/gtee/JDK7/NIGHTLY/VM/2010-08-30/Comp_Baseline/vm/solaris-sparcv9/server/comp/solaris-sparcv9_vm_server_comp_nsk.stress.testlist/ResultDir/jck12a010/hs_err_pid4281.log

#  SIGBUS (0xa) at pc=0xffffffff77ce3e9c, pid=4281, tid=171
#
# JRE version: 7.0
# Java VM: OpenJDK 64-Bit Server VM (19.0-b06-201008301804.kvn.6980978-fastdebug compiled mode solaris-sparc compressed oops)

v  ~StubRoutines::jbyte_fill
j  javasoft.sqe.tests.api.java.io.StreamTokenizer.eolIsSignificantTests.StreamTokenizer0070()Ljavasoft/sqe/harness/Status;+26

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/065dd1ca3ab6
09-10-2010

EVALUATION http://hg.openjdk.java.net/hsx/hsx19/baseline/rev/a8effb842215
08-10-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/065dd1ca3ab6
28-09-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/065dd1ca3ab6
15-09-2010

EVALUATION 6982370: SIGBUS in jbyte_fill Reviewed-by: kvn In the new fill routines copy less than 8 bytes long skip over the main code and go the final cleanup stage. On sparc this isn't right since it still hasn't accounted for alignment. The fix is to have a special path for handling that. The code doesn't crash on 32 bit sparc because handling of misaligned stores seems to be enabled. Additionally I noticed a problem with the logic for clearing the high bits of a short value. The logic I wrote works correctly for clean ints but doesn't work for 64 bit signed extended ints resulting in invalid fill values in some cases. Tested with failing nightly and new test case to exercise the various alignments.
09-09-2010