MagicStack / MagicStack/asyncpg
Segfault with NULL value in cell
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 8.1k
- Forks
- 468
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
- asyncpg version: 0.23.0
- PostgreSQL version: 13
- Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?: No - Python version: 3.8
- Platform: Ubuntu Xenial
- Did you install asyncpg with pip?: Yes
- Can the issue be reproduced under both asyncio and
uvloop?: Yes
My table looks like this, and is using the citext extension
CREATE TABLE public.items
(
item_id bigint NOT NULL,
tags citext[] default '{}' not null
);
I have a simple query
query = """SELECT tags FROM items WHERE item_id = 304028"""
async with pool.acquire() as c:
result = await c.fetchval(query)
print(result)
val = result[2]
This gives the following output
['debuff', 'buff', <NULL>]
And upon trying to access the second item of the list results a segmentation fault occurs.
Inspecting the database with PyCharm's database tab shows this cell as having the value {debuff,buff,""}
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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
No se nombran archivos fuente ni pruebas. Empieza reproduciendo la consulta reportada de asyncpg 0.23.0 contra el esquema de PostgreSQL proporcionado e inspecciona cómo se decodifica el resultado citext[] que contiene un elemento NULL; se considera terminado cuando el mismo acceso ya no provoca un segfault y el valor NULL se maneja de forma segura.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- postgresql, python
- Área
- backend, databases
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100