summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cli/src/cli.c3
-rw-r--r--glusterfsd/src/Makefile.am2
-rw-r--r--glusterfsd/src/glusterfsd-common.h30
-rw-r--r--glusterfsd/src/glusterfsd-mgmt.c16
-rw-r--r--glusterfsd/src/glusterfsd.c188
-rw-r--r--glusterfsd/src/glusterfsd.h55
-rw-r--r--libglusterfs/src/globals.c82
-rw-r--r--libglusterfs/src/globals.h6
-rw-r--r--libglusterfs/src/glusterfs.h7
-rw-r--r--libglusterfs/src/logging.c104
-rw-r--r--rpc/rpc-lib/src/rpc-transport.c22
-rw-r--r--xlators/mount/fuse/src/Makefile.am2
-rw-r--r--xlators/mount/fuse/src/fuse-bridge.h1
13 files changed, 188 insertions, 330 deletions
diff --git a/cli/src/cli.c b/cli/src/cli.c
index ef88d0420..d6c801967 100644
--- a/cli/src/cli.c
+++ b/cli/src/cli.c
@@ -247,8 +247,7 @@ logging_init (glusterfs_ctx_t *ctx)
cmd_args = &ctx->cmd_args;
if (gf_log_init (cmd_args->log_file) == -1) {
- fprintf (stderr,
- "failed to open logfile %s. exiting\n",
+ fprintf (stderr, "ERROR: failed to open logfile %s\n",
cmd_args->log_file);
return -1;
}
diff --git a/glusterfsd/src/Makefile.am b/glusterfsd/src/Makefile.am
index 8cfe4b554..537eda0bb 100644
--- a/glusterfsd/src/Makefile.am
+++ b/glusterfsd/src/Makefile.am
@@ -9,7 +9,7 @@ glusterfsd_LDADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
$(top_builddir)/rpc/xdr/src/libgfxdr.la \
$(GF_LDADD)
glusterfsd_LDFLAGS = $(GF_LDFLAGS) $(GF_GLUSTERFS_LDFLAGS)
-noinst_HEADERS = glusterfsd.h glusterfsd-common.h glusterfsd-mem-types.h
+noinst_HEADERS = glusterfsd.h glusterfsd-mem-types.h
AM_CFLAGS = -fPIC -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D$(GF_HOST_OS)\
-I$(top_srcdir)/libglusterfs/src -DDATADIR=\"$(localstatedir)\" \
diff --git a/glusterfsd/src/glusterfsd-common.h b/glusterfsd/src/glusterfsd-common.h
deleted file mode 100644
index a463f15ad..000000000
--- a/glusterfsd/src/glusterfsd-common.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- Copyright (c) 2006-2010 Gluster, Inc. <http://www.gluster.com>
- This file is part of GlusterFS.
-
- GlusterFS is free software; you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published
- by the Free Software Foundation; either version 3 of the License,
- or (at your option) any later version.
-
- GlusterFS is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see
- <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef __GLUSTERFSD_COMMON_H__
-#define __GLUSTERFSD_COMMON_H__
-
-#define ZR_MOUNTPOINT_OPT "mountpoint"
-#define ZR_ATTR_TIMEOUT_OPT "attribute-timeout"
-#define ZR_ENTRY_TIMEOUT_OPT "entry-timeout"
-#define ZR_DIRECT_IO_OPT "direct-io-mode"
-#define ZR_STRICT_VOLFILE_CHECK "strict-volfile-check"
-#define ZR_DUMP_FUSE "dump-fuse"
-
-#endif
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c
index 86bd482f7..77b18e972 100644
--- a/glusterfsd/src/glusterfsd-mgmt.c
+++ b/glusterfsd/src/glusterfsd-mgmt.c
@@ -425,6 +425,7 @@ mgmt_submit_request (void *req, call_frame_t *frame,
if (req && sfunc) {
ret = sfunc (iov, req);
if (ret == -1) {
+ gf_log ("", GF_LOG_WARNING, "failed to create XDR payload");
goto out;
}
iov.iov_len = ret;
@@ -617,7 +618,7 @@ mgmt_getspec_cbk (struct rpc_req *req, struct iovec *iov, int count,
ret = xdr_to_getspec_rsp (*iov, &rsp);
if (ret < 0) {
- gf_log (frame->this->name, GF_LOG_ERROR, "error");
+ gf_log (frame->this->name, GF_LOG_ERROR, "XDR decoding error");
ret = -1;
goto out;
}
@@ -872,16 +873,21 @@ glusterfs_mgmt_init (glusterfs_ctx_t *ctx)
rpc = rpc_clnt_new (options, THIS->ctx, THIS->name);
if (!rpc) {
ret = -1;
+ gf_log ("", GF_LOG_WARNING, "failed to create rpc clnt");
goto out;
}
ret = rpc_clnt_register_notify (rpc, mgmt_rpc_notify, THIS);
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_WARNING, "failed to register notify function");
goto out;
+ }
ret = rpcclnt_cbk_program_register (rpc, &mgmt_cbk_prog);
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_WARNING, "failed to register callback function");
goto out;
+ }
ret = rpc_clnt_start (rpc);
if (ret)
@@ -910,7 +916,7 @@ mgmt_pmap_signin_cbk (struct rpc_req *req, struct iovec *iov, int count,
ret = xdr_to_pmap_signin_rsp (*iov, &rsp);
if (ret < 0) {
- gf_log (frame->this->name, GF_LOG_ERROR, "error");
+ gf_log (frame->this->name, GF_LOG_ERROR, "XDR decode error");
rsp.op_ret = -1;
rsp.op_errno = EINVAL;
goto out;
@@ -976,7 +982,7 @@ mgmt_pmap_signout_cbk (struct rpc_req *req, struct iovec *iov, int count,
ctx = glusterfs_ctx_get ();
ret = xdr_to_pmap_signout_rsp (*iov, &rsp);
if (ret < 0) {
- gf_log ("", GF_LOG_ERROR, "error");
+ gf_log ("", GF_LOG_ERROR, "XDR decoding failed");
rsp.op_ret = -1;
rsp.op_errno = EINVAL;
goto out;
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index 253b6b839..d784e0d87 100644
--- a/glusterfsd/src/glusterfsd.c
+++ b/glusterfsd/src/glusterfsd.c
@@ -111,8 +111,6 @@ static struct argp_option gf_options[] = {
"File to use as VOLUME_FILE"},
{"spec-file", ARGP_VOLUME_FILE_KEY, "VOLFILE", OPTION_HIDDEN,
"File to use as VOLUME FILE"},
- {"log-server", ARGP_LOG_SERVER_KEY, "LOGSERVER", 0,
- "Server to use as the central log server"},
{"log-level", ARGP_LOG_LEVEL_KEY, "LOGLEVEL", 0,
"Logging severity. Valid options are DEBUG, NORMAL, WARNING, ERROR, "
@@ -129,8 +127,6 @@ static struct argp_option gf_options[] = {
"Transport type to get volfile from server [default: socket]"},
{"volfile-id", ARGP_VOLFILE_ID_KEY, "KEY", 0,
"'key' of the volfile to be fetched from server"},
- {"log-server-port", ARGP_LOG_SERVER_PORT_KEY, "PORT", 0,
- "Listening port number of log server"},
{"pid-file", ARGP_PID_FILE_KEY, "PIDFILE", 0,
"File to use as pid file"},
{"socket-file", ARGP_SOCK_FILE_KEY, "SOCKFILE", 0,
@@ -200,8 +196,11 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
cmd_args = &ctx->cmd_args;
- if (!cmd_args->mount_point)
+ if (!cmd_args->mount_point) {
+ gf_log ("", GF_LOG_TRACE,
+ "mount point not found, not a client process");
return 0;
+ }
master = GF_CALLOC (1, sizeof (*master),
gfd_mt_xlator_t);
@@ -221,6 +220,8 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
master->ctx = ctx;
master->options = get_new_dict ();
+ if (!master->options)
+ goto err;
ret = dict_set_static_ptr (master->options, ZR_MOUNTPOINT_OPT,
cmd_args->mount_point);
@@ -236,7 +237,8 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
if (ret < 0) {
gf_log ("glusterfsd", GF_LOG_ERROR,
- "failed to set dict value.");
+ "failed to set dict value for key %s",
+ ZR_ATTR_TIMEOUT_OPT);
goto err;
}
}
@@ -246,7 +248,8 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
cmd_args->fuse_entry_timeout);
if (ret < 0) {
gf_log ("glusterfsd", GF_LOG_ERROR,
- "failed to set dict value.");
+ "failed to set dict value for key %s",
+ ZR_ENTRY_TIMEOUT_OPT);
goto err;
}
}
@@ -256,7 +259,8 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
cmd_args->client_pid);
if (ret < 0) {
gf_log ("glusterfsd", GF_LOG_ERROR,
- "failed to set dict value.");
+ "failed to set dict value for key %s",
+ "client-pid");
goto err;
}
}
@@ -266,7 +270,8 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
cmd_args->volfile_check);
if (ret < 0) {
gf_log ("glusterfsd", GF_LOG_ERROR,
- "failed to set dict value.");
+ "failed to set dict value for key %s",
+ ZR_STRICT_VOLFILE_CHECK);
goto err;
}
}
@@ -276,7 +281,8 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
cmd_args->dump_fuse);
if (ret < 0) {
gf_log ("glusterfsd", GF_LOG_ERROR,
- "failed to set dict value.");
+ "failed to set dict value for key %s",
+ ZR_DUMP_FUSE);
goto err;
}
}
@@ -287,7 +293,8 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
"disable");
if (ret < 0) {
gf_log ("glusterfsd", GF_LOG_ERROR,
- "failed to set dict value.");
+ "failed to set 'disable' for key %s",
+ ZR_DIRECT_IO_OPT);
goto err;
}
break;
@@ -296,18 +303,23 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
"enable");
if (ret < 0) {
gf_log ("glusterfsd", GF_LOG_ERROR,
- "failed to set dict value.");
+ "failed to set 'enable' for key %s",
+ ZR_DIRECT_IO_OPT);
goto err;
}
break;
case GF_OPTION_DEFERRED: /* default */
default:
+ gf_log ("", GF_LOG_DEBUG, "fuse direct io type %d",
+ cmd_args->fuse_direct_io_mode);
break;
}
ret = xlator_init (master);
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_DEBUG, "failed to initialize fuse translator");
goto err;
+ }
ctx->master = master;
@@ -375,16 +387,25 @@ gf_remember_xlator_option (struct list_head *options, char *arg)
INIT_LIST_HEAD (&option->cmd_args);
dot = strchr (arg, '.');
- if (!dot)
+ if (!dot) {
+ gf_log ("", GF_LOG_WARNING,
+ "xlator option %s is invalid", arg);
goto out;
+ }
option->volume = GF_CALLOC ((dot - arg) + 1, sizeof (char),
gfd_mt_char);
+ if (!option->volume)
+ goto out;
+
strncpy (option->volume, arg, (dot - arg));
equals = strchr (arg, '=');
- if (!equals)
+ if (!equals) {
+ gf_log ("", GF_LOG_WARNING,
+ "xlator option %s is invalid", arg);
goto out;
+ }
option->key = GF_CALLOC ((equals - dot) + 1, sizeof (char),
gfd_mt_char);
@@ -393,8 +414,11 @@ gf_remember_xlator_option (struct list_head *options, char *arg)
strncpy (option->key, dot + 1, (equals - dot - 1));
- if (!*(equals + 1))
+ if (!*(equals + 1)) {
+ gf_log ("", GF_LOG_WARNING,
+ "xlator option %s is invalid", arg);
goto out;
+ }
option->value = gf_strdup (equals + 1);
@@ -488,13 +512,6 @@ parse_opts (int key, char *arg, struct argp_state *state)
break;
- case ARGP_LOG_SERVER_KEY:
- if (cmd_args->log_server)
- GF_FREE (cmd_args->log_server);
-
- cmd_args->log_server = gf_strdup (arg);
- break;
-
case ARGP_LOG_LEVEL_KEY:
if (strcasecmp (arg, ARGP_LOG_LEVEL_NONE_OPTION) == 0) {
cmd_args->log_level = GF_LOG_NONE;
@@ -544,18 +561,6 @@ parse_opts (int key, char *arg, struct argp_state *state)
"unknown volfile server port %s", arg);
break;
- case ARGP_LOG_SERVER_PORT_KEY:
- n = 0;
-
- if (gf_string2uint_base10 (arg, &n) == 0) {
- cmd_args->log_server_port = n;
- break;
- }
-
- argp_failure (state, -1, 0,
- "unknown log server port %s", arg);
- break;
-
case ARGP_VOLFILE_SERVER_TRANSPORT_KEY:
cmd_args->volfile_server_transport = gf_strdup (arg);
break;
@@ -642,7 +647,9 @@ parse_opts (int key, char *arg, struct argp_state *state)
break;
case ARGP_XLATOR_OPTION_KEY:
- gf_remember_xlator_option (&cmd_args->xlator_options, arg);
+ if (gf_remember_xlator_option (&cmd_args->xlator_options, arg))
+ argp_failure (state, -1, 0, "invalid xlator option %s", arg);
+
break;
case ARGP_KEY_NO_ARGS:
@@ -686,9 +693,12 @@ cleanup_and_exit (int signum)
ctx = glusterfs_ctx_get ();
- /* TODO: is this the right place? */
if (!ctx)
return;
+
+ gf_log_callingfn ("", GF_LOG_WARNING,
+ "received signum (%d), shutting down", signum);
+
if (ctx->cleanup_started)
return;
@@ -707,8 +717,6 @@ cleanup_and_exit (int signum)
trav->fini (trav);
}
- gf_log ("glusterfsd", GF_LOG_NORMAL, "shutting down");
-
glusterfs_pidfile_cleanup (ctx);
exit (0);
@@ -742,24 +750,23 @@ reincarnate (int signum)
ctx = glusterfs_ctx_get ();
cmd_args = &ctx->cmd_args;
-
if (cmd_args->volfile_server) {
- gf_log ("glusterfsd", GF_LOG_NORMAL,
+ gf_log ("glusterfsd", GF_LOG_INFO,
"Fetching the volume file from server...");
ret = glusterfs_volfile_fetch (ctx);
} else {
- gf_log ("glusterfsd", GF_LOG_NORMAL,
+ gf_log ("glusterfsd", GF_LOG_INFO,
"Reloading volfile ...");
ret = glusterfs_volumes_init (ctx);
}
+ /* Also, SIGHUP should do logroate */
+ gf_log_logrotate (1);
+
if (ret < 0)
gf_log ("glusterfsd", GF_LOG_ERROR,
"volume initialization failed.");
- /* Also, SIGHUP should do logroate */
- gf_log_logrotate (1);
-
return;
}
@@ -845,10 +852,6 @@ set_log_file_path (cmd_args_t *cmd_args)
ret = gf_asprintf (&cmd_args->log_file,
DEFAULT_LOG_FILE_DIRECTORY "/%s.log",
tmp_str);
- if (ret == -1) {
- gf_log ("glusterfsd", GF_LOG_ERROR,
- "asprintf failed while setting up log-file");
- }
goto done;
}
@@ -865,10 +868,6 @@ set_log_file_path (cmd_args_t *cmd_args)
ret = gf_asprintf (&cmd_args->log_file,
DEFAULT_LOG_FILE_DIRECTORY "/%s.log",
tmp_str);
- if (ret == -1) {
- gf_log ("glusterfsd", GF_LOG_ERROR,
- "asprintf failed while setting up log-file");
- }
goto done;
}
@@ -884,10 +883,6 @@ set_log_file_path (cmd_args_t *cmd_args)
ret = gf_asprintf (&cmd_args->log_file,
DEFAULT_LOG_FILE_DIRECTORY "/%s-%s-%d.log",
cmd_args->volfile_server, tmp_ptr, port);
- if (-1 == ret) {
- gf_log ("glusterfsd", GF_LOG_ERROR,
- "asprintf failed while setting up log-file");
- }
}
done:
return ret;
@@ -904,39 +899,59 @@ glusterfs_ctx_defaults_init (glusterfs_ctx_t *ctx)
xlator_mem_acct_init (THIS, gfd_mt_end);
ctx->process_uuid = generate_uuid ();
- if (!ctx->process_uuid)
+ if (!ctx->process_uuid) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs uuid generation failed");
return -1;
+ }
ctx->page_size = 128 * GF_UNIT_KB;
ctx->iobuf_pool = iobuf_pool_new (8 * GF_UNIT_MB, ctx->page_size);
- if (!ctx->iobuf_pool)
+ if (!ctx->iobuf_pool) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs iobuf pool creation failed");
return -1;
+ }
ctx->event_pool = event_pool_new (DEFAULT_EVENT_POOL_SIZE);
- if (!ctx->event_pool)
+ if (!ctx->event_pool) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs event pool creation failed");
return -1;
+ }
pool = GF_CALLOC (1, sizeof (call_pool_t),
gfd_mt_call_pool_t);
- if (!pool)
+ if (!pool) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs call pool creation failed");
return -1;
+ }
/* frame_mem_pool size 112 * 16k */
pool->frame_mem_pool = mem_pool_new (call_frame_t, 16384);
- if (!pool->frame_mem_pool)
+ if (!pool->frame_mem_pool) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs frame pool creation failed");
return -1;
-
+ }
/* stack_mem_pool size 256 * 8k */
pool->stack_mem_pool = mem_pool_new (call_stack_t, 8192);
- if (!pool->stack_mem_pool)
+ if (!pool->stack_mem_pool) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs stack pool creation failed");
return -1;
+ }
ctx->stub_mem_pool = mem_pool_new (call_stub_t, 1024);
- if (!ctx->stub_mem_pool)
+ if (!ctx->stub_mem_pool) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs stub pool creation failed");
return -1;
+ }
INIT_LIST_HEAD (&pool->all_frames);
LOCK_INIT (&pool->lock);
@@ -982,15 +997,13 @@ logging_init (glusterfs_ctx_t *ctx)
if (cmd_args->log_file == NULL) {
ret = set_log_file_path (cmd_args);
if (ret == -1) {
- fprintf (stderr, "failed to set the log file path.. "
- "exiting\n");
+ fprintf (stderr, "ERROR: failed to set the log file path\n");
return -1;
}
}
if (gf_log_init (cmd_args->log_file) == -1) {
- fprintf (stderr,
- "failed to open logfile %s. exiting\n",
+ fprintf (stderr, "ERROR: failed to open logfile %s\n",
cmd_args->log_file);
return -1;
}
@@ -1059,7 +1072,7 @@ parse_cmdline (int argc, char *argv[], glusterfs_ctx_t *ctx)
ret = sys_symlink (tmp_logfilebase,
cmd_args->log_file);
if (ret == -1) {
- fprintf (stderr, "symlink of logfile failed");
+ fprintf (stderr, "ERROR: symlink of logfile failed\n");
} else {
GF_FREE (cmd_args->log_file);
cmd_args->log_file = gf_strdup (tmp_logfile);
@@ -1267,8 +1280,12 @@ glusterfs_signals_setup (glusterfs_ctx_t *ctx)
sigaddset (&set, SIGUSR2); /* gf_latency_toggle */
ret = pthread_sigmask (SIG_BLOCK, &set, NULL);
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_WARNING,
+ "failed to execute pthread_signmask %s",
+ strerror (errno));
return ret;
+ }
ret = pthread_create (&ctx->sigwaiter, NULL, glusterfs_sigwaiter,
(void *) &set);
@@ -1278,6 +1295,9 @@ glusterfs_signals_setup (glusterfs_ctx_t *ctx)
fallback to signals getting handled by other threads.
setup the signal handlers
*/
+ gf_log ("", GF_LOG_WARNING,
+ "failed to create pthread %s",
+ strerror (errno));
return ret;
}
@@ -1288,15 +1308,14 @@ glusterfs_signals_setup (glusterfs_ctx_t *ctx)
int
daemonize (glusterfs_ctx_t *ctx)
{
- int ret = 0;
+ int ret = -1;
cmd_args_t *cmd_args = NULL;
-
cmd_args = &ctx->cmd_args;
ret = glusterfs_pidfile_setup (ctx);
if (ret)
- return ret;
+ goto out;
if (cmd_args->no_daemon_mode)
goto postfork;
@@ -1308,16 +1327,16 @@ daemonize (glusterfs_ctx_t *ctx)
if (ret == -1) {
gf_log ("daemonize", GF_LOG_ERROR,
"Daemonization failed: %s", strerror(errno));
- return ret;
+ goto out;
}
postfork:
ret = glusterfs_pidfile_update (ctx);
if (ret)
- return ret;
+ goto out;
glusterfs_signals_setup (ctx);
-
+out:
return ret;
}
@@ -1326,13 +1345,12 @@ int
glusterfs_process_volfp (glusterfs_ctx_t *ctx, FILE *fp)
{
glusterfs_graph_t *graph = NULL;
- int ret = 0;
+ int ret = -1;
xlator_t *trav = NULL;
graph = glusterfs_graph_construct (fp);
-
if (!graph) {
- ret = -1;
+ gf_log ("", GF_LOG_ERROR, "failed to construct the graph");
goto out;
}
@@ -1341,16 +1359,13 @@ glusterfs_process_volfp (glusterfs_ctx_t *ctx, FILE *fp)
gf_log ("glusterfsd", GF_LOG_ERROR,
"fuse xlator cannot be specified "
"in volume file");
- ret = -1;
goto out;
}
}
ret = glusterfs_graph_prepare (graph, ctx);
-
if (ret) {
glusterfs_graph_destroy (graph);
- ret = -1;
goto out;
}
@@ -1358,12 +1373,12 @@ glusterfs_process_volfp (glusterfs_ctx_t *ctx, FILE *fp)
if (ret) {
glusterfs_graph_destroy (graph);
- ret = -1;
goto out;
}
gf_log_volume_file (fp);
+ ret = 0;
out:
if (fp)
fclose (fp);
@@ -1426,8 +1441,11 @@ main (int argc, char *argv[])
return ret;
ctx = glusterfs_ctx_get ();
- if (!ctx)
+ if (!ctx) {
+ gf_log ("glusterfs", GF_LOG_CRITICAL,
+ "ERROR: glusterfs context not initialized");
return ENOMEM;
+ }
ret = glusterfs_ctx_defaults_init (ctx);
if (ret)
diff --git a/glusterfsd/src/glusterfsd.h b/glusterfsd/src/glusterfsd.h
index e2f6131f3..ffe8b596e 100644
--- a/glusterfsd/src/glusterfsd.h
+++ b/glusterfsd/src/glusterfsd.h
@@ -25,7 +25,6 @@
#include "config.h"
#endif
-#include "glusterfsd-common.h"
#define DEFAULT_GLUSTERD_VOLFILE CONFDIR "/glusterd.vol"
#define DEFAULT_CLIENT_VOLFILE CONFDIR "/glusterfs.vol"
@@ -47,36 +46,36 @@
#define ENABLE_DEBUG_MODE 1
enum argp_option_keys {
- ARGP_VOLFILE_SERVER_KEY = 's',
- ARGP_VOLUME_FILE_KEY = 'f',
- ARGP_LOG_LEVEL_KEY = 'L',
- ARGP_LOG_FILE_KEY = 'l',
- ARGP_VOLFILE_SERVER_PORT_KEY = 131,
+ ARGP_VOLFILE_SERVER_KEY = 's',
+ ARGP_VOLUME_FILE_KEY = 'f',
+ ARGP_LOG_LEVEL_KEY = 'L',
+ ARGP_LOG_FILE_KEY = 'l',
+ ARGP_VOLFILE_SERVER_PORT_KEY = 131,
ARGP_VOLFILE_SERVER_TRANSPORT_KEY = 132,
- ARGP_PID_FILE_KEY = 'p',
- ARGP_SOCK_FILE_KEY = 'S',
- ARGP_NO_DAEMON_KEY = 'N',
- ARGP_RUN_ID_KEY = 'r',
- ARGP_DEBUG_KEY = 133,
- ARGP_ENTRY_TIMEOUT_KEY = 135,
- ARGP_ATTRIBUTE_TIMEOUT_KEY = 136,
- ARGP_VOLUME_NAME_KEY = 137,
- ARGP_XLATOR_OPTION_KEY = 138,
- ARGP_DIRECT_IO_MODE_KEY = 139,
+ ARGP_PID_FILE_KEY = 'p',
+ ARGP_SOCK_FILE_KEY = 'S',
+ ARGP_NO_DAEMON_KEY = 'N',
+ ARGP_RUN_ID_KEY = 'r',
+ ARGP_DEBUG_KEY = 133,
+ ARGP_ENTRY_TIMEOUT_KEY = 135,
+ ARGP_ATTRIBUTE_TIMEOUT_KEY = 136,
+ ARGP_VOLUME_NAME_KEY = 137,
+ ARGP_XLATOR_OPTION_KEY = 138,
+ ARGP_DIRECT_IO_MODE_KEY = 139,
#ifdef GF_DARWIN_HOST_OS
- ARGP_NON_LOCAL_KEY = 140,
+ ARGP_NON_LOCAL_KEY = 140,
#endif /* DARWIN */
- ARGP_VOLFILE_ID_KEY = 143,
- ARGP_VOLFILE_CHECK_KEY = 144,
- ARGP_VOLFILE_MAX_FETCH_ATTEMPTS = 145,
- ARGP_LOG_SERVER_KEY = 146,
- ARGP_LOG_SERVER_PORT_KEY = 147,
- ARGP_READ_ONLY_KEY = 148,
- ARGP_MAC_COMPAT_KEY = 149,
- ARGP_DUMP_FUSE_KEY = 150,
- ARGP_BRICK_NAME_KEY = 151,
- ARGP_BRICK_PORT_KEY = 152,
- ARGP_CLIENT_PID_KEY = 153,
+ ARGP_VOLFILE_ID_KEY = 143,
+ ARGP_VOLFILE_CHECK_KEY = 144,
+ ARGP_VOLFILE_MAX_FETCH_ATTEMPTS = 145,
+ ARGP_LOG_SERVER_KEY = 146,
+ ARGP_LOG_SERVER_PORT_KEY = 147,
+ ARGP_READ_ONLY_KEY = 148,
+ ARGP_MAC_COMPAT_KEY = 149,
+ ARGP_DUMP_FUSE_KEY = 150,
+ ARGP_BRICK_NAME_KEY = 151,
+ ARGP_BRICK_PORT_KEY = 152,
+ ARGP_CLIENT_PID_KEY = 153,
};
int glusterfs_mgmt_pmap_signout (glusterfs_ctx_t *ctx);
diff --git a/libglusterfs/src/globals.c b/libglusterfs/src/globals.c
index 10f370b5c..90e4bc413 100644
--- a/libglusterfs/src/globals.c
+++ b/libglusterfs/src/globals.c
@@ -211,63 +211,6 @@ glusterfs_this_set (xlator_t *this)
return 0;
}
-
-/* IS_CENTRAL_LOG */
-
-static pthread_key_t central_log_flag_key;
-
-void
-glusterfs_central_log_flag_destroy (void *ptr)
-{
- if (ptr)
- FREE (ptr);
-}
-
-
-int
-glusterfs_central_log_flag_init ()
-{
- int ret = 0;
-
- ret = pthread_key_create (&central_log_flag_key,
- glusterfs_central_log_flag_destroy);
-
- if (ret != 0) {
- return ret;
- }
-
- pthread_setspecific (central_log_flag_key, (void *) 0);
-
- return ret;
-}
-
-
-void
-glusterfs_central_log_flag_set ()
-{
- pthread_setspecific (central_log_flag_key, (void *) 1);
-}
-
-
-long
-glusterfs_central_log_flag_get ()
-{
- long flag = 0;
-
- flag = (long) pthread_getspecific (central_log_flag_key);
-
- return flag;
-}
-
-
-void
-glusterfs_central_log_flag_unset ()
-{
- pthread_setspecific (central_log_flag_key, (void *) 0);
-}
-
-
-
/* SYNCTASK */
static pthread_key_t synctask_key;
@@ -352,27 +295,34 @@ glusterfs_globals_init ()
gf_log_globals_init ();
ret = glusterfs_ctx_init ();
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs context init failed");
goto out;
+ }
ret = glusterfs_this_init ();
- if (ret)
- goto out;
-
- ret = glusterfs_central_log_flag_init ();
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs-translator init failed");
goto out;
+ }
ret = glusterfs_uuid_buf_init ();
- if(ret)
+ if(ret) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs uuid buffer init failed");
goto out;
+ }
gf_mem_acct_enable_set ();
ret = synctask_init ();
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_CRITICAL,
+ "ERROR: glusterfs synctask init failed");
goto out;
-
+ }
out:
return ret;
}
diff --git a/libglusterfs/src/globals.h b/libglusterfs/src/globals.h
index 665ec55e4..78ceddab3 100644
--- a/libglusterfs/src/globals.h
+++ b/libglusterfs/src/globals.h
@@ -46,12 +46,6 @@ xlator_t **__glusterfs_this_location ();
xlator_t *glusterfs_this_get ();
int glusterfs_this_set (xlator_t *);
-/* central log */
-
-void glusterfs_central_log_flag_set ();
-long glusterfs_central_log_flag_get ();
-void glusterfs_central_log_flag_unset ();
-
/* task */
void *synctask_get ();
int synctask_set (void *);
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h
index 8c8a3b32e..af03bd36b 100644
--- a/libglusterfs/src/glusterfs.h
+++ b/libglusterfs/src/glusterfs.h
@@ -73,6 +73,13 @@
#define FNM_EXTMATCH 0
#endif
+#define ZR_MOUNTPOINT_OPT "mountpoint"
+#define ZR_ATTR_TIMEOUT_OPT "attribute-timeout"
+#define ZR_ENTRY_TIMEOUT_OPT "entry-timeout"
+#define ZR_DIRECT_IO_OPT "direct-io-mode"
+#define ZR_STRICT_VOLFILE_CHECK "strict-volfile-check"
+#define ZR_DUMP_FUSE "dump-fuse"
+
#define GF_XATTR_PATHINFO_KEY "trusted.glusterfs.pathinfo"
#define GF_XATTR_LINKINFO_KEY "trusted.distribute.linkinfo"
#define GFID_XATTR_KEY "trusted.gfid"
diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c
index 4c6bc2ed7..2f598a6dc 100644
--- a/libglusterfs/src/logging.c
+++ b/libglusterfs/src/logging.c
@@ -131,22 +131,21 @@ int
gf_log_init (const char *file)
{
if (!file){
- fprintf (stderr, "gf_log_init: no filename specified\n");
+ fprintf (stderr, "ERROR: no filename specified\n");
return -1;
}
filename = gf_strdup (file);
if (!filename) {
- fprintf (stderr, "gf_log_init: strdup error\n");
+ fprintf (stderr, "ERROR: updating log-filename failed: %s\n",
+ strerror (errno));
return -1;
}
logfile = fopen (file, "a");
if (!logfile){
- fprintf (stderr,
- "gf_log_init: failed to open logfile \"%s\" (%s)\n",
- file,
- strerror (errno));
+ fprintf (stderr, "ERROR: failed to open logfile \"%s\" (%s)\n",
+ file, strerror (errno));
return -1;
}
@@ -156,13 +155,6 @@ gf_log_init (const char *file)
}
-/*
- * Initialize logging to a central server.
- * If successful, log messages will be written both to
- * the local file and to the remote server.
- */
-
-static int __central_log_enabled = 0;
struct _msg_queue {
struct list_head msgs;
@@ -582,15 +574,6 @@ unlock:
pthread_mutex_unlock (&logfile_mutex);
if (msg) {
- if ((ret != -1) && __central_log_enabled &&
- ((glusterfs_central_log_flag_get ()) == 0)) {
-
- glusterfs_central_log_flag_set ();
- {
- //gf_log_central (msg);
- }
- glusterfs_central_log_flag_unset ();
- }
GF_FREE (msg);
}
@@ -605,83 +588,6 @@ out:
}
-struct _client_log {
- char *identifier;
- FILE *file;
- struct list_head list;
-};
-
-struct _client_log *client_logs = NULL;
-
-
-static void
-client_log_init (struct _client_log *cl, char *identifier)
-{
- int ret = 0;
- char *path = NULL;
-
- cl->identifier = identifier;
-
- ret = gf_asprintf (&path, "%s.client-%s", filename, identifier);
- if (-1 == ret) {
- return;
- }
- cl->file = fopen (path, "a");
- GF_FREE (path);
-
- INIT_LIST_HEAD (&cl->list);
-}
-
-
-static FILE *
-__logfile_for_client (char *identifier)
-{
- struct _client_log *client = NULL;
-
- if (!client_logs) {
- client = GF_CALLOC (1, sizeof (*client),
- gf_common_mt_client_log);
- if (!client)
- return NULL;
-
- client_log_init (client, identifier);
-
- client_logs = client;
- }
-
- list_for_each_entry (client, &client_logs->list, list) {
- if (!strcmp (client->identifier, identifier))
- break;
- }
-
- if (!client) {
- client = GF_CALLOC (1, sizeof (*client),
- gf_common_mt_client_log);
- if (!client)
- return NULL;
-
- client_log_init (client, identifier);
-
- list_add_tail (&client->list, &client_logs->list);
- }
-
- return client->file;
-}
-
-
-int
-gf_log_from_client (const char *msg, char *identifier)
-{
- FILE *client_log = NULL;
-
- client_log = __logfile_for_client (identifier);
-
- fprintf (client_log, "%s\n", msg);
- fflush (client_log);
-
- return 0;
-}
-
int
gf_cmd_log_init (const char *filename)
{
diff --git a/rpc/rpc-lib/src/rpc-transport.c b/rpc/rpc-lib/src/rpc-transport.c
index b3bf4c93b..10c835cc8 100644
--- a/rpc/rpc-lib/src/rpc-transport.c
+++ b/rpc/rpc-lib/src/rpc-transport.c
@@ -1094,7 +1094,6 @@ rpc_transport_inet_options_build (dict_t **options, const char *hostname, int po
if (!dict)
goto out;
-
host = gf_strdup ((char*)hostname);
if (!hostname) {
ret = -1;
@@ -1102,20 +1101,31 @@ rpc_transport_inet_options_build (dict_t **options, const char *hostname, int po
}
ret = dict_set_dynstr (dict, "remote-host", host);
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_WARNING, "failed to set remote-host with %s",
+ host);
goto out;
+ }
ret = dict_set_int32 (dict, "remote-port", port);
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_WARNING, "failed to set remote-port with %d",
+ port);
goto out;
-
+ }
ret = dict_set_str (dict, "transport.address-family", "inet");
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_WARNING,
+ "failed to set addr-family with inet");
goto out;
+ }
ret = dict_set_str (dict, "transport-type", "socket");
- if (ret)
+ if (ret) {
+ gf_log ("", GF_LOG_WARNING,
+ "failed to set trans-type with socket");
goto out;
+ }
*options = dict;
out:
diff --git a/xlators/mount/fuse/src/Makefile.am b/xlators/mount/fuse/src/Makefile.am
index 66d044e32..3dace143a 100644
--- a/xlators/mount/fuse/src/Makefile.am
+++ b/xlators/mount/fuse/src/Makefile.am
@@ -19,7 +19,7 @@ fuse_la_LDFLAGS = -module -avoidversion -shared -nostartfiles
AM_CFLAGS = -fPIC -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D$(GF_HOST_OS) -Wall \
-I$(top_srcdir)/libglusterfs/src -I$(CONTRIBDIR)/fuse-include \
- -I$(top_srcdir)/glusterfsd/src $(GF_CFLAGS) $(GF_FUSE_CFLAGS)
+ $(GF_CFLAGS) $(GF_FUSE_CFLAGS)
CLEANFILES =
diff --git a/xlators/mount/fuse/src/fuse-bridge.h b/xlators/mount/fuse/src/fuse-bridge.h
index c6462c7ed..f20e47272 100644
--- a/xlators/mount/fuse/src/fuse-bridge.h
+++ b/xlators/mount/fuse/src/fuse-bridge.h
@@ -39,7 +39,6 @@
#include "xlator.h"
#include "defaults.h"
#include "common-utils.h"
-#include "glusterfsd-common.h"
#include "statedump.h"
#ifdef GF_DARWIN_HOST_OS