AnswerDotAI / AnswerDotAI/sqlite-minutils
With manual transactions, race conditions on `last_insert_rowid()` need to be accounted for
- Lenguaje dominante
- Python
- Estrellas
- 17
- Forks
- 9
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
## Race condition scenario with new configuration:
```python
# pseudocode
# We insert the record here!
db.insert(...)
# ! Record adding in different process increments the ROWID by another one
# Let's see the last PK, but now it's been incremented 0-to-many times
print(db.last_pk)
```
## Probably not a fix
```python
db.begin()
db.insert(...)
print(db.get_last_rowid()) # Not necessarily the record
db.commit()
```
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza rastreando los puntos de entrada db.insert, db.last_pk y db.get_last_rowid descritos en el issue; después, revisa cómo interactúan las transacciones manuales con los procesos concurrentes. Reproduce la intercalación mostrada en el pseudocódigo y establece el comportamiento esperado de la clave primaria antes de decidir qué debería cubrir un fix o una prueba completos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python, sqlite
- Área
- databases
- Tipo de issue
- Error
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100