handling tcp close event in netty server

while the file is in uploading state and connection is reset by peer,
volume upload request posted again shows the upload is IN_Progress
state. marking them as errored


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6b8b4b92
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6b8b4b92
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6b8b4b92

Branch: refs/heads/master
Commit: 6b8b4b92e6d5ec36d4b976e81083f72ae17245a3
Parents: 7d1ca8a
Author: Rajani Karuturi <rajanikarut...@gmail.com>
Authored: Tue Mar 17 15:17:33 2015 +0530
Committer: Rajani Karuturi <rajanikarut...@gmail.com>
Committed: Tue Mar 17 15:21:25 2015 +0530

----------------------------------------------------------------------
 .../cloudstack/storage/resource/HttpUploadServerHandler.java  | 7 +++++++
 .../storage/resource/NfsSecondaryStorageResource.java         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b8b4b92/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java
----------------------------------------------------------------------
diff --git 
a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java
 
b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java
index 7a17ef1..0caee32 100644
--- 
a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java
+++ 
b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/HttpUploadServerHandler.java
@@ -95,6 +95,13 @@ public class HttpUploadServerHandler extends 
SimpleChannelInboundHandler<HttpObj
     }
 
     @Override
+    public void channelInactive(ChannelHandlerContext ctx) throws Exception {
+        String message = "file receive failed or connection closed 
prematurely.";
+        logger.error(message);
+        storageResource.updateStateMapWithError(uuid, message);
+    }
+
+    @Override
     public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws 
Exception {
         if (msg instanceof HttpRequest) {
             HttpRequest request = this.request = (HttpRequest) msg;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b8b4b92/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
----------------------------------------------------------------------
diff --git 
a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
 
b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
index d10242c..1bce4a0 100755
--- 
a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
+++ 
b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
@@ -2774,7 +2774,7 @@ public class NfsSecondaryStorageResource extends 
ServerResourceBase implements S
         return _ssvmPSK;
     }
 
-    private void updateStateMapWithError(String uuid,String errorMessage) {
+    public void updateStateMapWithError(String uuid,String errorMessage) {
         UploadEntity uploadEntity=null;
         if (uploadEntityStateMap.get(uuid)!=null) {
             uploadEntity=uploadEntityStateMap.get(uuid);

Reply via email to