Repository navigation
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Repro:
from __future__ import annotations
from msgspec import Struct
class typing:
pass
# These two annotations are incorrect, but they should not crash:
class Ex(Struct):
a: typing.ClassVar
b: typing.ClassVar[int]I have a fix ready. Found during initial work on #1095
Log:
Current thread 0x000000020e02a0c0 (most recent call first):
File "<string>", line 8 in <module>
File "/Users/sobolev/Desktop/msgspec/tests/unit/utils.py", line 20 in temp_module
File "/Users/sobolev/.pyenv/versions/3.15-dev/lib/python3.15/contextlib.py", line 203 in __enter__
File "/Users/sobolev/Desktop/msgspec/tests/unit/test_struct.py", line 2621 in test_classvar
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/python.py", line 167 in pytest_pyfunc_call
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/python.py", line 1707 in runtest
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/runner.py", line 184 in pytest_runtest_call
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/runner.py", line 250 in <lambda>
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/runner.py", line 361 in from_call
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/runner.py", line 249 in call_and_report
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/runner.py", line 139 in runtestprotocol
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/runner.py", line 118 in pytest_runtest_protocol
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/main.py", line 408 in pytest_runtestloop
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/main.py", line 384 in _main
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/main.py", line 330 in wrap_session
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/main.py", line 377 in pytest_cmdline_main
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 229 in _main
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 253 in _console_main
File "/Users/sobolev/Desktop/msgspec/.venv/bin/pytest", line 10 in <module>
Current thread's C stack trace (most recent call first):
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _Py_DumpStack+0x44 [0x105b8a0c4]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at faulthandler_fatal_error+0x210 [0x105ba4370]
Binary file "/usr/lib/system/libsystem_platform.dylib", at _sigtramp+0x38 [0x1a00d16a4]
Binary file "/Users/sobolev/Desktop/msgspec/src/msgspec/_core.cpython-315-darwin.so", at structmeta_is_classvar+0x1c4 [0x10707ad3c]
Binary file "/Users/sobolev/Desktop/msgspec/src/msgspec/_core.cpython-315-darwin.so", at structmeta_collect_fields+0x470 [0x107078de0]
Binary file "/Users/sobolev/Desktop/msgspec/src/msgspec/_core.cpython-315-darwin.so", at StructMeta_new_inner+0x42c [0x107077bf8]
Binary file "/Users/sobolev/Desktop/msgspec/src/msgspec/_core.cpython-315-darwin.so", at StructMeta_new+0x20c [0x1070c00e4]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at type_call+0x54 [0x105a36b70]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyObject_MakeTpCall+0x130 [0x1059a22fc]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at builtin___build_class__+0x640 [0x105ae920c]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at PyObject_Vectorcall+0x58 [0x1059a2a54]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _Py_VectorCallInstrumentation_StackRefSteal+0x12c [0x105aeeed4]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyEval_EvalFrameDefault+0x19f4 [0x105af1670]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at PyEval_EvalCode+0x1ac [0x105aee734]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at run_mod+0x278 [0x105b70fc8]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyRun_StringFlagsWithName+0xfc [0x105b6f02c]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at builtin_exec+0x59c [0x105aeae3c]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyEval_EvalFrameDefault+0x2888 [0x105af2504]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at gen_send_ex+0x214 [0x1059bfe40]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at gen_iternext+0x1c [0x1059be698]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at builtin_next+0x64 [0x105aebcc8]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyEval_EvalFrameDefault+0x25f4 [0x105af2270]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyEval_Vector+0x20c [0x105aee97c]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyObject_VectorcallPrepend+0xa8 [0x1059a3c34]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyVectorcall_Call+0x74 [0x1059a2920]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyEval_EvalFrameDefault+0x2b70 [0x105af27ec]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyEval_Vector+0x20c [0x105aee97c]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyObject_VectorcallDictTstate+0x90 [0x1059a20ac]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyObject_Call_Prepend+0x98 [0x1059a30a8]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at slot_tp_call+0x7c [0x105a3e8fc]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _PyObject_MakeTpCall+0x130 [0x1059a22fc]
Binary file "/Users/sobolev/.pyenv/versions/3.15-dev/lib/libpython3.15.dylib", at _Py_VectorCall_StackRefSteal+0x114 [0x105aeebb0]
<truncated rest of calls>
Extension modules: msgspec._core (total: 1)
[1] 73321 segmentation fault pytest -o testpaths=tests/unit -vv
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
Propagate errors from typing.ClassVar attribute lookup (msgspec#1221) (…