Skip to content

Commit 9c6dfd2

Browse files
Handle IllegalReferenceCountException for decoder, while uploading ISO from local (apache#10879)
1 parent 714b04e commit 9c6dfd2

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Map;
2828
import java.util.Map.Entry;
2929

30+
import io.netty.util.IllegalReferenceCountException;
3031
import org.apache.cloudstack.storage.template.UploadEntity;
3132
import org.apache.cloudstack.utils.imagestore.ImageStoreUtil;
3233
import org.apache.commons.lang3.StringUtils;
@@ -229,8 +230,15 @@ public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Excep
229230
private void reset() {
230231
request = null;
231232
// destroy the decoder to release all resources
232-
decoder.destroy();
233-
decoder = null;
233+
if (decoder != null) {
234+
try {
235+
decoder.destroy();
236+
} catch (IllegalReferenceCountException e) {
237+
logger.warn("Decoder already destroyed", e);
238+
}
239+
240+
decoder = null;
241+
}
234242
}
235243

236244
private HttpResponseStatus readFileUploadData() throws IOException {

0 commit comments

Comments
 (0)