Rollback after creating ClassIndex entry may leave unsafe state

Bug #1026207 reported by Peter Beaman on 2012-07-18
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Akiban Persistit
Critical
Peter Beaman

Bug Description

This bug was detected while investigating https://bugs.launchpad.net/akiban-persistit/+bug/1024857.

ClassIndex is responsible for associating an int-valued handle with a Class. To create a new handle-Class pair, it inserts records into a Tree in the system volume. This is done within the scope of a Transaction. Code such as

    exchange.getValue().put(rowData)

could invoke ClassIndex to write the hande-Class pair for RowData.class, for example. Further, that code could be embedded in a transaction that subsequently rolls back.

In that case, the update to the system volume never occurs, and when Persistit shuts down and restarts the association between the handle, which may now be used to identify the class for many records in the database, has been lost.

Related branches

Peter Beaman (pbeaman) on 2012-07-18
security vulnerability: yes → no
visibility: private → public
Changed in akiban-persistit:
milestone: none → 3.1.3
assignee: nobody → Peter Beaman (pbeaman)
Peter Beaman (pbeaman) on 2012-07-19
Changed in akiban-persistit:
status: Confirmed → Fix Committed
Peter Beaman (pbeaman) on 2012-07-23
Changed in akiban-persistit:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers