United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6732698 crash with dead code from compressed oops in gcm
6732698 : crash with dead code from compressed oops in gcm

Details
Type:
Bug
Submit Date:
2008-08-01
Status:
Resolved
Updated Date:
2010-04-02
Project Name:
JDK
Resolved Date:
2008-09-12
Component:
hotspot
OS:
solaris_9
Sub-Component:
compiler
CPU:
sparc
Priority:
P1
Resolution:
Fixed
Affected Versions:
hs14
Fixed Versions:
hs14

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
During promotion for b32 crashes on linux-amd64 and windows-amd64 occurred during the build when executing pack.  There seems to be some cloning of loadN nodes going on during matching that should be and this result in some dead loadN nodes still connected to the graph.  gcm dies in this code:

      uint use_rpo = _bbs[use->_idx]->_rpo;

because they haven't been scheduled yet so _bbs returns NULL.  The use is a dead loadN.

 1123   loadN   === _ o711  893  [[ 1121 ]] narrowoop: java/util/HashMap:NotNull:exact *
 1122   loadN   === _ o711  893  [[ 1121 ]] narrowoop: java/util/HashMap:NotNull:exact *
o711    Proj    === o709  [[o881 o720 o4488 o788 o733 o785 o783 o965 o772 o878 o756 o838 o848 o823 o980 o950 o908 o912 o4467 o4473 o4519 o4565 o4631 o4784 o4791  892  1122  1123  1121 ]] #2  Memory: @BotPTR *+bot, idx=Bot;
o4241   IfFalse === o4240  [[o4480 o4473  1121 ]] #0
 1121   incI_mem        === o4241 o711  1122  1123  [[]] memory  Memory: @java/util/HashMap:NotNull:exact+32 *, name=modCount, idx=24;

The incI_mem somehow wasn't matched correctly since it ended up with two different copies of the loadN instead of two references to the same node.  The del_req call in incI_memNode::Expand removes one reference which causes it to go dead.  So the problem seem to be that matching gives us two copies instead of one.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/eaf496ad4a14
                                     
2008-08-29



Hardware and Software, Engineered to Work Together