Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-702

RWStore does not discard logged deletes on reset()

    Details

    • Type: Bug
    • Status: Done
    • Resolution: Done
    • Affects Version/s: BIGDATA_RELEASE_1_2_1
    • Fix Version/s: None
    • Component/s: RWStore

      Description

      The RWStore when operating in its "recycler" mode logs the addresses of deleted records on "delete blocks" and defers the recycling of those addresses until a commit point in which the commit point in which the requested delete is no longer visible.

      There is a bug in RWStore.reset() (all versions) where the RWStore fails to discard the PSOutputStream used to log those addresses. If the same delete operation is then retried (following a reset), this results in an attempt to double-delete a given address. That causes an IllegalAddressException when the delete of the address is processed the second time.

      This bug can prevent an RWStore instance whose data is otherwise coherent from being able to process new writes.

        Activity

        Hide
        bryanthompson bryanthompson added a comment -

        Added the following to RWStore.reset() in order to discard the logged deletes.

        @see https://sourceforge.net/apps/trac/bigdata/ticket/602 (RWStore does not discard logged deletes on reset())

        Committed revision r6577.

        Show
        bryanthompson bryanthompson added a comment - Added the following to RWStore.reset() in order to discard the logged deletes. @see https://sourceforge.net/apps/trac/bigdata/ticket/602 (RWStore does not discard logged deletes on reset()) Committed revision r6577.
        Hide
        bryanthompson bryanthompson added a comment -

        I have written a unit test to verify that the bug described in in this ticket does in fact exist. I have also verified that the already committed fix permits the test to pass. This issue would appear to be resolved.

        Show
        bryanthompson bryanthompson added a comment - I have written a unit test to verify that the bug described in in this ticket does in fact exist. I have also verified that the already committed fix permits the test to pass. This issue would appear to be resolved.
        Hide
        bryanthompson bryanthompson added a comment -

        This fix has been incorporated into the critical maintenance release 1.2.2. See [1]

        [1] https://sourceforge.net/apps/trac/bigdata/ticket/603 (Prepare critical maintenance release as branch of 1.2.1)

        Show
        bryanthompson bryanthompson added a comment - This fix has been incorporated into the critical maintenance release 1.2.2. See [1] [1] https://sourceforge.net/apps/trac/bigdata/ticket/603 (Prepare critical maintenance release as branch of 1.2.1)

          People

          • Assignee:
            martyncutcher martyncutcher
            Reporter:
            bryanthompson bryanthompson
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: