Possible Regression: RecursionError validating oneOf/allOf schema in 0.7.2 (works in 0.7.1)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- openapi, python
- Área
- api, testing-qa
Línea de trabajo
Start by running the supplied validate.py reproduction with openapi-spec-validator 0.7.2, then compare it with 0.7.1 as shown. Trace the RecursionError from the validate(parsed_spec) entry point through the oneOf/allOf and $ref schema validation, and consider the issue done when the reproduction validates successfully without recursion failure while preserving the 0.7.1 result.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
An OpenAPI 3.1 schema that validated fine with openapi-spec-validator 0.7.1 now fails with a RecursionError in 0.7.2
Environment
openapi-spec-validator | 0.7.2 ❌ / 0.7.1 ✅
uv 0.7.3 (3c413f74b 2025-05-07)
Minimal reproduction
# validate.py
# /// script
# requires-python = ">=3.12"
# dependencies = [
# "openapi-spec-validator==0.7.2" # TODO: test with 0.7.1
# ]
# ///
import yaml
from openapi_spec_validator import validate
openapi_spec = """
openapi: 3.1.0
info:
title: Recursion Bug Demo
version: 0.1.0
components:
schemas:
PropertyConstraint:
type: object
oneOf:
- $ref: '#/components/schemas/PropertyEqualityConstraint'
- $ref: '#/components/schemas/PropertyRangeConstraint'
properties:
property_id:
type: string
type:
type: string
required: [type]
PropertyEqualityConstraint:
allOf:
- $ref: '#/components/schemas/PropertyConstraint'
- type: object
properties:
property_id:
type: string
property_value: {}
required: [property_id, property_value]
PropertyRangeConstraint:
allOf:
- $ref: '#/components/schemas/PropertyConstraint'
- type: object
properties:
property_id:
type: string
min: {}
max: {}
required: [property_id, min, max]
"""
parsed_spec = yaml.safe_load(openapi_spec)
validate(parsed_spec)
print("valid")
> uv run validate.py
RecursionError: maximum recursion depth exceeded
Set the version to 0.7.1 in the uv script tag at the top.
> uv run validate.py
valid
Has anyone else observed this behaviour?
- Lenguaje dominante
- Python
- Estrellas
- 409
- Forks
- 73
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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.
Más de python-openapi/openapi-spec-validator
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
-
kind/bug/confirmed
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
python-openapi/openapi-spec-validator#373 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Todos los issues de python-openapi/openapi-spec-validator
Issues similares
-
documentation help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
simonw/sqlite-utils#872 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100