From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27588 invoked from network); 8 May 2004 14:14:12 -0000 Received: from thor.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.86) by ns1.primenet.com.au with SMTP; 8 May 2004 14:14:12 -0000 Received: (qmail 25397 invoked from network); 8 May 2004 14:13:49 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 8 May 2004 14:13:49 -0000 Received: (qmail 5789 invoked by alias); 8 May 2004 14:13:39 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 19896 Received: (qmail 5779 invoked from network); 8 May 2004 14:13:39 -0000 Received: from thor.dotsrc.org (HELO a.mx.sunsite.dk) (qmailr@130.225.247.86) by sunsite.dk with SMTP; 8 May 2004 14:13:36 -0000 Received: (qmail 24910 invoked from network); 8 May 2004 14:13:35 -0000 Received: from acolyte.scowler.net (216.254.112.45) by a.mx.sunsite.dk with SMTP; 8 May 2004 14:13:34 -0000 Received: by acolyte.scowler.net (Postfix, from userid 1000) id 8A0477004A; Sat, 8 May 2004 10:13:07 -0400 (EDT) Date: Sat, 8 May 2004 10:13:07 -0400 From: Clint Adams To: Bart Schaefer Cc: 245678-submitter@bugs.debian.org, zsh-workers@sunsite.dk Subject: Re: Bug#245678: zsh: built-in rm -rf fills up the memory Message-ID: <20040508141307.GA25262@scowler.net> References: <20040424162150.GA4210@ay.vinc17.org> <20040425013647.GA28395@scowler.net> <1040425204530.ZM25792@candle.brasslantern.com> <20040425211239.GA5011@scowler.net> <1040426171013.ZM26825@candle.brasslantern.com> <20040508043530.GA21396@scowler.net> <20040508140207.GA25045@scowler.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040508140207.GA25045@scowler.net> User-Agent: Mutt/1.5.5.1+cvs20040105i X-Spam-Checker-Version: SpamAssassin 2.63 on a.mx.sunsite.dk X-Spam-Level: X-Spam-Status: No, hits=-0.9 required=6.0 tests=BAYES_30 autolearn=no version=2.63 X-Spam-Hits: -0.9 > Now, should this be fixed by making hrealloc() smarter or > recursivecmd_dorec() more efficient? Here's one non-portable way of preventing the OOM, and making the rm -rf go quickly. Should H_ISIZE be changed to the page size when USE_MMAP is defined, or is there a reason to keep it the sizeof(union mem_align) ? --- orig/Src/mem.c +++ mod/Src/mem.c @@ -379,8 +379,8 @@ { Heap h, ph; - old = (old + H_ISIZE - 1) & ~(H_ISIZE - 1); - new = (new + H_ISIZE - 1) & ~(H_ISIZE - 1); + old = (old + 4096 - 1) & ~(4096 - 1); + new = (new + 4096 - 1) & ~(4096 - 1); if (old == new) return p;