diff options
author | vmallika <vmallika@redhat.com> | 2015-08-24 08:07:14 +0530 |
---|---|---|
committer | Krishnan Parthasarathi <kparthas@redhat.com> | 2015-08-28 04:43:04 -0700 |
commit | 7a27810aecce6e014100dbbc3c7961d769082c1e (patch) | |
tree | 4b84922bd8ad2b78a7039b773442203cd9c8fe7d /cli/src/cli.h | |
parent | 4ac8ba045215a103cbac825b2b70b571133c8ec4 (diff) |
cli: on error invoke cli_cmd_broadcast_response function in separate thread
There is a problem in current CLI framework
CLI holds the lock when processing command.
When processing quota list command, below sequence of steps executed in the
same thread and causing deadlock
1) CLI holds the lock
2) Send rpc_clnt_submit request to quotad for quota usage
3) If quotad is down, rpc_clnt_submit invokes cbk function with error
4) cbk function cli_quotad_getlimit_cbk tries to hold lock to broadcast
the results and hangs, because same thread has already holding the lock
This patch fixes the problem by creating seperate thread for
broadcasting the result
Change-Id: I53be006eadf6aaf348083d9168535530d70a8ab3
BUG: 1242819
Signed-off-by: vmallika <vmallika@redhat.com>
Reviewed-on: http://review.gluster.org/11990
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Diffstat (limited to 'cli/src/cli.h')
-rw-r--r-- | cli/src/cli.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/cli/src/cli.h b/cli/src/cli.h index 965ce3f9ee4..deadd2d0a5d 100644 --- a/cli/src/cli.h +++ b/cli/src/cli.h @@ -146,6 +146,7 @@ struct cli_local { xmlDocPtr doc; int vol_count; #endif + gf_lock_t lock; }; struct cli_volume_status { |