Skip to content

Productverbetering: SQLite-verbindingen expliciet sluiten en ResourceWarnings verhelpen #179

Description

@pcvantol

Problem and scope

Status: BACKLOG — niet gestart. Geregistreerd op verzoek van de eigenaar op 2026-09-11 als afzonderlijke EP-productverbetering. Dit issue autoriseert geen implementatie, release, installatie of canary-uitvoering en verandert de canonieke roadmapvolgorde niet.

In de validate-job van Engineering Platform validation, run 34507361861, job 102972782924, op commit bf3d7150c9afa50d69c47fc13d0fe3a1767721d6, verschijnen herhaaldelijk meldingen zoals:

server.py:754: ResourceWarning: unclosed database in <sqlite3.Connection ...>
  connection.execute("UPDATE ep_installations SET schema_version=44")

Bewezen observatie: niet-gesloten SQLite-verbindingen worden tijdens de Python 3.14-testuitvoering gemeld. De exacte allocatie, eigenaar en het ontbrekende cleanup-pad van iedere verbinding zijn nog niet onderzocht; de bronregel bij de waarschuwing bewijst die oorzaak niet.

Geen schema-upgradeprobleem: schema 44 is in de onderzochte bron een geldige tussenstap van de officiële bootstrap-/migratieketen. SERVER_STORE_SCHEMA_VERSION is daar 56; initialize() doorloopt de benodigde stappen en validate_store() controleert de actuele eindstand. De bestaande fresh-install-test controleert eveneens de actuele serverconstante. Historische migratienummers niet algemeen vervangen door 56.

Gewenste verbetering

Traceer de gemelde verbindingen naar hun daadwerkelijke eigenaar in productiecode, testfixtures en qualification-helpers. Zorg voor expliciete, deterministische afsluiting na het einde van hun bedoelde levensduur, zowel bij succes als bij exceptions en teardown. Behoud bestaande transactie-, rollback-, locking- en migratiesemantiek. Beperk de wijziging tot aangetoonde lifecycle-problemen; geen algemene storage-refactor.

Qualification and security impact

Acceptatiecriteria

  • De betrokken connection-allocaties en ontbrekende cleanup-paden zijn reproduceerbaar geïdentificeerd, met onderscheid tussen productcode en test-/qualification-code.
  • Gerichte regressietests bewijzen afsluiting op succes-, fout- en teardown-paden, zonder actieve of gedeelde verbindingen voortijdig te sluiten.
  • Fresh initialization en ondersteunde forward migrations blijven de canonieke actuele schemaversie bereiken, met behoud van installatie-identiteit, data en integriteit. Schema 44 blijft een historische migratiestap.
  • De volledige canonieke Python 3.14-validatie, inclusief installed-wheel-tests en relevante qualification-scenario's, slaagt zonder de betrokken ResourceWarning: unclosed database-meldingen.
  • De regressiebewaking detecteert niet-gesloten SQLite-verbindingen betrouwbaar, inclusief cleanup/finalisatie. Geen generieke warning-suppressie, verzwakte controles of aangepaste schemanummers om de log stil te maken.

Positionering: uitgestelde producthardening; geen nieuwe blocker of dependency voor de lopende Forge→EP-canary op basis van deze observatie alleen. Een eventueel later bewezen operationeel veiligheidsprobleem vraagt een afzonderlijke, concrete beoordeling. EP PR #175, Forge-configuratie, credentials, Missions, grants, submissions en geïnstalleerde runtimes vallen buiten deze backlogregistratie.

Evidence

De bevinding betreft bovenstaande onderzochte commit/run; controleer bij latere uitvoering opnieuw de dan actuele bron en eventuele overlappende fixes.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions