Asynchronous tasks ID sequence can exhaust
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Start by locating the Task model and checking its primary-key references and migrations; the issue does not name specific files or tests. Verify what depends on numeric task IDs before changing the key. Done means Task.uuid is the UUID4 primary key, the sequence is removed, and no logic depends on numeric task IDs.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In some Flagsmith installs with a lot of dashboard activity and analytics turned on, the Task.id field can yield a sequence exhaustion error in Postgres:
django.db.utils.DataError: nextval: reached maximum value of sequence "task_processor_task_id_seq" (2147483647)
Although https://github.com/Flagsmith/flagsmith/pull/5358 has alleviated the accumulation of items by preventing /api/v1/flags/ from enqueuing new tasks for analytics tracking, we're bound to hit that limit eventually.
Seemingly, this only affects instances with analytics enabled. As such, a temporary fix includes:
- Upgrading Flagsmith to a version equal or newer than v2.173.1. This alone should postpone the exhaustion by many years in most installs.
- Shifting the sequence axis so it consumes negative numbers, i.e.:
ALTER SEQUENCE task_processor_task_id_seq MINVALUE -2147483648 RESTART WITH -2147483648;
Acceptance criteria
- Promote
Task.uuidto a primary key defaulting toUUID4(), dismissing a sequence entirely. Must ensure no logic depends on numeric task IDs.
- Lingua principale
- Python
- Stelle
- 2
- Fork
- 4
- Merge medio
- 1h 7m
- PR unite (30g)
- 4
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Flagsmith/flagsmith-common
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Flagsmith/flagsmith-common#250 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Flagsmith/flagsmith-common#198 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Flagsmith/flagsmith-common#254 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
Flagsmith/flagsmith-common#252 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
Flagsmith/flagsmith-common#245 ·
Tutte le issue di Flagsmith/flagsmith-common
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
epam/ai-dial-quickapps-backend#628 ·
I maintainer di solito rispondono entro 2 giorni
-
0xlau.dev 已失效,切换成 timlau.meAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 69/100
timqian/chinese-independent-blogs#2235 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
eclipse-score/coverage_tool#27 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
bojieli/ai-agent-book#1174 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
RedHatQE/mtv-api-tests#721 ·
I maintainer di solito rispondono entro 1 giorno