An invalid rev should lead to a 1200 ("conflict") error rather than a
1239 ("illegal document revision") error. This is more intuitive and
in line with the corresponding change in the HTTP API. No tests needed
adjustment.
this changes the server startup option `--database.check-30-revisions` from a boolean (true/false)
parameter to a string parameter with the following possible values:
- "fail":
will validate _rev values of 3.0 collections on collection loading and throw an exception when invalid _rev values are found.
in this case collections with invalid _rev values are marked as corrupted and cannot be used in the ArangoDB 3.1 instance.
the fix procedure for such collections is to export the collections from 3.0 database with arangodump and restore them in 3.1 with arangorestore.
collections that do not contain invalid _rev values are marked as ok and will not be re-checked on following loads.
collections that contain invalid _rev values will be re-checked on following loads.
- "true":
will validate _rev values of 3.0 collections on collection loading and print a warning when invalid _rev values are found.
in this case collections with invalid _rev values can be used in the ArangoDB 3.1 instance.
however, subsequent operations on documents with invalid _rev values may silently fail or fail with explicit errors.
the fix procedure for such collections is to export the collections from 3.0 database with arangodump and restore them in 3.1 with arangorestore.
collections that do not contain invalid _rev values are marked as ok and will not be re-checked on following loads.
collections that contain invalid _rev values will be re-checked on following loads.
- "false":
will not validate _rev values on collection loading and not print warnings.
no hint is given when invalid _rev values are found.
subsequent operations on documents with invalid _rev values may silently fail or fail with explicit errors.
this setting does not affect whether collections are re-checked later.
collections will be re-checked on following loads if `--database.check-30-revisions` is later set to either `true` or `fail`.
The change also suppresses warnings that were printed when collections were restored using arangorestore, and the restore
data contained invalid _rev values. Now these warnings are suppressed, and new HLC _rev values are generated for these documents
as before.