[issue16212] mmap() dumps core upon resizing the underlying file

Vladimir Ushakov report at bugs.python.org
Sun Oct 14 02:29:18 CEST 2012


Vladimir Ushakov added the comment:

> You can't use longjmp from signal handlers. Well, you can, but 99% of the code that does it is broken, because you can only call async-safe functions from within a signal handler, and certainly can't run the intepreter.

I don't see the reason to run the interpreter. But a quick look at the source shows that the current implementation already uses longjmps to handle SIGFPE (see pyfpe.h and fpectlmodule.c). It seems to be in use on many platforms.

The only problem I see so far is the possibility that we have to protect too much. However, as I could guess from quickly browsing through the mmap() implementation, the address of the mmap()ed region never leaves the module, all accesses are done using exported methods. If it is really the case, we can wrap them into something similar to PyFPE_START_PROTECT() and PyFPE_END_PROTECT() (see comments in pyfpe.h).

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue16212>
_______________________________________


More information about the Python-bugs-list mailing list