This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: mmap of large amount returns invalid pointer

On Thu, Mar 21, 2002 at 11:15:52AM -0800, Stephen Weeks wrote:
> > Could you please describe what happens in the error case
> > in plain English?  I see that there could be a timing problem in
> > fork() but I'd like to read how the error looks like.
> The process mmaps some memory, writes to the memory, and then forks.
> After the fork, the parent unmaps the memory and exits, while the
> child reads from the memory.  From looking at the strace, I see that
> the Cygwin fork implementation allows the parent process to continue
> before ensuring that the child has completed the memory copy.  In this
> case, the parent unmaps the memory before the child can copy it.
> Hence, we see the following line in the strace, which indicates the
> failure in the child process (138).
>  1813  914381 [main] fork 138 fixup_mmaps_after_fork: ReadProcessMemory failed for MAP_PRIVATE address 0x2A230000, Win32 error 998
> c:\sweeks\tmp\fork.exe: *** recreate_mmaps_after_fork_failed

I've checked in a fix.  Please try the next devlopers snapshot
or current from CVS.

Thanks for the report and the testcase,

Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                      
Red Hat, Inc.

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]