You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem:
--------
Auto sync of objects that fail due to temporary errors, such as
failed MDL acquisitions, are simply removed from the list of
detected objects. Such objects are then eligible for detection
in future cycles after which the synchronization is retried and
should hopefully succeed. This best-effort approach is suitable
for the default auto sync behaviour but isn't ideal when the
ndb_metadata_sync system variable is used.
The ndb_metadata_sync variable triggers synchronization of all
metadata; when synchronization is complete, the variable is
automatically set to false to indicate that this has been done.
If the temporary error persists for a sizable amount of time,
the metadata sync could take longer than expected and in extreme
cases could hang indefinitely pending user action. One such
case is when the ndb_restore tool is used to restore metadata
with the --disable-indexes option. The sync will enter a
vicious cycle of detection and failed sync attempts due to the
missing indexes until the indexes are rebuilt using ndb_restore.
Fix:
----
The object is blacklisted after it fails on 10 occasions with
temporary errors which ensures that the sync isn't stalled.
Objects whose sync has failed with temporary errors are
maintained in a list along with a count of the number of retries.
The list is validated during change detection in a similar manner
to the blacklist.
Change-Id: I5ec9dcbfe5610a7887966ae6d29bbcc1dbfe4da4
0 commit comments