hang when printing exception
Mark Wielaard
mark@klomp.org
Fri Mar 14 23:21:00 GMT 2003
Hi,
On Fri, 2003年03月14日 at 23:29, Tom Tromey wrote:
> My nightly build started hanging during `make check'.
>> In my default PATH is a c++filt that doesn't understand `-s java'.
> In this case NameFinder seems to get confused.
>> In some environments I'll just get this:
>> fleche. ~/gnu/Nightly/gcc/install/bin/gij T661rpc1
> Exception in thread "main" java.lang.IllegalAccessError
> *** Got java.lang.NullPointerException while trying to print stack trace.
>> In others, I'll get a hang.
>> I looked at the recent changes here but nothing stands out as a
> problem. Anybody experiencing anything similar?
I am just tracing a similar hang it seems. But it is to late and I have
to get some sleep first. Here are some comments, maybe someone who is
more awake immediatly sees what is wrong here. I have the following
strange backtrace:
#0 0x40934a54 in read () from /lib/libc.so.6
#1 0x40831b50 in __JCR_LIST__ () from /lib/libpthread.so.0
#2 0x403bbc70 in java::io::FileDescriptor::read(JArray<char>*, int, int) (
this=0x80e5b90, buffer=0x80ea000, offset=0, count=135158672)
at java/io/natFileDescriptor.cc:311
#3 0x403ed981 in java.io.FileInputStream.read(byte[], int, int) (
this=0xfffffe00, b=0x0, off=135158672, len=135176200)
at /opt/src/gcc/libjava/java/io/FileInputStream.java:90
These offset and length are way off.
#4 0x403eec09 in java.io.FilterInputStream.read(byte[], int, int) (
this=0xfffffe00, buf=0xfffffe00, offset=-512, len=-512)
at /opt/src/gcc/libjava/java/io/FilterInputStream.java:230
Hmmm, what does the spec say about negative offset and lenght here?
#5 0x403e76ff in java.io.BufferedInputStream.refill() (this=0x0)
at /opt/src/gcc/libjava/java/io/BufferedInputStream.java:352
What!?! this=0x0 !?!
#6 0x403ef8c8 in java.io.InputStreamReader.refill() (this=0x80a3f00)
at /opt/src/gcc/libjava/java/io/InputStreamReader.java:170
#7 0x403ef6ad in java.io.InputStreamReader.read(char[], int, int) (
this=0x80a3f00, buf=0xfffffe00, offset=-512, length=8192)
at /opt/src/gcc/libjava/java/io/InputStreamReader.java:109
#8 0x403e7fc1 in java.io.BufferedReader.fill() (this=0x80e5ba0)
at /opt/src/gcc/libjava/java/io/BufferedReader.java:351
How can BufferedReader call read() here with offset == limit negative?
limit should never be negative here.
#9 0x403e80bb in java.io.BufferedReader.read() (this=0x80a3f20)
at /opt/src/gcc/libjava/java/io/BufferedReader.java:376
#10 0x403e8272 in java.io.BufferedReader.readLine() (this=0x80e5ba0)
at /opt/src/gcc/libjava/java/io/BufferedReader.java:446
#11 0x4044004c in gnu.gcj.runtime.NameFinder.demangleName(java.lang.String) (
this=0x8096d20, s=0x80e1e70)
at /opt/src/gcc/libjava/gnu/gcj/runtime/NameFinder.java:436
#12 0x4043fdff in gnu.gcj.runtime.NameFinder.createStackTraceElement(java.lang.String, java.lang.String) (this=0xfffffe00, name=0x80e1e70, file=0x808d8c0)
at /opt/src/gcc/libjava/gnu/gcj/runtime/NameFinder.java:376
#13 0x403b8bc3 in gnu::gcj::runtime::NameFinder::dladdrLookup(gnu::gcj::RawData*, int) (this=0xfffffe00, addrs=0xfffffe00, n=2048)
at /opt/src/gcc/libjava/gcj/cni.h:64
#14 0x4043f627 in gnu.gcj.runtime.NameFinder.lookup(gnu.gcj.RawData, int) (
this=0x8096d20, addrs=0x808d8c0, n=-1073744896)
at /opt/src/gcc/libjava/gnu/gcj/runtime/NameFinder.java:209
#15 0x4043f7c6 in gnu.gcj.runtime.NameFinder.lookup(java.lang.Throwable, gnu.gcj.RawData, int) (this=0x8096d20, t=0xfffffe00, addrs=0x80c8e70, length=17)
at /opt/src/gcc/libjava/gnu/gcj/runtime/NameFinder.java:256
#16 0x403e701f in java.lang.VMThrowable.getStackTrace(java.lang.Throwable) (
this=0xbffff400, t=0xfffffe00)
at /opt/src/gcc/libjava/java/lang/VMThrowable.java:100
...
Good night,
Mark
More information about the Java
mailing list