This is the mail archive of the cygwin 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] |
I have recently patched pypy (http://www.pypy.org) to compile under Cygwin. Pypy implements a Python interpreter with a?Just In Time (JIT) compiler.?At runtime pypy uses a MAP_PRIVATE anonymous mmap to allocate memory for its JIT. This seems to be cause of fork() calls failing. A sample error message is included below.?I have discussed this problem at length with the pypy developers. The discussion is online at: http://www.mail-archive.com/pypy-dev@python.org/msg02448.html? Finally I hacked the pypy sources and replaced the MAP_PRIVATE anonymous mmap allocation with MAP_SHARED at the place where pypy allocates its JIT temporary memory, and the code runs fine (but that's not a solution for pypy, as their JIT child and parent processes likely will drift apart for any real non-toy program and do need separate memory space).?From what the pypy folks say, this is not a pypy issue but a Cygwin issue. $ ./pypy-c Python 2.7.2 (ffd032c196fb+, May 31 2012, 23:19:38) [PyPy 1.9.1-dev0 with GCC 4.5.3] on cygwin Type "help", "copyright", "credits" or "license" for more information. And now for something completely different: ``correct code doesnt need any tests <duck>'' >>>> import os >>>> os.fork() ? ? ? 3 [main] pypy-c 5672 fixup_mmaps_after_fork: ReadProcessMemory failed for MAP_PRIVATE address 0xB0010000, Win32 error 998 ? ? 172 [main] pypy-c 5672 D:\pypy\pypy-jit\pypy\pypy\translator\goal\pypy-c: *** fatal error in forked process - recreate_mmaps_after_fork_failed ? ? 478 [main] pypy-c 5672 open_stackdumpfile: Dumping stack trace to pypy-c.stackdump ? ? ? 1 [main] pypy-c 6112 fork: child -1 - forked process 5672 died unexpectedly, retry 0, exit code 256, errno 11 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Traceback (most recent call last): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?File "<console>", line 1, in <module> ? ? ? ? ? ? ? ? ? ? ? ? ? ? OSError: [Errno 11] Resource temporarily unavailable ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?>>>>? PS Attached is an output of cygcheck, and the relevant portion of an strace.
Attachment:
cygcheck.out
Description: Binary data
Attachment:
test_os_fork_opt=jit.log
Description: Binary data
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |