commit 8a9d74e955c9e66e23ca423181d6b4f3b2f35234 merge: 69071b279955ab8dd08fad10b2540b9f6bae2825 efd33904df73f0175583058fedc0d7234cac6b45 author: orivej date: 2019-07-06T14:14:55+03:00 revision: 5216942 Fix tracebacks in py2 import_test and do not read builtin source from FS. DEVTOOLS-5629 REVIEW: 869505 Note: mandatory check (NEED_CHECK) was skipped --- a/Lib/linecache.py (69071b279955ab8dd08fad10b2540b9f6bae2825) +++ b/Lib/linecache.py (8a9d74e955c9e66e23ca423181d6b4f3b2f35234) @@ -111,6 +111,7 @@ def updatecache(filename, module_globals=None): import os import sys import tokenize + import __res except ImportError: # These import can fail if the interpreter is shutting down return [] @@ -120,6 +121,12 @@ def updatecache(filename, module_globals=None): if not filename or (filename.startswith('<') and filename.endswith('>')): return [] + # Do not read builtin code from the filesystem. + if data := __res.resfs_read(__res.py_src_key(filename)): + lines = data.decode('UTF-8').splitlines(keepends=True) + cache[filename] = len(data), None, lines, filename + return cache[filename][2] + fullname = filename try: stat = os.stat(fullname)