Skip to content

OperationalError: database is locked #285

Closed

Description

@gisce-ti-sentry

Sentry Issue: GAB-V

OperationalError: database is locked
(5 additional frame(s) were not displayed)
...
  File "github-agent-bridge-reader-run", line 6, in <module>
    sys.exit(main())

This issue was automatically created by Sentry via Github Issue

Activity

  1. giscebot commented on Oct 8, 2026

    @giscebot
    Collaborator

    Fix obert a #291.

    El reader deixava escapar SQLITE_BUSY/SQLITE_LOCKED després del timeout de connexió i el timer acabava en error. La PR aplica dos reintents acotats a cada operació SQLite (lectura del cursor, ingestió/quarantena i avanç de last_uid) en lloc de repetir tota la passada IMAP; així un lock en desar el cursor no torna a fer el fetch ni repeteix el \Seen. Els errors d'esquema o d'emmagatzematge no relacionats amb contenció continuen essent fatals.

    Validació: 526 tests passats. La regressió principal usa un BEGIN IMMEDIATE real i també es comprova que l'avanç de cursor no duplica efectes IMAP.

  2. giscebot commented on Oct 8, 2026

    @giscebot
    Collaborator

    Confirmació post-merge: el fix de #291 ja és a main via e214e90 i l'issue queda correctament resolta.

    He verificat de nou el main actual (8f6e1c8) en un worktree net:

    • python3 -m pytest -q tests/test_reader.py — 6 passats
    • python3 -m pytest -q — 537 passats, 1 avís de deprecació Starlette/httpx ja conegut

    El retry continua acotat a SQLITE_BUSY/SQLITE_LOCKED per operació SQLite, de manera que un lock en avançar last_uid no repeteix ni el fetch ni l'efecte IMAP \\Seen.

    PR fusionada: #291

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions