[ nice-Bugs-1118782 ] java.lang.InternalError with -Xdebug (SourceDebugExtension)

"SourceForge.net" <[email protected]> Sat, 19 Feb 2005 07:18:21 -0800
Newsgroups gmane.comp.lang.nice.devel
Message-ID <[email protected]>
Bugs item #1118782, was opened at 2005-02-08 18:38
Message generated for change (Comment added) made by bonniot
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=112788&aid=1118782&group_id=12788

Category: None
Group: None
>Status: Closed
Resolution: Fixed
Priority: 4
Submitted By: Artem Gr Kozarezov (artemgr)
Assigned to: Daniel Bonniot (bonniot)
Summary: java.lang.InternalError with -Xdebug (SourceDebugExtension)

Initial Comment:
JDK 1.4.2 throws java.lang.InternalError when using
both the Nice compiler and the JDK's -Xdebug option.

----------------------------------------------------------------------

>Comment By: Daniel Bonniot (bonniot)
Date: 2005-02-19 16:18

Message:
Logged In: YES 
user_id=88952

Arjan and I found ways to make the SourceDebugExtension
attribute much smaller (more than 50% all together). This
means we are now at about 30K for bossa.syntax, and this bug
should not happen anymore, without loosing source line
information. I leave the truncation code in place for bigger
packages. And hopefully Sun will fix the bug for the long term.

----------------------------------------------------------------------

Comment By: Daniel Bonniot (bonniot)
Date: 2005-02-12 15:21

Message:
Logged In: YES 
user_id=88952

There is no public report ID at the moment, because there is
first internal processing by Sun. They claim the response
time is about 3 weeks.

Even if we had an option to disable generating
SourceDebugExtension, we would still need the truncating,
because programs generated with it on will mysterisouly fail
otherwise. Since that's the simplest, I just implemented the
truncation in CVS.

----------------------------------------------------------------------

Comment By: Artem Gr Kozarezov (artemgr)
Date: 2005-02-12 08:39

Message:
Logged In: YES 
user_id=289741

What is the bug report's ID?

> What about truncating the attribute below 64K?
For me - a simpler option to omit SourceDebugExtension will
suffice.. (As long as I can rebuild Nice with that option
turned on).

----------------------------------------------------------------------

Comment By: Daniel Bonniot (bonniot)
Date: 2005-02-11 15:24

Message:
Logged In: YES 
user_id=88952

I submitted a bug report to Sun about this. 

We will surely still need a workaround. What about
truncating the attribute below 64K?

----------------------------------------------------------------------

Comment By: Artem Gr Kozarezov (artemgr)
Date: 2005-02-08 18:43

Message:
Logged In: YES 
user_id=289741

Obtained /tmp/INTERNAL_ERROR size is 81 596.
Contents obtained at the beginning of the file:

SMAP
bossa.syntax.fun
Default
*S Default
*F
1 userOperator.nice
2 symbol.nice
3 userOperator.nice
4 symbol.nice
5 userOperator.nice
6 symbol.nice
7 userOperator.nice
8 symbol.nice
9 userOperator.nice
10 symbol.nice
11 typedef.nice
12 typedef.nice
13 typedef.nice
14 typedef.nice
15 typedef.nice 

At the end of the file:

43#2364,1:20661
75#2365,616:20662
38#2366,60:21278
43#2367,1:21338
102#2368,10:21339
164#2369,1:21349
163#2370,1:21350
45#2371,5:21351
43#2372,1:21356
52#2373,1:21357
43#2374,1:21358
32#2375,4:21359
43#2376,1:21363
38#2377,3:21364
*E 

----------------------------------------------------------------------

Comment By: Artem Gr Kozarezov (artemgr)
Date: 2005-02-08 18:42

Message:
Logged In: YES 
user_id=289741

A patch used to debug the error:

---
/home/artem/delme/hotspot/src/share/vm/oops/symbolKlass.cpp
Thu Sep 11 05:41:42 2003
+++
/usr/ports/java/jdk14/work/hotspot/src/share/vm/oops/symbolKlass.cpp
       Tue Feb  8 18:25:55 2005
@@ -8,10 +8,14 @@
 
 # include "incls/_precompiled.incl"
 # include "incls/_symbolKlass.cpp.incl"
+#include <cstdio>
 
 symbolOop symbolKlass::allocate_symbol(u1* name, int len,
TRAPS) {
   // Don't allow symbol oops to be created which cannot fit
in a symbolOop.
   if (len > symbolOopDesc::max_length()) {
+    std::FILE* file = std::fopen( "/tmp/INTERNAL_ERROR", "w" );
+    std::fwrite( name, len, 1, file );
+    std::fclose( file );
     THROW_MSG_0(vmSymbols::java_lang_InternalError(), 
                 "name is too long to represent");
   }

----------------------------------------------------------------------

Comment By: Artem Gr Kozarezov (artemgr)
Date: 2005-02-08 18:41

Message:
Logged In: YES 
user_id=289741

The code failing:

hotspot/src/share/vm/oops/symbolKlass.cpp

symbolOop symbolKlass::allocate_symbol(u1* name, int len,
TRAPS) {
  // Don't allow symbol oops to be created which cannot fit
in a symbolOop.
  if (len > symbolOopDesc::max_length()) {
    THROW_MSG_0(vmSymbols::java_lang_InternalError(), 
                "name is too long to represent");
  }
...

----------------------------------------------------------------------

Comment By: Artem Gr Kozarezov (artemgr)
Date: 2005-02-08 18:39

Message:
Logged In: YES 
user_id=289741

The stack trace:

An exception has occured in the compiler
Please fill-in a bug report at the following webpage:
http://sourceforge.net/tracker/?func=add&group_id=12788&atid=112788

Stack trace:
Exception in thread "PoolThread-3" java.lang.InternalError:
name is too long to represent
	at java.lang.ClassLoader.defineClass0(ClassLoader.java)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
	at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
	at
java.security.AccessController.doPrivileged(AccessController.java)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
	at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
	at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
	at bossa.syntax.dispatch.resetAlternatives(dispatch.nice)
	at bossa.modules.Package.startNewCompilation(Package.java:290)
	at bossa.modules.fun.setMainPackage(Compilation.nice:78)
	at bossa.modules.Compilation.setMainPackage(Compilation.nice)
	at nice.tools.compiler.fun.compile(interface.nice:37)
	at bossa.modules.Compilation.compile(Compilation.nice)
	at ru.glim.nicetee.fun.compile(tee.nice:290)
	at ru.glim.nicetee.Compiler.compile(tee.nice)

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=112788&aid=1118782&group_id=12788


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click