This is the mail archive of the cygwin@cygwin.com 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

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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