2006/10/16, Leo Li <[EMAIL PROTECTED]>:
It seems not quite related to actual memory stress although the reported
error is ENOMEM.
I have run it both in eclipse and console. And there are enough memory
available.
Furthermore, the case can be repeated even though in the same time a C
program runs well when using fork().
I suspect that it is related with VM since it can be only reproduced by VM
calling it. I am not sure whether vm does something behind me, but I have
not thought out of a way that a user-space program have such effect.:)
Actually drlvm provides own impl of j.l.Process. Interesting, would it
work if switched to classlib's impl - then this should be process impl
issue. Could you please try the following patch with DRLVM and see if
it works?
Index: vm/vmcore/src/kernel_classes/javasrc/java/lang/Runtime.java
===================================================================
--- vm/vmcore/src/kernel_classes/javasrc/java/lang/Runtime.java
(revision 464817)
+++ vm/vmcore/src/kernel_classes/javasrc/java/lang/Runtime.java (working copy)
@@ -743,14 +743,15 @@
//#IN004# Should we check: envp != null ?
//#IN004# Should we check envp's direction values: envp[i] != null ?
- String dirPathName = (dir != null ? dir.getPath() : null);
+ //String dirPathName = (dir != null ? dir.getPath() : null);
- SubProcess sp = new SubProcess();
+ //SubProcess sp = new SubProcess();
- sp.execVM(cmdarray, envp, dirPathName);
+ //sp.execVM(cmdarray, envp, dirPathName);
- return sp;
-
+ //return sp;
+ return org.apache.harmony.luni.internal.process.SystemProcess.
+ create(cmdarray, envp == null ? new String[0] : envp, dir);
}
--
Alexey
On 10/16/06, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
>
> I'm confused. Didn't you just report this on Ubuntu?
>
> I have had similar forking problems on Ubuntu 6 (I once found a bug in
> classlib related to forking...).
>
> I never figured out why Unbuntu does this, but it seemed that under
> memory stress, Ubuntu's fork() fails. Try this - close Eclipse and run
> the test again...
>
> geir
>
>
> Leo Li wrote:
> > Thank you.
> > I have just run it on drlvm of unbuntu, it works.
> > What a qurious problem!
> >
> >
> > On 10/16/06, Alexey Varlamov <[EMAIL PROTECTED]> wrote:
> >>
> >> Both DRLVM and J9 works for me (SUSE9).
> >>
> >> --
> >> Alexey
> >>
> >> 2006/10/16, Leo Li <[EMAIL PROTECTED]>:
> >> > Hi, all:
> >> > The harmony Runtime.exec fails on Linux with ENOMEM.
> >> > Here is the testcase:
> >> >
> >> > public class Exec {
> >> > public static void main(String[] args) throws Exception {
> >> >
> >> > Runtime.getRuntime().exec("ls"); }
> >> > }
> >> >
> >> > I have tried it on RedHat Enterprise 4 and Unbuntu, both get
> ENOMEM
> >> in
> >> > native code.
> >> >
> >> > After digging into it, I found it fails in procimpl.c, line 135:
> >> >
> >> > grdpid = fork ();
> >> >
> >> > If the call to fork is changed to vfork, the testcase will pass
> but
> >> > still get exitcode = 1 which indicates that some error has happened.
> >> The
> >> > difference between fork and vfork is just whether page tables is
> copied
> >> to
> >> > child process or not. But I do not think it is the main cause.
> Besides,
> >> > vfork has become outdated since it main usage is supplied by fork
> with
> >> > copy-on-write function implemented in modern linux kernel.
> Furthermore,
> >> > vfork is also not so safe as fork. So I do not think it is the
> accepted
> >> way
> >> > to solve the problem.
> >> >
> >> > I will try whether it can be reproduced on drlvm of linux since I
> am
> >> not
> >> > sure whether it is relevent to VM or classlib. If any drlvm man can
> >> tell
> >> me
> >> > the result, it can avoid my trouble to build it on linux. :)
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> > Leo Li
> >> > China Software Development Lab, IBM
> >> >
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> Terms of use : http://incubator.apache.org/harmony/mailing.html
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> >
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
Leo Li
China Software Development Lab, IBM
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]