From: Steve B. (JIRA) <ji...@co...> - 2009-08-30 11:37:53
|
[ http://jira.codehaus.org/browse/RVM-851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=189110#action_189110 ] Steve Blackburn commented on RVM-851: ------------------------------------- All of the above confusion seems to have stemmed from two minor glitches in the reporting: 1. Note that the original bug report lists the environment as "Jikes RVM 3.0.1 (r15707), ia32-linux, prototype-opt." This is a typo. I think Andreas meant "3.1.0". Anyway, this is why I did my original tests against 3.0.1 (which does not in fact have this problem). 2. Note also that Andrea's svn info output is strange it lists 15768 as the Revision, but lists 15707 as the last change. 15768 does not have this problem, but 15707 does. So when I tested against 15768 I could not see the problem. In short, I don't think there's any mystery at all and Robin's commit message for 15717 is entirely clear. > MemoryManager.getAllocationSite: Bug waiting to happen > ------------------------------------------------------ > > Key: RVM-851 > URL: http://jira.codehaus.org/browse/RVM-851 > Project: RVM > Issue Type: Bug > Affects Versions: 3.1.0 > Environment: Jikes RVM 3.0.1 (r15707), ia32-linux, prototype-opt > Reporter: Andreas Sewe > Assignee: Steve Blackburn > Priority: Minor > Attachments: BaselineCompilerImpl.java.patch, rvm.patch > > > This is not yet a bug, but it certainly looks like a bug waiting to happen: If one removes the call to {{MemoryManager.getAllocationSite(true)}} in {{BaselineCompilerImpl}} (as the site ID is currently not used anyway) and instead passes a constant to the corresponding entrypoint method (we tested this with {{resolvedNewScalar}}), the RVM hangs upon the first allocation while still in {{finishBooting}}, throwing an {{OutOfMemoryException}}. > Exception in thread "Jikes_RBoot_Thread": java.lang.OutOfMemoryError > at java.lang.String.toCharArray(String.java:1742) > at java.lang.String.replace(String.java:1307) > at org.jikesrvm.VM.runClassInitializer(VM.java:527) > at org.jikesrvm.VM.finishBooting(VM.java:403) > at org.jikesrvm.VM.boot(VM.java:145) > The attached patch is a two line change that makes this bug occur. > My guess is that this method call, which the patch removes, implicitly encodes a dependency on {{Plan}} (the class which ultimately does the work for {{getAllocationSite}}). If this is the case, it should rather be made explicit, as it sooner or later will bite you -- just as it bit us. :-( -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |