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



> 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

--
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]