This is an automated email from the ASF dual-hosted git repository. dimuthuupe pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/airavata-mft.git
commit db231ddc775e67dbab55d35ebaab539a5a79d3f4 Author: DImuthuUpe <[email protected]> AuthorDate: Wed Jun 28 20:15:43 2023 -0400 Terminating pending transfers if an exception was captured --- .../apache/airavata/mft/controller/MFTController.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/controller/src/main/java/org/apache/airavata/mft/controller/MFTController.java b/controller/src/main/java/org/apache/airavata/mft/controller/MFTController.java index eff5d04..110f6d2 100644 --- a/controller/src/main/java/org/apache/airavata/mft/controller/MFTController.java +++ b/controller/src/main/java/org/apache/airavata/mft/controller/MFTController.java @@ -304,17 +304,27 @@ public class MFTController implements CommandLineRunner { if (value.getValueAsString().isPresent()) { logger.debug("Pending " + value.getKey() + " : " + value.getValueAsString().get()); + String transferId = value.getKey().substring(value.getKey().lastIndexOf("/") + 1); try { TransferApiRequest.Builder builder = TransferApiRequest.newBuilder(); JsonFormat.parser().merge(value.getValueAsString().get(), builder); TransferApiRequest transferRequest = builder.build(); - - String transferId = value.getKey().substring(value.getKey().lastIndexOf("/") + 1); AgentTransferRequest.Builder agentTransferRequest = requestBuilder.prepareAgentTransferRequest(transferRequest); pathOptimizer.handleTransferRequest(transferId, transferRequest, agentTransferRequest, value.getKey()); } catch (Exception e) { - logger.error("Failed to process pending transfer in key {}", value.getKey(), e); + logger.error("Failed to process pending transfer in key {}. Deleting from queue", value.getKey(), e); + try { + mftConsulClient.saveTransferState(transferId, null, new TransferState() + .setUpdateTimeMils(System.currentTimeMillis()) + .setState("FAILED").setPercentage(0) + .setPublisher("controller") + .setDescription("Failed to process pending transfer ")); + mftConsulClient.getKvClient().deleteKey(value.getKey()); + } catch (Exception ex) { + logger.warn("Failed to update state of transfer {} to FAILED", transferId); + // Ignore + } } } });
