dmypy in a metadata reload loop with `--use-fine-grained-cache`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Bug Report
I'm investigating remote caching, I find that dmypy is spinning for a very long time when using --use-fine-grained-cache. I've tried dmypy check <file> and it takes 10 minutes before I give up. If I used no caching at all, it would take 1.5 minutes, and give me expected answers.
To Reproduce
- produce a cache with
mypy --cache-fine-grained --sqlite-cache --no-incremental --cache-dir=... % dmypy start --log-file debug.log --timeout=3600 -- --use-fine-grained-cache --cache-dir=<cache> --sqlite-cache --verbosetime dmypy check tools/my_tool.py 2>&1 | ts > log.txt
Expected Behavior
fast checks
Actual Behavior
Seems to spin at 100% cpu for a long time. in the log, I see just a bunch of
...
2254727 Sep 25 17:35:45 LOG: Metadata not found for <module>
2254728 Sep 25 17:35:45 LOG: Using cached AST for <module path> (<module>)
...
for every file in my venv & project. indeed, I see the same modules on repeat:
% grep 'Metadata not found for numpy.fft.helper' log.txt | wc -l
284
which makes me think this is stuck in a loop.
Your Environment
- Mypy version used: mypy 1.10.1 (compiled: yes)
- Mypy command-line flags: (see above)
- Mypy configuration options from
mypy.ini(and other config files):
[mypy]
platform = linux
plugins = private_internal_plugin.py,trio_typing.plugin
skip_cache_mtime_checks = true
allow_any_generics = false
allow_incomplete_defs = false
allow_subclassing_any = false
allow_untyped_decorators = false
allow_untyped_defs = false
warn_redundant_casts = true
warn_unused_ignores = true
warn_return_any = true
implicit_reexport = true
show_error_codes = true
implicit_optional = true
explicit_package_bases = true
local_partial_types = true
exclude = (?x)(<some regex>)
disable_error_code = import-untyped
enable_error_code = ignore-without-code, unused-awaitable, truthy-bool, possibly-undefined
- Python version used: Python 3.11.10
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Reproducir con el comando de generación de caché de mypy indicado y los comandos dmypy start/check, capturando debug.log y log.txt. Empieza rastreando las entradas repetidas “Metadata not found” y “Using cached AST”, incluida la repetición de numpy.fft.helper. Se considera terminado cuando dmypy check finalice sin el bucle de recarga de metadatos y sea sustancialmente más rápido que la ejecución sin caché.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python, sqlite
- Área
- cli, devtools, performance
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100