diff options
author | Varun Shastry <vshastry@redhat.com> | 2013-03-14 18:56:18 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-03-19 10:29:59 -0700 |
commit | e43c8fe9ee9e782ebed8aafdb15310edde587ba0 (patch) | |
tree | 67636db1b1c2ce344ec5a018db25d5cf444ad557 | |
parent | c1cc0e96c77937ba88af9acca039bb4ff81cd64f (diff) |
mgmt/glusterd: Start fs-crawl in separate thread so as not to block epoll
tests/basic/quota.t covers test case for this.
Patch is only for 3.4 branch, http://review.gluster.org/4495 fixes the issue
in master.
Change-Id: I92674f5413441cc896245d5b3d0925f44ce8b2d3
BUG: 919998
Signed-off-by: Varun Shastry <vshastry@redhat.com>
Reviewed-on: http://review.gluster.org/4680
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
-rwxr-xr-x | tests/basic/quota.t | 51 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-quota.c | 6 |
2 files changed, 53 insertions, 4 deletions
diff --git a/tests/basic/quota.t b/tests/basic/quota.t new file mode 100755 index 00000000000..ef015a30d92 --- /dev/null +++ b/tests/basic/quota.t @@ -0,0 +1,51 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume info; + +TEST $CLI volume create $V0 replica 2 stripe 2 $H0:$B0/${V0}{1,2,3,4,5,6,7,8}; + +function limit_on() +{ + local QUOTA_PATH=$1; + $CLI volume quota $V0 list | grep "$QUOTA_PATH" | awk '{print $2}' +} + +EXPECT "$V0" volinfo_field $V0 'Volume Name'; +EXPECT 'Created' volinfo_field $V0 'Status'; +EXPECT '8' brick_count $V0 + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +## ------------------------------ +## Verify quota commands +## ------------------------------ +TEST $CLI volume quota $V0 enable + +TEST $CLI volume quota $V0 limit-usage /test_dir 100MB + +TEST $CLI volume quota $V0 limit-usage /test_dir/in_test_dir 150MB + +EXPECT "150MB" limit_on "/test_dir/in_test_dir"; + +TEST $CLI volume quota $V0 remove /test_dir/in_test_dir + +EXPECT "100MB" limit_on "/test_dir"; + +TEST $CLI volume quota $V0 disable +## ------------------------------ + +TEST $CLI volume stop $V0; +EXPECT 'Stopped' volinfo_field $V0 'Status'; + +TEST $CLI volume delete $V0; +TEST ! $CLI volume info $V0; + +cleanup; diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c index 09c4273df4a..28ab16d22a7 100644 --- a/xlators/mgmt/glusterd/src/glusterd-quota.c +++ b/xlators/mgmt/glusterd/src/glusterd-quota.c @@ -260,13 +260,11 @@ glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv, char *volname) "-l", DEFAULT_LOG_FILE_DIRECTORY"/quota-crawl.log", mountdir, NULL); - ret = runner_run_reuse (&runner); + ret = runner_run_nowait (&runner); if (ret == -1) { - runner_log (&runner, "glusterd", GF_LOG_DEBUG, "command failed"); - runner_end (&runner); + gf_log ("glusterd", GF_LOG_ERROR, "Failed to start fs-crawl"); goto out; } - runner_end (&runner); if ((pid = fork ()) < 0) { gf_log ("glusterd", GF_LOG_WARNING, "fork from parent failed"); |