Skip to content

Interrupted transaction allocation leaves an unrecoverable placeholder Transaction on flash, permanently blocking the connector #455

Description

@rohith-kazam

Summary

ConnectorTransactionStore::createTransaction() commits a blank, all-default Transaction object to flash before the caller populates it with real data
(idTag, authorization, begin timestamp). If the device resets between this placeholder commit and the follow-up commit, the leftover file is loaded back on the next boot as a non-null, "active" transaction that never starts, neveraborts, and is never cleaned up — permanently occupying the connector.

This is one such session extracted from the filesystem
{"session":{},"start":{"opNr":0,"timestamp":"2010-01-01T00:00:00Z","bootNr":0},"stop":{"opNr":0,"timestamp":"2010-01-01T00:00:00Z","bootNr":0}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions