[issue3666] atexit.register with bad input segfaults on exit

2008-09-22 Thread Skip Montanaro
Skip Montanaro <[EMAIL PROTECTED]> added the comment: Checked in as revision 66562. -- resolution: -> fixed status: open -> closed ___ Python tracker <[EMAIL PROTECTED]> ___ _

[issue3666] atexit.register with bad input segfaults on exit

2008-09-22 Thread Christian Heimes
Christian Heimes <[EMAIL PROTECTED]> added the comment: *thumbs up* ___ Python tracker <[EMAIL PROTECTED]> ___ ___ Python-bugs-list mailing list

[issue3666] atexit.register with bad input segfaults on exit

2008-09-22 Thread Skip Montanaro
Skip Montanaro <[EMAIL PROTECTED]> added the comment: I've taken this ticket. Can someone please review and give it a thumbs up or thumbs down? -- assignee: -> skip.montanaro ___ Python tracker <[EMAIL PROTECTED]>

[issue3666] atexit.register with bad input segfaults on exit

2008-09-22 Thread Skip Montanaro
Changes by Skip Montanaro <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file11517/atexit.diff ___ Python tracker <[EMAIL PROTECTED]> ___ ___

[issue3666] atexit.register with bad input segfaults on exit

2008-09-18 Thread Skip Montanaro
Skip Montanaro <[EMAIL PROTECTED]> added the comment: New patch. This also makes the various atexit_* functions static. Added file: http://bugs.python.org/file11519/atexit.diff ___ Python tracker <[EMAIL PROTECTED]> ___

[issue3666] atexit.register with bad input segfaults on exit

2008-09-18 Thread Christian Heimes
Christian Heimes <[EMAIL PROTECTED]> added the comment: Skip: I suggest you move the cleanup call before PyErr_Restore(). The current code doesn't re-raise exception raised in the cleanup function. ___ Python tracker <[EMAIL PROTECTED]>

[issue3666] atexit.register with bad input segfaults on exit

2008-09-18 Thread Skip Montanaro
Skip Montanaro <[EMAIL PROTECTED]> added the comment: The attached patch causes an exception to print at exit on my Mac: >>> import sys, atexit >>> atexit.register(lambda: 1, 0, 0, (x for x in (1,2)), 0, 0) at 0x5c91e0> >>> sys.exit() Error in atexit._run_exitfuncs: TypeError: print_exception()

[issue3666] atexit.register with bad input segfaults on exit

2008-09-18 Thread Skip Montanaro
Skip Montanaro <[EMAIL PROTECTED]> added the comment: Why not just have atexit_callfuncs call atexit_cleanup at the end of its execution? -- nosy: +skip.montanaro ___ Python tracker <[EMAIL PROTECTED]> __

[issue3666] atexit.register with bad input segfaults on exit

2008-09-17 Thread Barry A. Warsaw
Changes by Barry A. Warsaw <[EMAIL PROTECTED]>: -- priority: deferred blocker -> release blocker ___ Python tracker <[EMAIL PROTECTED]> ___

[issue3666] atexit.register with bad input segfaults on exit

2008-09-03 Thread Benjamin Peterson
Changes by Benjamin Peterson <[EMAIL PROTECTED]>: -- priority: release blocker -> deferred blocker ___ Python tracker <[EMAIL PROTECTED]> ___ __

[issue3666] atexit.register with bad input segfaults on exit

2008-08-24 Thread Christian Heimes
Christian Heimes <[EMAIL PROTECTED]> added the comment: I was able to trace the error to its apartment. During the cleanup gen_del calls PyErr_Fetch() which fails in PyThreadState_GET(). Conclusion: The atexit cleanup method must be called much earlier. call_ll_exitfunc() is too late. I suggest

[issue3666] atexit.register with bad input segfaults on exit

2008-08-24 Thread Christian Heimes
Christian Heimes <[EMAIL PROTECTED]> added the comment: I'm getting hundreds of lines Fatal Python error: PyThreadState_Get: no current thread The Python process segfaults in call_ll_exitfuncs -> atexit_cleanup() -> atexit_clear() -> atexit_delete_cb -> Py_DECREF(cb->args) -- nosy: +c

[issue3666] atexit.register with bad input segfaults on exit

2008-08-24 Thread Christian Heimes
Changes by Christian Heimes <[EMAIL PROTECTED]>: -- priority: -> release blocker ___ Python tracker <[EMAIL PROTECTED]> ___ ___ Python-

[issue3666] atexit.register with bad input segfaults on exit

2008-08-24 Thread Daniel Diniz
New submission from Daniel Diniz <[EMAIL PROTECTED]>: The following crashes the interpreter on exit: import sys, atexit; atexit.register(lambda: 1, 0, 0, (x for x in (1,2)), 0, 0); sys.exit() Found with Fusil. -- messages: 71862 nosy: ajaksu2 severity: normal status: open title: atexit