ovsdb: Truncate bad transactions from database log.
authorBen Pfaff <blp@nicira.com>
Mon, 28 Mar 2011 20:05:40 +0000 (13:05 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 31 Mar 2011 23:43:51 +0000 (16:43 -0700)
commit43675e260ccc26f8278fd751436af125a18bee38
tree6ba7ab63484f5f0c9e2c07191ba6371c24cb750d
parentdb90b3742c578681ad7ba5ccc5ec4e45a314496e
ovsdb: Truncate bad transactions from database log.

When ovsdb-server reads a database file that is corrupted at the
transaction level (that is, the transaction is valid JSON and has the
correct SHA-1 hash, but it does not describe a valid database transaction),
then ovsdb-server should truncate it and overwrite it by valid
transactions.  However, until now, it didn't.  Instead, it would keep the
invalid transaction and possibly every transaction in the database file
(depending on in what way the transaction was invalid), which would just
cause the same trouble again the next time the database was read.

This fixes the problem.  An invalid transaction will be deleted from the
database file at the first write to the database.

Bug #5144.
Bug #5149.
ovsdb/file.c
ovsdb/log.c
ovsdb/log.h
tests/ovsdb-server.at