﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
28485	Make ExceptionReporter.get_traceback_frames() include frames without source code	Martin von Gagern	Tim Graham <timograham@…>	"Recently I encountered a strange situation: I got an exception for a bad method signature, but the stack trace shown by Django in the error response did not even mention the method in question. I added a {{{traceback.print_exc()}}} to the last report function, and there on standard error I could see some more frames. They were without source code, but with file name, line number and method name. The reason why they were without source code was that their source was not directly accessible as a file on disk. They had been loaded via a custom loading procedure. The fact that there was no indication at all in the report was quite confusing.

In [https://github.com/django/django/pull/8880 GitHub #8880] I'm proposing a fix for this. If we fail to load the source file, we no longer drop the frame but present what information we have, namely file name, line number and function name, plus a warning about the unavability of the source file in place of the actual source test.

Note that having a [https://www.python.org/dev/peps/pep-0302/#optional-extensions-to-the-importer-protocol PEP 302] {{{__loader__}}} to the generated module to provide a {{{get_source}}} method is a way of supporting source code even for generated or custom-loaded code, and it is supported by Django. So this change here does not affect all generated or custom-loaded code, only those parts which don't make use of such a loader."	Bug	closed	Error reporting	dev	Normal	fixed			Accepted	1	0	0	0	0	0
