harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leo Li" <liyilei1...@gmail.com>
Subject Re: [classlib][luni]Runtime.exec fails on Linux
Date Tue, 17 Oct 2006 08:06:32 GMT
Hi, Alexey:
      Thank you.
      I have started to build the system.
      Besides, I think the problem is not related to classlib. Since I have
let fork called in a native function, but it fails on J9.

On 10/17/06, Alexey Varlamov <alexey.v.varlamov@gmail.com> wrote:
>
> This is due to incorrect classlib location specified. Please ensure
> you provide correct (better absolute) path in build\drlvm.properties
> (if you use it) or "external.dep.CLASSLIB.loc" property value in
> cmdline:
> sh build.sh -Dexternal.dep.CLASSLIB.loc=$classlib
> This should point to the root of (pre-)built classlib WS.
>
> 2006/10/17, Leo Li <liyilei1979@gmail.com>:
> > Hi, all:
> >     I tried to build drlvm on linux, but when build update, it reports
> such
> > error:
> >
> >     [echo] downloading XALAN from no_settings_in_config_or_environment
> >     [echo] no_settings_in_config_or_environment
> >
> > BUILD FAILED
> > /root/workspaces/workspace/drlvm/build/make/build.xml:240: The following
> > error occurred while executing this line:
> > /root/workspaces/workspace/drlvm/build/make/setup.xml:273: The following
> > error occurred while executing this line:
> > /root/workspaces/workspace/drlvm/build/make/setup.xml:275: The following
> > error occurred while executing this line:
> > /root/workspaces/workspace/drlvm/build/make/setup.xml:442: Warning:
> Could
> > not find file
> >
> /root/workspaces/workspace/drlvm/build/make/no_settings_in_config_or_environment
> > to copy.
> >
> > How can I do with it?
> > Thanks.
> >
> >
> >
> > On 10/17/06, Alexey Varlamov <alexey.v.varlamov@gmail.com> wrote:
> > >
> > > 2006/10/16, Leo Li <liyilei1979@gmail.com>:
> > > > 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. <geir@pobox.com> 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 <alexey.v.varlamov@gmail.com>
> wrote:
> > > > > >>
> > > > > >> Both DRLVM and J9 works for me (SUSE9).
> > > > > >>
> > > > > >> --
> > > > > >> Alexey
> > > > > >>
> > > > > >> 2006/10/16, Leo Li <liyilei1979@gmail.com>:
> > > > > >> > 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:
> > > harmony-dev-unsubscribe@incubator.apache.org
> > > > > >> For additional commands, e-mail:
> > > harmony-dev-help@incubator.apache.org
> > > > > >>
> > > > > >>
> > > > > >
> > > > > >
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > > > To unsubscribe, e-mail:
> harmony-dev-unsubscribe@incubator.apache.org
> > > > > For additional commands, e-mail:
> harmony-dev-help@incubator.apache.org
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Leo Li
> > > > China Software Development Lab, IBM
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> > >
> > >
> >
> >
> > --
> > Leo Li
> > China Software Development Lab, IBM
> >
> >
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>


-- 
Leo Li
China Software Development Lab, IBM

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message