-
Bug
-
Resolution: Fixed
-
P3
-
1.2.2
-
1.2.2
-
x86
-
linux
-
Verified
Name: mc57594 Date: 12/12/99
java version "1.2.2"
Classic VM (build 1.2.2-I, green threads, javacomp)
This is a duplicate of a problem fixed by the Blackdown Organization
in their JDK 1.2.2 RC 3 release for Linux. Please see a complete
description at:
Bug Id 1578, "java.net.SocketException: Interrupted system call"
http://www.blackdown.org/cgi-bin/jdk/incoming?id=1578
That description includes a test case with source. For information
on reproducing the problem with VolanoMark, see Table 2 and the
corresponding run rules at:
The Volano Report
http://www.volano.com/report.html
The people at Blackdown were unable to reproduce the problem, but
they did fix it for me. It was a matter of retrying all interrupted
network operations even for the timeout code.
=================================================
Date: Fri, 3 Dec 1999 21:44:29 -0700 (MST)
From: ###@###.###
To: ###@###.###
Subject: java.net.SocketException: Interrupted system call
Full_Name: John Neffenger
JDK_Version: 1.2.2_RC2
JDK_Arch: i386 (x86)
Linux_Dist: RedHat
Linux_Dist_Ver: 6.1
Libc_Ver: 2.1.2
Ld_Ver: 2.1.2
Dyn_Java: no
Toolkit: Motif
Toolkit_Ver:
Bug_Example: http://
Submission from: 216.102.197.168 (216.102.197.168)
I'm getting "java.net.SocketException: Interrupted system call" when
running network tests on JDK 1.2.1 RC2 on Red Hat Linux 6.1 when all of
the following are true:
- There is more than one concurrent network connection.
- The test runs over a real network, rather than in loopback.
- The test runs with green threads, rather than native threads.
- And the server sets a non-zero socket timeout on each connection.
The problem is easily recreated on my network by running the following
two programs -- a multithreaded echo server and client test driver:
http://www.volano.com/temp/Client.java
http://www.volano.com/temp/Server.java
Run the server using JDK 1.2.2 RC2 on Linux with:
java -green Server
Run the client on another machine on the same network. The test works
when run with one network connection:
java Client -h red.volano.com -c 1 -m 100
but fails with two network connections:
java Client -h red.volano.com -c 2 -m 100
The "-h" option is the host name of the server, the "-c" option is the
number of clients to create, and the "-m" option is the number of
messages for each client to send and receive.
The test fails on the server side with the error:
Error in server (java.net.SocketException: Interrupted system call).
This test runs fine under Blackdown JDK 1.1.7 Version 3 on Linux, and it
runs fine if you run it in loopback or with native threads or without a
socket timeout on each connection. Because of the exception, JDK 1.2.2
RC2 fails to run the VolanoMark network scalability test.
Reply 1
Resend
From: Kevin B. Hendricks <###@###.###>
To: ###@###.###
Subject: Re: java.net.SocketException: Interrupted system call (PR#1578)
Date: Sun Dec 5 09:17:41 1999
Hi,
I have been unable to recreate your probem report (even using two machines (but
my second machine running the client was a Sun box). Juergen had similar
troubles trying to recereate the bug you reported.
I went back to the green threads code and made sure any call to select or poll
was manually restarted if it returned with -1 and errno==EINTR (especially the
one in sysTimeout which I think is the culprit).
It seems on Linux, that both select and poll system calls can be interrupted and
return even with SA_RESTART set on all signal handlers.
This should fix your problem. This fix should appear in RC3 any day now.
Thanks for your bug report.
Kevin
Followup 1
Compose reply
Download message
Date: Sun, 05 Dec 1999 09:17:48 -0800
From: John Neffenger <###@###.###>
To: "Kevin B. Hendricks" <###@###.###>
CC: Volano Support <###@###.###>
Subject: Re: java.net.SocketException: Interrupted system call (PR#1578)
Hi Kevin,
Thanks for looking into it.
> I have been unable to recreate your probem report (even using two machines
(but
> my second machine running the client was a Sun box). Juergen had similar
> troubles trying to recereate the bug you reported.
I'm using a dual SPARC Solaris 7 box for the client as well. The
problem occurs for me on two different Linux machines. In fact, I've
seen the problem in every JDK 1.2 release.
Perhaps you have a faster network or machine, and you're not getting the
concurrent connections. I'm running the server side on a 200 MHz
Pentium Pro. You might try starting 100 simultaneous clients (or more)
instead of just 2:
java Client -h red.volano.com -c 100 -m 100
> This should fix your problem. This fix should appear in RC3 any day now.
Thanks again,
John Neffenger
(Review ID: 98807)
======================================================================
Name: rlT66838 Date: 12/15/99
java version "1.2.2"
Classic VM (build 1.2.2-I, green threads, javacomp)
This is a duplicate of a problem fixed by the Blackdown Organization in their
JDK 1.2.2 RC 3.9 (not yet released). Please see a complete description at:
Bug Id 1604, "Segmentation violation with 1020 timeout sockets"
http://www.blackdown.org/cgi-bin/jdk/incoming?id=1604
I'm unable to reproduce the bug on Sun's JDK 1.2.2 RC1 since I hit this bug
first:
Bug Id 4298809, "java.net.SocketException: Interrupted system call"
http://developer.java.sun.com/developer/bugParade/bugs/4298809.html
but since the Sun JDK is built off the Blackdown files, I assume Sun will hit
this bug as soon as Bug Id 4298809 is fixed (as Blackdown did). I'm just hoping
Sun can fix both bugs at the same time for the next release candidate.
For information on reproducing the problem with VolanoMark, see Table 2 and the
corresponding run rules at:
The Volano Report
http://www.volano.com/report.html
(Review ID: 98997)
======================================================================
- relates to
-
JDK-4319848 Interrupted system call exception
-
- Closed
-