bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: possible bug in Cray port -- "virtual memory exhausted"


From: Ted Stern
Subject: Re: possible bug in Cray port -- "virtual memory exhausted"
Date: Wed, 18 Dec 2002 11:41:43 -0800
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (sparc-sun-solaris2.8)

On Tue, 17 Dec 2002, Paul D. Smith wrote:
> Hm.  Have you applied the patch contained in Bug 1517?
>
>   https://savannah.gnu.org/bugs/?func=detailbug&bug_id=1517&group_id=71

Hi Paul,

Just completed a test of my build using a rebuilt 3.80 with the bug 1517
patch.  [Note to WendyP -- this was using the rebuilt GNU make in the open34
module.]

The build now manages to include 4321 makefiles instead of 4305.  So perhaps a
tiny amount of memory was saved by this patch, but not enough to fix the bug.

I'll try a test in which I try to include 10,000 empty files and see if that
triggers the bug. ... yes, I'm able to reproduce it.  Here is a simple script
to generate 10K files:

      #!/bin/ksh
      i=0
      while [[ $i -lt 10 ]] ; do
         j=0
         while [[ $j -lt 10 ]] ; do
            k=0
            while [[ $k -lt 10 ]] ; do
               mkdir -p AAAA_$i/BBBB_$j/CCCC_$k
               m=0
               while [[ $m -lt 10 ]] ; do
                  touch AAAA_$i/BBBB_$j/CCCC_$k/DDDD_$m.mk
                  m=$((m+1))
               done
               k=$((k+1))
            done
            j=$((j+1))
         done
         i=$((i+1))
      done

and here is a simple makefile:

      ALL_INCLUDES := $(shell find `/bin/pwd`/AAAA* -name '*.mk' -print)
      
      include $(ALL_INCLUDES)
      
      .PHONY: all
      
      all: ;    echo "completed successfully"

BTW, the point at which the memory runs out is dependent on the length of the
path, which is why I use relatively long pathnames for the test.

The result of "make -R -k -d all" on an SV1 Cray UNICOS system within an NQS
batch job requesting 128 megawords (1GB) is

      GNU Make 3.80
      Copyright (C) 2002  Free Software Foundation, Inc.
      This is free software; see the source for copying conditions.
      There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
      PARTICULAR PURPOSE.
      Reading makefiles...
      Reading makefile `Makefile'...
      Reading makefile `/ptmp/stern/testmake/AAAA_0/BBBB_0/CCCC_0/DDDD_0.mk' 
(search path) (no ~ expansion)...
      Reading makefile `/ptmp/stern/testmake/AAAA_0/BBBB_0/CCCC_0/DDDD_1.mk' 
(search path) (no ~ expansion)...
      Reading makefile `/ptmp/stern/testmake/AAAA_0/BBBB_0/CCCC_0/DDDD_2.mk' 
(search path) (no ~ expansion)...
      
        <snip>
      
      Reading makefile `/ptmp/stern/testmake/AAAA_4/BBBB_5/CCCC_9/DDDD_6.mk' 
(search path) (no ~ expansion)...
      Reading makefile `/ptmp/stern/testmake/AAAA_4/BBBB_5/CCCC_9/DDDD_7.mk' 
(search path) (no ~ expansion)...
      Reading makefile `/ptmp/stern/testmake/AAAA_4/BBBB_5/CCCC_9/DDDD_8.mk' 
(search path) (no ~ expansion)...
      Reading makefile `/ptmp/stern/testmake/AAAA_4/BBBB_5/CCCC_9/DDDD_9.mk' 
(search path) (no ~ expansion)...
      make: *** virtual memory exhausted.  Stop.

As you can see, the memory is exhausted when 5000 files have been included.

Perhaps this will help you isolate the problem.

Ted
--
 Ted Stern                           Engineering Applications
 Cray Inc.                               office: 206-701-2182
 411 First Avenue South, Suite 600         cell: 206-383-1049
 Seattle, WA 98104-2860                     FAX: 206-701-2500
 Debuggers' motto:  Frango ut patefaciam -- I break in order to reveal



reply via email to

[Prev in Thread] Current Thread [Next in Thread]