delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/05/29/09:04:06

X-Spam-Check-By: sourceware.org
From: "Dave Korn" <dave DOT korn AT artimi DOT com>
To: <cygwin AT cygwin DOT com>
Subject: RE: simple test triggers fork errs for me in 5/27 snapshot
Date: Mon, 29 May 2006 14:03:43 +0100
Message-ID: <023801c68320$50831d80$a501a8c0@CAM.ARTIMI.COM>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 11
In-Reply-To: <022d01c6830f$61ca8c10$a501a8c0@CAM.ARTIMI.COM>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On 29 May 2006 12:03, Dave Korn wrote:

  Ok, it's real weird.

> Here's the nonsense command sequence again:
> 
>   cd /tmp;echo -ne '#!/bin/bash -u\nfoo "$@"\n' >bar;chmod +x bar
>   foo() { for f ;do bash -c true ;done ; } ; export -f foo
>   find /usr -print0|xargs -0 ./bar

  I found that it also works just as well to run "find /usr -print0 >
file.txt" first, let it run until it's about half a meg, and then can
reproduce the problem each time with

xargs -a file.txt -0 ./bar.sh

  I managed to get one caught in windbg by putting a breakpoint in the error
message code:

      5 [main] bash 2760 child_info_fork::alloc_stack_hard_way: fork: can't
rese
rve memory for stack 0x23C580 - 0x240000, Win32 error 487

  I really can't understand why it won't let us allocate the memory.  Here's
the surrounding area info from !vadump:

BaseAddress:       00230000
AllocationBase:    00230000
AllocationProtect: 00000002  PAGE_READONLY
RegionSize:        00003000
State:             00001000  MEM_COMMIT
Protect:           00000002  PAGE_READONLY
Type:              00040000  MEM_MAPPED

BaseAddress:       00233000
AllocationBase:    00000000
RegionSize:        0000d000
State:             00010000  MEM_FREE
Protect:           00000001  PAGE_NOACCESS

BaseAddress:       00240000
AllocationBase:    00240000
AllocationProtect: 00000004  PAGE_READWRITE
RegionSize:        00013000
State:             00001000  MEM_COMMIT
Protect:           00000004  PAGE_READWRITE
Type:              00020000  MEM_PRIVATE

  So AFAICT the memory is free and should be allocatable, but it really isn't
going to let us:

0:000>  !address 0x23C580
    00233000 : 00233000 - 0000d000
                    Type     00000000 
                    Protect  00000001 PAGE_NOACCESS
                    State    00010000 MEM_FREE
                    Usage    RegionUsageFree
0:000>  !vprot 0x23C580
BaseAddress:       0023c000
AllocationBase:    00000000
RegionSize:        00004000
State:             00010000  MEM_FREE
Protect:           00000001  PAGE_NOACCESS
0:000> .dvalloc /b 0x23C580 /r 0x00003a80
Allocation failed, Win32 error 487
    "Attempt to access invalid address."
0:000> .dvalloc /b 0x23C580 /r 0x00003a00
Allocation failed, Win32 error 487
    "Attempt to access invalid address."


  Anyone got any good ideas?


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019