This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch ranger-2.3 in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.3 by this push: new 2db9fe2 RANGER-3644: updated FileTagSource to retry when Ranger is not reachable 2db9fe2 is described below commit 2db9fe2ed461ba55b9be6948dd17b27cf5956b88 Author: Madhan Neethiraj <mad...@apache.org> AuthorDate: Thu Feb 24 20:48:49 2022 -0800 RANGER-3644: updated FileTagSource to retry when Ranger is not reachable (cherry picked from commit bf18c50f1c04e2a5319d0533c6707110b5b62092) --- .../ranger/tagsync/source/file/FileTagSource.java | 45 +++++++++------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/FileTagSource.java b/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/FileTagSource.java index 90adef2..8af15f9 100644 --- a/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/FileTagSource.java +++ b/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/FileTagSource.java @@ -51,7 +51,6 @@ public class FileTagSource extends AbstractTagSource implements Runnable { private Thread myThread = null; public static void main(String[] args) { - FileTagSource fileTagSource = new FileTagSource(); TagSyncConfig config = TagSyncConfig.getInstance(); @@ -100,7 +99,6 @@ public class FileTagSource extends AbstractTagSource implements Runnable { @Override public boolean initialize(Properties props) { - if (LOG.isDebugEnabled()) { LOG.debug("==> FileTagSource.initialize()"); } @@ -196,7 +194,6 @@ public class FileTagSource extends AbstractTagSource implements Runnable { @Override public boolean start() { - myThread = new Thread(this); myThread.setDaemon(true); myThread.start(); @@ -218,33 +215,31 @@ public class FileTagSource extends AbstractTagSource implements Runnable { } while (true) { - try { synchUp(); - + } catch (Exception e) { + LOG.error("Caught exception..", e); + } finally { LOG.debug("Sleeping for [" + fileModTimeCheckIntervalInMs + "] milliSeconds"); - Thread.sleep(fileModTimeCheckIntervalInMs); - } - catch (InterruptedException exception) { - LOG.error("Interrupted..: ", exception); - return; - } - catch (Exception e) { - LOG.error("Caught exception..", e); - return; + try { + Thread.sleep(fileModTimeCheckIntervalInMs); + } catch (InterruptedException exception) { + LOG.error("Interrupted..: ", exception); + + break; + } } } } private boolean isChanged() { - if (LOG.isDebugEnabled()) { LOG.debug("==> FileTagSource.isChanged()"); } - boolean ret = false; - long modificationTime = getModificationTime(); + boolean ret = false; + long modificationTime = getModificationTime(); if (modificationTime > lastModifiedTimeInMillis) { if (LOG.isDebugEnabled()) { @@ -252,7 +247,7 @@ public class FileTagSource extends AbstractTagSource implements Runnable { Date lastModifiedDate = new Date(lastModifiedTimeInMillis); LOG.debug("File modified at " + modifiedDate + "last-modified at " + lastModifiedDate); } - lastModifiedTimeInMillis = modificationTime; + ret = true; } @@ -269,12 +264,14 @@ public class FileTagSource extends AbstractTagSource implements Runnable { } ServiceTags serviceTags = readFromFile(); + updateSink(serviceTags); + lastModifiedTimeInMillis = getModificationTime(); + if (LOG.isDebugEnabled()) { LOG.debug("End: update tags from source==>sink"); } - } else { if (LOG.isDebugEnabled()) { LOG.debug("FileTagSource: no change found for synchronization."); @@ -282,7 +279,6 @@ public class FileTagSource extends AbstractTagSource implements Runnable { } } private ServiceTags readFromFile() { - if (LOG.isDebugEnabled()) { LOG.debug("==> FileTagSource.readFromFile(): sourceFileName=" + serviceTagsFileName); } @@ -290,13 +286,10 @@ public class FileTagSource extends AbstractTagSource implements Runnable { ServiceTags ret = null; if (serviceTagsFileURL != null) { - try ( - InputStream serviceTagsFileStream = serviceTagsFileURL.openStream(); - Reader reader = new InputStreamReader(serviceTagsFileStream, Charset.forName("UTF-8")) - ) { + try (InputStream inputStream = serviceTagsFileURL.openStream(); + Reader reader = new InputStreamReader(inputStream, Charset.forName("UTF-8"))) { ret = gsonBuilder.fromJson(reader, ServiceTags.class); - } catch (IOException e) { LOG.warn("Error processing input file: or no privilege for reading file " + serviceTagsFileName, e); } @@ -315,8 +308,8 @@ public class FileTagSource extends AbstractTagSource implements Runnable { if (LOG.isDebugEnabled()) { LOG.debug("==> FileTagSource.getLastModificationTime(): sourceFileName=" + serviceTagsFileName); } - long ret = 0L; + long ret = 0L; File sourceFile = new File(serviceTagsFileName); if (sourceFile.exists() && sourceFile.isFile() && sourceFile.canRead()) {