Feature #1496

Integrate extended recovery features

Added by J. Moringen almost 11 years ago. Updated over 10 years ago.

Status:ResolvedStart date:05/10/2013
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:TIDELog Backend
Target version:Robotics Service Bus - rsb-0.9

Associated revisions

Revision 9659f2c5
Added by J. Moringen almost 11 years ago

Added test for recovering from missing index in CMakeLists.txt

refs #1496

  • CMakeLists.txt: store TIDELog files into new variables {VALID,RECOVERABLE}_TIDE_FILES; use these variables in test to
    decide where error recovery is necessary; adapted to renamed files
  • test/data/*/*.tide: renamed files; added prefix "valid-" for valid
    files and prefix "recoverable-" for files with recoverable errors
  • test/data/0.9/recoverable-missing-index.tide: new file; test data
    for recovering from missing index

Revision 7fc1a907
Added by J. Moringen almost 11 years ago

Extended error recovery in TIDELog backend

refs #1496

  • src/backend/tidelog/repair.lisp: new file; contains functions for
    rebuilding missing or damaged indices
  • src/backend/tidelog/util.lisp (read-chunk-of-length): allow
    continuing with incomplete block via `continue' restart after short
    read
  • src/backend/tidelog/generator.lisp (type-spec->deserializer):
    generate a `continue' with allow continuing without reading a
    complete sequence of records
  • src/backend/tidelog/io.lisp (scan stream eql :tide): allow ignore
    the remainder of a stream's content via a `continue' restart
    (unpack stream eql :block-header): signal error with more
    descriptive report
    (unpack stream eql :block): check whether the block is within the
    bounds of the file; allow trying to read it anyway via `continue'
    restart
  • src/backend/tidelog/file.lisp (shared-initialize :after file): when
    chunks are read but no index, signal an error and allow to continue
    by regenerating indices
  • cl-rsbag.asd (system cl-rsbag-tidelog): added file
    src/backend/tidelog/repair.lisp

History

#1 Updated by J. Moringen almost 11 years ago

  • % Done changed from 70 to 90

#2 Updated by J. Moringen over 10 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

Recovery from different kinds of problems, most importantly missing indices and incomplete chunks, is implemented and tested automatically.

Also available in: Atom PDF