Antoine Pitrou <pit...@free.fr> added the comment: > The problem is highlighted with recursive imports: > a module which imports another module, which imports another module, > etc. PyMarshal_ReadLastObjectFromFile is not the only function to use > stack-allocated buffers, there are also load_source_module, > load_package, import_module_level, which use char buf[MAXPATHLEN+1]: > with a MAXPATHLEN to 1024, you lose 2 or 3K every time you do a > recursive import.
Let's assume we lose ten times 1024 bytes, that's still only 10KB. The stack is 8MB. We are argueing about less than 1% of the total stack size. I just went through all of the functions highlighted in one of these stack traces (*). The only big consumers of stack space seem to be the stack buffer in PyMarshal_ReadLastObjectFromFile, and the various file path buffers using MAXPATHLEN. (*) https://bugs.launchpad.net/ubuntu/+source/python2.6/+bug/432546 And that report shows only a single thread, so I have to assume that the 8MB figure applies there. Nevertheless, we can remove the stack buffer since it's probably useless. It just seems unlikely to me to be the root cause of the stack overflow. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue7332> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com