From 8ff610135061a87670d890f8a1c6409ae96981bc Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Fri, 16 May 2025 13:42:04 +0530 Subject: [PATCH] Handle IllegalReferenceCountException for decoder, while uploading ISO from local --- .../storage/resource/HttpUploadServerHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java index 9b1c81284f4f..73103c37660f 100644 --- a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java +++ b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Map.Entry; +import io.netty.util.IllegalReferenceCountException; import org.apache.cloudstack.storage.template.UploadEntity; import org.apache.cloudstack.utils.imagestore.ImageStoreUtil; import org.apache.commons.lang3.StringUtils; @@ -229,8 +230,15 @@ public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Excep private void reset() { request = null; // destroy the decoder to release all resources - decoder.destroy(); - decoder = null; + if (decoder != null) { + try { + decoder.destroy(); + } catch (IllegalReferenceCountException e) { + logger.warn("Decoder already destroyed", e); + } + + decoder = null; + } } private HttpResponseStatus readFileUploadData() throws IOException {