From 4809b63dae68fdb2d41f4310696915179b90aeef 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. Signed-off-by: James Nunez Change-Id: I3c19851b7fedf62854a5a1b4a8f27b9c49d8b313 Reviewed-on: http://review.whamcloud.com/9393 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 5775cc8..5e8b891 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -1643,8 +1643,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 efb42ea0..8a1d167 100755 --- a/lustre/tests/sanity-hsm.sh +++ b/lustre/tests/sanity-hsm.sh @@ -2598,8 +2598,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