RMI and JDBC calls produce Exceptions with a "Interrupted system call" description.
there is no way to systematically reproduce this problem, but it happens between 1% an 2% of the total calls the server does.
RMI calls report the following trace:
java.rmi.UnmarshalException: Error unmarshaling return header;
nested exception is:
java.io.InterruptedIOException: Interrupted system call
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.socketRead(Compiled Code)
at java.net.SocketInputStream.read(Compiled Code)
at java.io.BufferedInputStream.fill(Compiled Code)
at java.io.BufferedInputStream.read(Compiled Code)
at java.io.DataInputStream.readByte(Compiled Code)
at sun.rmi.transport.StreamRemoteCall.executeCall(Compiled Code)
at sun.rmi.server.UnicastRef.invoke(Compiled Code)
at esit.esgdwh.EsidImpl_Stub.getESIDContact(Compiled Code)
JDBC calls report the following problem (the Oracle driver being used is 8.1.6 for jdk1.1):
java.sql.SQLException: Interrupted system call
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(SQLException.java:43)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecute(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
at oracle.jdbc.driver.OracleStatement.executeQuery(Compiled Code)
this problem happens in solaris production releases of jdks 1.1.x and 1.2.x.
the problem has been observed in the following versions: 1.1.6, 1.2.2_03, 1.2.2_05
alejandro.abdelnur@eng 2000-03-13
adding the following as reference a bugtraq was out of the loop (and it's complaining with automatic emails).
a few email messages have been exchanged regarding this bug with the javasoft engineers:
###@###.### wrote:
> Does this occur on green threads or native threads? Do you have code
that you can include that will throw the exception 1% to 2% of the
time? What leads you to believe this is a problem in java.io? Does the
JDBC failure occur while communicating over sockets?
michael,
we are using native threads.
i've just spoken with jeff gillings (he is being CCed), he say it may
be kind of difficult to create a simple program that reproduces the
problem. but he said it would be possible to add to the server some
tracing code (where the exceptions happen) that could
help you diagnostic and identify the problem.
please let us knows if this will work for your and how do you want to
proceed.
at the end of this message i've included a few messages andrew bennett
and i have exchanged regarding this bug.
he is suggesting to open 2 bugs one for rmi and the other for JDBC,
i'll be doing that and make both reference to this one (IMHO the
problem is at much lower level than RMI and JDBC, within the native
piece of the JVM).
regards.
alejandro.
-----------------------------------------------------------
Subject:
Re: BugId 4319848 : (P1/S2) New *Hotbug* Created,
Please Evaluate
Date:
Wed, 08 Mar 2000 17:32:21 -0800
From:
###@###.###
Organization:
Sun Microsystems
To:
Alejandro Abdelnur <###@###.###>
References:
1 , 2 , 3
Greetings
The java/runtime category is for VM specific bugs. You may want
to
break out your bug into two - submitting once against RMI, the
other
against JDBC, as they may be separate errors, but look the same.
Chances are the classes that are throwing the exception both
throw
exceptions that have the same message. Since JDBC and RMI both
use
socket operations, it's probably a dupe of any of these bugs:
4032593,
4298808, or 4304614. It looks like the message "Interrupted
system
call" is an operating system message that's bubbling up from
some
operation.
From the two stack traces, I'd have to say that RMI isn't dying
right
off, but it happens during the reading of the socket, and thus,
it can't
unmarshall the stream that's getting returned.
The JDBC call probably dies in the Oracle JDBC driver during
.doExecuteQuery(), which gets the message, and then calls
.check_error(), and then bubbles up the chain.
Andrew
Alejandro Abdelnur wrote:
>
> andrew,
>
> well, i guess selecting io_classes may have been a mistake,
i've put that because the stack trace of the rmi call exception
where
> io classes are directly involved.
>
> may be a better subcategory, as the exception appears to come
always from native code, would be runtime (or core?, does that
> category exist?).
>
> if you feel there is a better suited category, please change
the current selection, if you engineers think there isn't
enough
> information to go forward please let us know and we'll try to
provide the required/missing information to your team.
>
> thxs for taking care of this.
>
> regards.
>
> alejandro.
>
>
> > Greetings
> >
> > This is probably going to get marked incomplete by one of my
engineers
> > when they get around to it. What is the IO bug that's
causing this that
> > made you choose the classes_io subcategory? More often than
not, RMI
> > and JDBC are throwing that exception, probably related to
the
> > classes_net bug listed in the "See also" secton.
> >
> > Thanks
> >
there is no way to systematically reproduce this problem, but it happens between 1% an 2% of the total calls the server does.
RMI calls report the following trace:
java.rmi.UnmarshalException: Error unmarshaling return header;
nested exception is:
java.io.InterruptedIOException: Interrupted system call
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.socketRead(Compiled Code)
at java.net.SocketInputStream.read(Compiled Code)
at java.io.BufferedInputStream.fill(Compiled Code)
at java.io.BufferedInputStream.read(Compiled Code)
at java.io.DataInputStream.readByte(Compiled Code)
at sun.rmi.transport.StreamRemoteCall.executeCall(Compiled Code)
at sun.rmi.server.UnicastRef.invoke(Compiled Code)
at esit.esgdwh.EsidImpl_Stub.getESIDContact(Compiled Code)
JDBC calls report the following problem (the Oracle driver being used is 8.1.6 for jdk1.1):
java.sql.SQLException: Interrupted system call
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(SQLException.java:43)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecute(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
at oracle.jdbc.driver.OracleStatement.executeQuery(Compiled Code)
this problem happens in solaris production releases of jdks 1.1.x and 1.2.x.
the problem has been observed in the following versions: 1.1.6, 1.2.2_03, 1.2.2_05
alejandro.abdelnur@eng 2000-03-13
adding the following as reference a bugtraq was out of the loop (and it's complaining with automatic emails).
a few email messages have been exchanged regarding this bug with the javasoft engineers:
###@###.### wrote:
> Does this occur on green threads or native threads? Do you have code
that you can include that will throw the exception 1% to 2% of the
time? What leads you to believe this is a problem in java.io? Does the
JDBC failure occur while communicating over sockets?
michael,
we are using native threads.
i've just spoken with jeff gillings (he is being CCed), he say it may
be kind of difficult to create a simple program that reproduces the
problem. but he said it would be possible to add to the server some
tracing code (where the exceptions happen) that could
help you diagnostic and identify the problem.
please let us knows if this will work for your and how do you want to
proceed.
at the end of this message i've included a few messages andrew bennett
and i have exchanged regarding this bug.
he is suggesting to open 2 bugs one for rmi and the other for JDBC,
i'll be doing that and make both reference to this one (IMHO the
problem is at much lower level than RMI and JDBC, within the native
piece of the JVM).
regards.
alejandro.
-----------------------------------------------------------
Subject:
Re: BugId 4319848 : (P1/S2) New *Hotbug* Created,
Please Evaluate
Date:
Wed, 08 Mar 2000 17:32:21 -0800
From:
###@###.###
Organization:
Sun Microsystems
To:
Alejandro Abdelnur <###@###.###>
References:
1 , 2 , 3
Greetings
The java/runtime category is for VM specific bugs. You may want
to
break out your bug into two - submitting once against RMI, the
other
against JDBC, as they may be separate errors, but look the same.
Chances are the classes that are throwing the exception both
throw
exceptions that have the same message. Since JDBC and RMI both
use
socket operations, it's probably a dupe of any of these bugs:
4032593,
4298808, or 4304614. It looks like the message "Interrupted
system
call" is an operating system message that's bubbling up from
some
operation.
From the two stack traces, I'd have to say that RMI isn't dying
right
off, but it happens during the reading of the socket, and thus,
it can't
unmarshall the stream that's getting returned.
The JDBC call probably dies in the Oracle JDBC driver during
.doExecuteQuery(), which gets the message, and then calls
.check_error(), and then bubbles up the chain.
Andrew
Alejandro Abdelnur wrote:
>
> andrew,
>
> well, i guess selecting io_classes may have been a mistake,
i've put that because the stack trace of the rmi call exception
where
> io classes are directly involved.
>
> may be a better subcategory, as the exception appears to come
always from native code, would be runtime (or core?, does that
> category exist?).
>
> if you feel there is a better suited category, please change
the current selection, if you engineers think there isn't
enough
> information to go forward please let us know and we'll try to
provide the required/missing information to your team.
>
> thxs for taking care of this.
>
> regards.
>
> alejandro.
>
>
> > Greetings
> >
> > This is probably going to get marked incomplete by one of my
engineers
> > when they get around to it. What is the IO bug that's
causing this that
> > made you choose the classes_io subcategory? More often than
not, RMI
> > and JDBC are throwing that exception, probably related to
the
> > classes_net bug listed in the "See also" secton.
> >
> > Thanks
> >
- duplicates
-
JDK-4178050 hpi needs to handle EINTR (Socket reads and writes randomly throw InterruptedIOE
-
- Closed
-
- relates to
-
JDK-4298809 java.net.SocketException: Interrupted system call
-
- Closed
-
-
JDK-4032593 read() on a socket fails
-
- Closed
-