Whamcloud - gitweb
LU-4639 hsm: HSM requests not delivered 22/9422/5
authorJames Nunez <james.a.nunez@intel.com>
Tue, 25 Feb 2014 22:34:46 +0000 (15:34 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 4 Mar 2014 17:52:06 +0000 (17:52 +0000)
The total size of an HSM archive request may exceed the
desired (LNET) message. When this happens, it can hang
the client and not allow the archive request to succeed.

Before we know the total size of the hsm_action_items, we
need to limit the size of the reguest. Doing this limits
the number of items that can be sent in one archive request.
We’ve reduced the size allowed for the user archive request
to MDS_MAXREQSIZE/3.

sanity-hsm test 90 forms a list of files to archive. The
number of files in the list needed to be decreased to
match the limit described above.

Lustre-change: http://review.whamcloud.com/#/c/9393/
Lustre-commit: a23e0fe42f26cd54384058d927bcf42330174e7b

Change-Id: I84c36ba318a6ed424248a0567c33e824de3e8021
Signed-off-by: James Nunez <james.a.nunez@intel.com>
Reviewed-on: http://review.whamcloud.com/9422
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/llite/dir.c
lustre/tests/sanity-hsm.sh

index 9a4c11c..342a5b6 100644 (file)
@@ -1837,8 +1837,8 @@ out_rmdir:
                totalsize = hur_len(hur);
                OBD_FREE_PTR(hur);
 
-               /* Make sure the size is reasonable */
-               if (totalsize >= MDS_MAXREQSIZE)
+               /* Final size will be more than double totalsize */
+               if (totalsize >= MDS_MAXREQSIZE / 3)
                        RETURN(-E2BIG);
 
                OBD_ALLOC_LARGE(hur, totalsize);
index 1e66dc5..95513db 100755 (executable)
@@ -2560,8 +2560,8 @@ test_60() {
 run_test 60 "Changing progress update interval from default"
 
 test_90() {
-       file_count=57
-       mkdir -p $DIR/$tdir
+       file_count=51 # Max number of files constrained by LNET message size
+       mkdir $DIR/$tdir || error "mkdir $DIR/$tdir failed"
        local f=$DIR/$tdir/$tfile
        local FILELIST=/tmp/filelist.txt
        local i=""