From b9cf669a99963742ab2fcc3e5acbbd66e1f484a5 Mon Sep 17 00:00:00 2001 From: James Nunez Date: Tue, 25 Feb 2014 15:34:46 -0700 Subject: [PATCH] LU-4639 hsm: HSM requests not delivered MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-on: http://review.whamcloud.com/9422 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: John L. Hammond Reviewed-by: Jinshan Xiong Reviewed-by: Oleg Drokin --- lustre/llite/dir.c | 4 ++-- lustre/tests/sanity-hsm.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c index 9a4c11c..342a5b6 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -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); diff --git a/lustre/tests/sanity-hsm.sh b/lustre/tests/sanity-hsm.sh index 1e66dc5..95513db 100755 --- a/lustre/tests/sanity-hsm.sh +++ b/lustre/tests/sanity-hsm.sh @@ -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="" -- 1.8.3.1