davidhalter / jedi

Awesome autocompletion, static analysis and refactoring library for python
http://jedi.readthedocs.io
Other
5.73k stars 503 forks source link

`LazyKnownValues` has no attribute `string_name`? #1972

Closed A5rocks closed 7 months ago

A5rocks commented 7 months ago

Here's a snippet of the printed out stacktrace:

2023-11-23T13:45:02.8570757Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2023-11-23T13:45:02.8572230Z /opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/helpers.py:487: in wrapper
2023-11-23T13:45:02.8573464Z     return func(self, line, column, *args, **kwargs)
2023-11-23T13:45:02.8574861Z /opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/__init__.py:215: in complete
2023-11-23T13:45:02.8576029Z     return completion.complete()
2023-11-23T13:45:02.8577320Z /opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/completion.py:172: in complete
2023-11-23T13:45:02.8578747Z     completions = list(filter_names(self._inference_state, completion_names,
2023-11-23T13:45:02.8579768Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2023-11-23T13:45:02.8580372Z 
2023-11-23T13:45:02.8580867Z inference_state = <jedi.inference.InferenceState object at 0x000000000b26e9f8>
2023-11-23T13:45:02.8583198Z completion_names = [<ClassName: string_name=__init__ start_pos=(346, 8)>, <ClassName: string_name=_do_handshake start_pos=(626, 14)>, <Cl... <ClassName: string_name=__getattr__ start_pos=(416, 8)>, <ClassName: string_name=__setattr__ start_pos=(425, 8)>, ...]
2023-11-23T13:45:02.8586805Z stack = [StackNode(<DFAState: file_input is_final=False>, []), StackNode(<DFAState: stmt is_final=True>, []), StackNode(<DFASt...e: atom_expr is_final=True>, [<Name: SSLStream@1,28>]), StackNode(<DFAState: trailer is_final=False>, [<Operator: .>])]
2023-11-23T13:45:02.8588982Z like_name = '', fuzzy = False, cached_name = None
2023-11-23T13:45:02.8589484Z 
2023-11-23T13:45:02.8590074Z     def filter_names(inference_state, completion_names, stack, like_name, fuzzy, cached_name):
2023-11-23T13:45:02.8591053Z         comp_dct = set()
2023-11-23T13:45:02.8591612Z         if settings.case_insensitive_completion:
2023-11-23T13:45:02.8592298Z             like_name = like_name.lower()
2023-11-23T13:45:02.8592919Z         for name in completion_names:
2023-11-23T13:45:02.8593515Z >           string = name.string_name
2023-11-23T13:45:02.8594514Z E           AttributeError: 'LazyKnownValues' object has no attribute 'string_name'
2023-11-23T13:45:02.8595244Z 
2023-11-23T13:45:02.8596182Z /opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/completion.py:73: AttributeError

Here's the action run where this happened: https://github.com/A5rocks/trio/actions/runs/6965476949/job/18966916879 (github doesn't like loading the logs, I recommend you click the gear icon and view raw logs).

A5rocks commented 7 months ago

I believe this might be manifesting as a segfault too (based on the stack trace):

2023-11-23T16:33:43.7306411Z Fatal Python error: Segmentation fault
2023-11-23T16:33:43.7306970Z 
2023-11-23T16:33:43.7307428Z Stack (most recent call first, approximate line numbers):
2023-11-23T16:33:43.7315718Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/completion.py", line 68 in filter_names
2023-11-23T16:33:43.7317955Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/completion.py", line 141 in complete
2023-11-23T16:33:43.7319616Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/__init__.py", line 194 in complete
2023-11-23T16:33:43.7321390Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/jedi/api/helpers.py", line 469 in wrapper
2023-11-23T16:33:43.7322997Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/trio/_tests/test_exports.py", line 257 in test_static_tool_sees_class_members
2023-11-23T16:33:43.7324901Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/python.py", line 187 in pytest_pyfunc_call
2023-11-23T16:33:43.7326845Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_callers.py", line 27 in _multicall
2023-11-23T16:33:43.7328678Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_manager.py", line 106 in _hookexec
2023-11-23T16:33:43.7330909Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_hooks.py", line 479 in __call__
2023-11-23T16:33:43.7332725Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/python.py", line 1790 in runtest
2023-11-23T16:33:43.7334512Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/runner.py", line 160 in pytest_runtest_call
2023-11-23T16:33:43.7336560Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_callers.py", line 27 in _multicall
2023-11-23T16:33:43.7338521Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_manager.py", line 106 in _hookexec
2023-11-23T16:33:43.7340437Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_hooks.py", line 479 in __call__
2023-11-23T16:33:43.7342210Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/runner.py", line 262 in <lambda>
2023-11-23T16:33:43.7344067Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/runner.py", line 318 in from_call
2023-11-23T16:33:43.7345678Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/runner.py", line 247 in call_runtest_hook
2023-11-23T16:33:43.7346844Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/runner.py", line 219 in call_and_report
2023-11-23T16:33:43.7348044Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/runner.py", line 119 in runtestprotocol
2023-11-23T16:33:43.7349232Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/runner.py", line 111 in pytest_runtest_protocol
2023-11-23T16:33:43.7350396Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_callers.py", line 27 in _multicall
2023-11-23T16:33:43.7351806Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_manager.py", line 106 in _hookexec
2023-11-23T16:33:43.7352919Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_hooks.py", line 479 in __call__
2023-11-23T16:33:43.7354037Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/main.py", line 338 in pytest_runtestloop
2023-11-23T16:33:43.7355173Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_callers.py", line 27 in _multicall
2023-11-23T16:33:43.7356409Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_manager.py", line 106 in _hookexec
2023-11-23T16:33:43.7357506Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_hooks.py", line 479 in __call__
2023-11-23T16:33:43.7358575Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/main.py", line 321 in _main
2023-11-23T16:33:43.7359641Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/main.py", line 258 in wrap_session
2023-11-23T16:33:43.7360896Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/main.py", line 317 in pytest_cmdline_main
2023-11-23T16:33:43.7362029Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_callers.py", line 27 in _multicall
2023-11-23T16:33:43.7363250Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_manager.py", line 106 in _hookexec
2023-11-23T16:33:43.7364360Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pluggy/_hooks.py", line 479 in __call__
2023-11-23T16:33:43.7365466Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/config/__init__.py", line 135 in main
2023-11-23T16:33:43.7366647Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/_pytest/config/__init__.py", line 185 in console_main
2023-11-23T16:33:43.7367772Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/pytest/__main__.py", line 1 in <module>
2023-11-23T16:33:43.7368838Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/coverage/execfile.py", line 169 in run
2023-11-23T16:33:43.7370256Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/coverage/cmdline.py", line 813 in do_run
2023-11-23T16:33:43.7371416Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/coverage/cmdline.py", line 611 in command_line
2023-11-23T16:33:43.7372523Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/lib/pypy3.10/site-packages/coverage/cmdline.py", line 964 in main
2023-11-23T16:33:43.7373353Z   File "/opt/hostedtoolcache/PyPy/3.10.13/x64/bin/coverage", line 1 in <module>
2023-11-23T16:33:43.7373923Z   File "<builtin>/app_main.py", line 1035 in execfile
2023-11-23T16:33:43.7374387Z   File "<builtin>/app_main.py", line 133 in run_toplevel
2023-11-23T16:33:43.7374879Z   File "<builtin>/app_main.py", line 748 in run_command_line
2023-11-23T16:33:43.7375386Z   File "<builtin>/app_main.py", line 1149 in entry_point

... which is very weird, but here's the github actions run: https://github.com/A5rocks/trio/actions/runs/6971643058/job/18972135073

davidhalter commented 7 months ago

Can you reproduce these errors without Pypy as well? Pypy is not supported.

A5rocks commented 7 months ago

Ah is it not? I'll close this until I try to reproduce in CPython and ensure our Jedi tests don't run on PyPy!

A5rocks commented 7 months ago

OK I've tried for a bit and cannot repro in CPython. Assuming this issue is PyPy only.