problem with Runtime.exec() on Linux 8.1
Peter Lovell <[email protected]>
| Newsgroups | gmane.comp.java.vm.sablevm.devel |
|---|---|
| Message-ID | <[email protected]> |
One of the things I've had to look into this week is sablevm on an older version of Linux, because some of our users have requested this. And I find that Runtime.exec() doesn't work on SuSE 8.1. The symptom seems to be exactly the same as that described in "Runtime.exec() does nothing on Xscale linux" message URL <http://sablevm.org/lists/sablevm-user/2004-August/000031.html> SuSE 8.1 is a 2.4.19 kernel, and the same code works properly on SuSE 8.2, with 2.4.20 kernel. I'm testing with sablevm+classpath 1.1.6 The symptom is that you run the program, and the program terminates as soon as it does the exec. That is, the exec never returns. Further investigation shows that actually the forked child is still there, asleep, and that the parent and child have become separated somehow. The threads appear to be created and the fork happens, but then things break. Looking at strace, in 8.1 it never gets to execve, as it does for SuSE 8.2. This has all the taste of a Linux threading issue, and I know that there were many changes to threading during the early time with 2.4 kernel. I checked the make and it is building with -lpthread -lrt (which I believe to be correct for using standard pthreads). I couldn't see any further discussion of this in archives, and wonder what the situation is. Thanks.....Peter