Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2040590 | 1.4.1 | Yumin Qi | P4 | Closed | Fixed | hopper |
JDK-2120811 | 1.3.1_14 | Hao Dong | P4 | Resolved | Fixed | b01 |
Name: boT120536 Date: 02/08/2001
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
To reproduce this problem, as root, do:
# ulimit -n unlimited
# java foo
Where foo.class is from:
public class foo
{
public static void main(String argv[] ) throws IOException,
InterruptedException {
String command = new String ("/bin/touch /tmp/junkexec");
// then write the data of the response
Process process = Runtime.getRuntime().exec(command);
System.out.println ("The process returned " + process.waitFor());
}
}
This is actually a modification of bug id 4043528 which I know has
been closed. However, if the system limit is unlimited, Runtime
exec will loop effectively forever. I think it's a sign problem
in a max close routine, as it never gets out of trying to close
file descriptors.
Now, perhaps a way to fix this problem for solaris is to open
/proc/XXXX/fd and try to close only the ones that are open.
This way, it will be independent of the max_filedescriptor value.
(Review ID: 114796)
======================================================================
###@###.### 10/5/04 22:28 GMT
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
To reproduce this problem, as root, do:
# ulimit -n unlimited
# java foo
Where foo.class is from:
public class foo
{
public static void main(String argv[] ) throws IOException,
InterruptedException {
String command = new String ("/bin/touch /tmp/junkexec");
// then write the data of the response
Process process = Runtime.getRuntime().exec(command);
System.out.println ("The process returned " + process.waitFor());
}
}
This is actually a modification of bug id 4043528 which I know has
been closed. However, if the system limit is unlimited, Runtime
exec will loop effectively forever. I think it's a sign problem
in a max close routine, as it never gets out of trying to close
file descriptors.
Now, perhaps a way to fix this problem for solaris is to open
/proc/XXXX/fd and try to close only the ones that are open.
This way, it will be independent of the max_filedescriptor value.
(Review ID: 114796)
======================================================================
###@###.### 10/5/04 22:28 GMT
- backported by
-
JDK-2120811 Runtime exec hangs if ulimit nofiles is unlimited.
- Resolved
-
JDK-2040590 Runtime exec hangs if ulimit nofiles is unlimited.
- Closed
- duplicates
-
JDK-4696974 VM crashes with libthread panic on Solaris 7
- Closed
-
JDK-4791640 (process) Should use closefrom(3C) (sol, lnx)
- Closed
- relates to
-
JDK-4843136 (process) pipe file descriptor from Runtime.exec not being closed
- Resolved