harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <g...@pobox.com>
Subject Re: [classlib][luni]Runtime.exec fails on Linux
Date Mon, 16 Oct 2006 14:07:38 GMT


Leo Li wrote:
> 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.:)

I used to be able to consistently reproduce a similar bug (fork() 
failing...) by just having eclipse running at the same time.

IOW, with no other programs running, the fork() worked.  With Eclipse 
running, it failed.

The only thing I could think of was that there was some problem with 
ulimit that I never could figure out...

geir

> 
> 
> 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
>>
>>
> 
> 

---------------------------------------------------------------------
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


Mime
View raw message