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)