plotting from octave: address space already occupied, fork aborts

Paul Paul.Domaskis@gmail.com
Wed Sep 14 12:23:00 GMT 2011


Marco atzeri <marco.atzeri <at> gmail.com> writes:
>On 9/14/2011 4:52 AM, Paul wrote:
>> I am using the 2011-08-29 snapshot at http://cygwin.com/snapshots
>> because cygwin-1.7.9-1 does not allow me to write to, or create,
>> files on network drives
>> (http://cygwin.com/packages/cygwin/cygwin-1.7.9-1).
> 
> snapshot is fine.
> (1.7.9-1 has a bug that does not allow to plot on any MS system)
> 
>>
>> I am using Windows 7 Enterprise 64-bit.
>>
>> My current problem is using plotting commands from Octave.  It is
>> not a gnuplot problem because I can plot from gnuplot.  If I plot
>> the simplest thing from octave [ e.g. plot( 1:10 , 1:10 ) ], I get:
>>
>>     5 [main] octave-3.4.2 2892 child_info_fork::abort: address
>>       space needed by 'max.oct' (004F0000) is already occupied
>>     error: popen2: process creation failed -- Resource temporarily
>>       unavailable
>>     error: called from:
>>     error: /usr/share/octave/3.4.2/m/plot/__gnuplot_open_stream__.m
>>       at line 30, column 44
>>     error: /usr/share/octave/3.4.2/m/plot/__gnuplot_drawnow__.m
>>       at line 72, column 19
>>
>> I already did rebaseall and peflagsall from ash.  I ensured there
>> were no cygwin processes running, then invoked ash from the DOS
>> command prompt.  I also rebooted after peflagsall.
>>
>> What else can I try?
>
>Hi Paul,
>your problem is a new one 
>
>max.oct is a dll of octave, and its base address is not 004F0000
>
>$ objdump -p /lib/octave/3.4.2/oct/i686-pc-cygwin/max.oct |grep ImageBase
>
>ImageBase               686c0000
>
>I guess that another dll is loaded at 686c0000, so max.oct
>is loaded too near at 004000000, the base address of any exe
>
>$ objdump -p /bin/gnuplot.exe |grep ImageBase
>ImageBase               00400000
>
>$ objdump -p /bin/octave-3.4.2.exe |grep ImageBase
>ImageBase               00400000
>
>So when octave fork gnuplot, gnuplot take that address space
>and max.oct can not be loaded at the previous 004F0000.
>
>peflagsall is not aware that .oct are also dll, so you could try with
>
>$ peflagsall -s 'exe|dll|so|oct'

Thanks, Marco.

I just tried that...the command completed in a split second i.e.
immediately.  I rebooted, started octave in an xterm, and issued the
command "plot(1:5,1:5)".  The error is still present, but seems to
have shifted to another oct/dll:

   octave:1> plot(1:5,1:5)
         5 [main] octave-3.4.2 3804 child_info_fork::abort: address
         space needed by 'cellfun.oct' (00340000) is already occupied
   error: popen2: process creation failed -- Resource temporarily unavailable
   error: called from:
   error:   /usr/share/octave/3.4.2/m/plot/__gnuplot_open_stream__.m
      at line 30, column 44
   error:   /usr/share/octave/3.4.2/m/plot/__gnuplot_drawnow__.m at
      line 72, column 19

I'd welcome any further suggestions.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list