You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@sentry.apache.org by "Alexander Kolbasov (JIRA)" <ji...@apache.org> on 2016/09/07 23:11:20 UTC

[jira] [Created] (SENTRY-1462) UpdateForwarder handling of failed updates is boken

Alexander Kolbasov created SENTRY-1462:
------------------------------------------

             Summary: UpdateForwarder handling of failed updates is boken
                 Key: SENTRY-1462
                 URL: https://issues.apache.org/jira/browse/SENTRY-1462
             Project: Sentry
          Issue Type: Bug
          Components: Hdfs Plugin
    Affects Versions: 1.7.0, sentry-ha-redesign
            Reporter: Alexander Kolbasov
            Priority: Minor


The UpdateFollower class has the following logic:

{code}
  private void spawnInitialUpdater(final Updateable<K> updateable,
      final int initUpdateRetryDelay) {
    K firstFullImage = null;
    try {
      firstFullImage = imageRetreiver.retrieveFullImage(INIT_SEQ_NUM);
    } catch (Exception e) {
      LOGGER.warn("InitialUpdater encountered exception !! ", e);
      firstFullImage = null;
      Thread initUpdater = new Thread() {
        @Override
        public void run() {
           ...
           Retry logic here
        }
  ...
}
{code}

There is no synchronization with this retry thread. More over it isn't clear what is the benefit of such async recovery.

For example, later in the code, {code}handleUpdateNotification{} {code} accesses {code} updateable {code} field without checking whether it is null or not, but even if it would, we may get inconsistency due to async nature of updates.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)