diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/jobscheduler/TIFSourceConfigRunner.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/jobscheduler/TIFSourceConfigRunner.java index 2b729f0f4..fc01bbad7 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/jobscheduler/TIFSourceConfigRunner.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/jobscheduler/TIFSourceConfigRunner.java @@ -107,10 +107,26 @@ protected Runnable retrieveLockAndUpdateConfig(final SATIFSourceConfig saTifSour ActionListener.wrap(lock -> { updateSourceConfigAndIOCs(saTifSourceConfig, lockService.getRenewLockRunnable(new AtomicReference<>(lock)), ActionListener.wrap( - r -> lockService.releaseLock(lock), + r -> { + lockService.releaseLockEventDriven(lock, ActionListener.wrap( + response -> { + log.debug("Released threat intel source config lock with id [{}]", lock.getLockId()); + }, + ex -> { + log.error(String.format("Unexpected failure while trying to release lock [%s] for tif source config [%s].", lock.getLockId(), saTifSourceConfig.getId()), ex); + } + )); + }, e -> { log.error("Failed to update threat intel source config " + saTifSourceConfig.getName(), e); - lockService.releaseLock(lock); + lockService.releaseLockEventDriven(lock, ActionListener.wrap( + response -> { + log.debug("Released threat intel source config lock with id [{}]", lock.getLockId()); + }, + ex -> { + log.error(String.format("Unexpected failure while trying to release lock [%s] for tif source config [%s].", lock.getLockId(), saTifSourceConfig.getId()), ex); + } + )); } )); }, e -> { diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigService.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigService.java index ed58e3371..bf5722a0f 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigService.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigService.java @@ -137,9 +137,17 @@ public void indexTIFSourceConfig(SATIFSourceConfig saTifSourceConfig, actionListener.onFailure(e); } }, exception -> { - lockService.releaseLock(lock); - log.error("Failed to release lock", exception); - actionListener.onFailure(exception); + log.error("Failed to create threat intel source config index", exception); + lockService.releaseLockEventDriven(lock, ActionListener.wrap( + r -> { + log.debug("Released threat intel source config lock with id [{}]", lock.getLockId()); + actionListener.onFailure(exception); + }, + ex -> { + log.error(String.format("Unexpected failure while trying to release lock [%s] for threat intel source config.", lock.getLockId()), ex); + actionListener.onFailure(exception); + } + )); }); createJobIndexIfNotExists(createIndexStepListener); } diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java index d12e4542e..ecdeaa683 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java @@ -107,12 +107,15 @@ private void retrieveLockAndCreateTIFConfig(SAIndexTIFSourceConfigRequest reques ActionListener.wrap( saTifSourceConfigDtoResponse -> { lockService.releaseLockEventDriven(lock, ActionListener.wrap( - r -> listener.onResponse(new SAIndexTIFSourceConfigResponse( - saTifSourceConfigDtoResponse.getId(), - saTifSourceConfigDtoResponse.getVersion(), - RestStatus.OK, - saTifSourceConfigDtoResponse - )), + r -> { + log.debug("Released threat intel source config lock with id [{}]", lock.getLockId()); + listener.onResponse(new SAIndexTIFSourceConfigResponse( + saTifSourceConfigDtoResponse.getId(), + saTifSourceConfigDtoResponse.getVersion(), + RestStatus.OK, + saTifSourceConfigDtoResponse + )); + }, e -> { log.error(String.format("Unexpected failure while trying to release lock [%s] for tif source config [%s].", lock.getLockId(), saTifSourceConfigDto.getId()), e); listener.onResponse(new SAIndexTIFSourceConfigResponse( @@ -124,15 +127,15 @@ private void retrieveLockAndCreateTIFConfig(SAIndexTIFSourceConfigRequest reques } )); }, e -> { + String action = RestRequest.Method.PUT.equals(request.getMethod()) ? "update" : "create"; + log.error(String.format("Failed to %s IOCs and threat intel source config", action), e); lockService.releaseLockEventDriven(lock, ActionListener.wrap( r -> { - log.error("Failed to create IOCs and threat intel source config", e); + log.debug("Released threat intel source config lock with id [{}]", lock.getLockId()); listener.onFailure(e); }, ex -> { - String action = RestRequest.Method.PUT.equals(request.getMethod()) ? "update" : "create"; - log.error(String.format("Failed to %s IOCs and threat intel source config", action), e); - log.error(String.format("Unexpected failure while trying to release lock [%s] for tif source config.", lock.getLockId()), e); + log.error(String.format("Unexpected failure while trying to release lock [%s] for tif source config.", lock.getLockId()), ex); listener.onFailure(e); } )); @@ -141,16 +144,15 @@ private void retrieveLockAndCreateTIFConfig(SAIndexTIFSourceConfigRequest reques ) ); } catch (Exception e) { - log.error("listener failed when executing", e); + String action = RestRequest.Method.PUT.equals(request.getMethod()) ? "update" : "create"; + log.error(String.format("Failed to %s IOCs and threat intel source config", action), e); lockService.releaseLockEventDriven(lock, ActionListener.wrap( r -> { - log.error("Failed to create IOCs and threat intel source config", e); + log.debug("Released threat intel source config lock with id [{}]", lock.getLockId()); listener.onFailure(e); }, ex -> { - String action = RestRequest.Method.PUT.equals(request.getMethod()) ? "update" : "create"; - log.error(String.format("Failed to %s IOCs and threat intel source config", action), e); - log.error(String.format("Unexpected failure while trying to release lock [%s] for tif source config.", lock.getLockId()), e); + log.error(String.format("Unexpected failure while trying to release lock [%s] for tif source config.", lock.getLockId()), ex); listener.onFailure(e); } ));