[lxc-devel] [lxc/master] commands: improve logging
brauner on Github
lxc-bot at linuxcontainers.org
Sat Nov 26 08:18:00 UTC 2016
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 364 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20161126/a2be372e/attachment.bin>
-------------- next part --------------
From 409032d7fb29f6f408d8857b209243c78eced6b7 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Sat, 26 Nov 2016 09:16:25 +0100
Subject: [PATCH] commands: improve logging
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/commands.c | 88 ++++++++++++++++++++++++++----------------------------
1 file changed, 43 insertions(+), 45 deletions(-)
diff --git a/src/lxc/commands.c b/src/lxc/commands.c
index a807da3..76f9909 100644
--- a/src/lxc/commands.c
+++ b/src/lxc/commands.c
@@ -168,8 +168,8 @@ static int lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
ret = lxc_abstract_unix_recv_fd(sock, &rspfd, rsp, sizeof(*rsp));
if (ret < 0) {
- WARN("command %s failed to receive response",
- lxc_cmd_str(cmd->req.cmd));
+ WARN("Command %s failed to receive response: %s.",
+ lxc_cmd_str(cmd->req.cmd), strerror(errno));
return -1;
}
@@ -184,7 +184,7 @@ static int lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
rspdata = malloc(sizeof(*rspdata));
if (!rspdata) {
- ERROR("command %s couldn't allocate response buffer",
+ ERROR("Command %s couldn't allocate response buffer.",
lxc_cmd_str(cmd->req.cmd));
return -1;
}
@@ -196,7 +196,7 @@ static int lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
if (rsp->datalen == 0)
return ret;
if (rsp->datalen > LXC_CMD_DATA_MAX) {
- ERROR("command %s response data %d too long",
+ ERROR("Command %s response data %d too long.",
lxc_cmd_str(cmd->req.cmd), rsp->datalen);
errno = EFBIG;
return -1;
@@ -204,14 +204,14 @@ static int lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
rsp->data = malloc(rsp->datalen);
if (!rsp->data) {
- ERROR("command %s unable to allocate response buffer",
+ ERROR("Command %s was unable to allocate response buffer.",
lxc_cmd_str(cmd->req.cmd));
return -1;
}
ret = recv(sock, rsp->data, rsp->datalen, 0);
if (ret != rsp->datalen) {
- ERROR("command %s failed to receive response data",
- lxc_cmd_str(cmd->req.cmd));
+ ERROR("Command %s failed to receive response data: %s.",
+ lxc_cmd_str(cmd->req.cmd), strerror(errno));
if (ret >= 0)
ret = -1;
}
@@ -233,7 +233,7 @@ static int lxc_cmd_rsp_send(int fd, struct lxc_cmd_rsp *rsp)
ret = send(fd, rsp, sizeof(*rsp), 0);
if (ret != sizeof(*rsp)) {
- ERROR("failed to send command response %d %s", ret,
+ ERROR("Failed to send command response %d: %s.", ret,
strerror(errno));
return -1;
}
@@ -241,8 +241,8 @@ static int lxc_cmd_rsp_send(int fd, struct lxc_cmd_rsp *rsp)
if (rsp->datalen > 0) {
ret = send(fd, rsp->data, rsp->datalen, 0);
if (ret != rsp->datalen) {
- WARN("failed to send command response data %d %s", ret,
- strerror(errno));
+ WARN("Failed to send command response data %d: %s.",
+ ret, strerror(errno));
return -1;
}
}
@@ -293,7 +293,7 @@ static int lxc_cmd(const char *name, struct lxc_cmd_rr *cmd, int *stopped,
if (errno == ECONNREFUSED)
*stopped = 1;
else
- SYSERROR("command %s failed to connect to '@%s'",
+ SYSERROR("Command %s failed to connect to \"@%s\".",
lxc_cmd_str(cmd->req.cmd), offset);
return -1;
}
@@ -302,7 +302,7 @@ static int lxc_cmd(const char *name, struct lxc_cmd_rr *cmd, int *stopped,
if (ret != sizeof(cmd->req)) {
if (errno == EPIPE)
goto epipe;
- SYSERROR("command %s failed to send req to '@%s' %d",
+ SYSERROR("Command %s failed to send req to \"@%s\" %d.",
lxc_cmd_str(cmd->req.cmd), offset, ret);
if (ret >=0)
ret = -1;
@@ -314,7 +314,7 @@ static int lxc_cmd(const char *name, struct lxc_cmd_rr *cmd, int *stopped,
if (ret != cmd->req.datalen) {
if (errno == EPIPE)
goto epipe;
- SYSERROR("command %s failed to send request data to '@%s' %d",
+ SYSERROR("Command %s failed to send request data to \"@%s\" %d.",
lxc_cmd_str(cmd->req.cmd), offset, ret);
if (ret >=0)
ret = -1;
@@ -458,14 +458,13 @@ char *lxc_cmd_get_cgroup_path(const char *name, const char *lxcpath,
return NULL;
if (!ret) {
- WARN("'%s' has stopped before sending its state", name);
+ WARN("Container \"%s\" has stopped before sending its state.", name);
return NULL;
}
if (cmd.rsp.ret < 0 || cmd.rsp.datalen < 0) {
- ERROR("command %s failed for '%s': %s",
- lxc_cmd_str(cmd.req.cmd), name,
- strerror(-cmd.rsp.ret));
+ ERROR("Command %s failed for container \"%s\": %s.",
+ lxc_cmd_str(cmd.req.cmd), name, strerror(-cmd.rsp.ret));
return NULL;
}
@@ -571,11 +570,11 @@ lxc_state_t lxc_cmd_get_state(const char *name, const char *lxcpath)
return -1;
if (!ret) {
- WARN("'%s' has stopped before sending its state", name);
+ WARN("Container \"%s\" has stopped before sending its state.", name);
return -1;
}
- DEBUG("'%s' is in '%s' state", name,
+ DEBUG("Container \"%s\" is in \"%s\" state.", name,
lxc_state2str(PTR_TO_INT(cmd.rsp.data)));
return PTR_TO_INT(cmd.rsp.data);
}
@@ -607,7 +606,7 @@ int lxc_cmd_stop(const char *name, const char *lxcpath)
ret = lxc_cmd(name, &cmd, &stopped, lxcpath, NULL);
if (ret < 0) {
if (stopped) {
- INFO("'%s' is already stopped", name);
+ INFO("Container \"%s\" is already stopped.", name);
return 0;
}
return -1;
@@ -617,7 +616,8 @@ int lxc_cmd_stop(const char *name, const char *lxcpath)
* closed
*/
if (ret > 0) {
- ERROR("failed to stop '%s': %s", name, strerror(-cmd.rsp.ret));
+ ERROR("Failed to stop container \"%s\": %s.", name,
+ strerror(-cmd.rsp.ret));
return -1;
}
@@ -643,7 +643,7 @@ static int lxc_cmd_stop_callback(int fd, struct lxc_cmd_req *req,
*/
if (cgroup_unfreeze(handler))
return 0;
- ERROR("Failed to unfreeze %s:%s", handler->lxcpath, handler->name);
+ ERROR("Failed to unfreeze container \"%s\".", handler->name);
rsp.ret = -1;
}
@@ -705,27 +705,27 @@ int lxc_cmd_console(const char *name, int *ttynum, int *fd, const char *lxcpath)
return ret;
if (cmd.rsp.ret < 0) {
- ERROR("console access denied: %s", strerror(-cmd.rsp.ret));
+ ERROR("Console access denied: %s.", strerror(-cmd.rsp.ret));
ret = -1;
goto out;
}
if (ret == 0) {
- ERROR("console %d invalid,busy or all consoles busy", *ttynum);
+ ERROR("Console %d invalid, busy or all consoles busy.", *ttynum);
ret = -1;
goto out;
}
rspdata = cmd.rsp.data;
if (rspdata->masterfd < 0) {
- ERROR("unable to allocate fd for tty %d", rspdata->ttynum);
+ ERROR("Unable to allocate fd for tty %d.", rspdata->ttynum);
goto out;
}
ret = cmd.rsp.ret; /* sock fd */
*fd = rspdata->masterfd;
*ttynum = rspdata->ttynum;
- INFO("tty %d allocated fd %d sock %d", rspdata->ttynum, *fd, ret);
+ INFO("tty %d allocated fd %d sock %d.", rspdata->ttynum, *fd, ret);
out:
free(cmd.rsp.data);
return ret;
@@ -745,7 +745,7 @@ static int lxc_cmd_console_callback(int fd, struct lxc_cmd_req *req,
memset(&rsp, 0, sizeof(rsp));
rsp.data = INT_TO_PTR(ttynum);
if (lxc_abstract_unix_send_fd(fd, masterfd, &rsp, sizeof(rsp)) < 0) {
- ERROR("failed to send tty to client");
+ ERROR("Failed to send tty to client.");
lxc_console_free(handler->conf, fd);
goto out_close;
}
@@ -854,7 +854,7 @@ static int lxc_cmd_process(int fd, struct lxc_cmd_req *req,
};
if (req->cmd >= LXC_CMD_MAX) {
- ERROR("bad cmd %d received", req->cmd);
+ ERROR("Undefined command id %d received.", req->cmd);
return -1;
}
return cb[req->cmd](fd, req, handler);
@@ -885,23 +885,23 @@ static int lxc_cmd_handler(int fd, uint32_t events, void *data,
}
if (ret < 0) {
- SYSERROR("failed to receive data on command socket");
+ SYSERROR("Failed to receive data on command socket.");
goto out_close;
}
if (!ret) {
- DEBUG("peer has disconnected");
+ DEBUG("Peer has disconnected.");
goto out_close;
}
if (ret != sizeof(req)) {
- WARN("partial request, ignored");
+ WARN("Failed to receive full command request. Ignoring request.");
ret = -1;
goto out_close;
}
if (req.datalen > LXC_CMD_DATA_MAX) {
- ERROR("cmd data length %d too large", req.datalen);
+ ERROR("Received command data length %d is too large.", req.datalen);
ret = -1;
goto out_close;
}
@@ -912,7 +912,7 @@ static int lxc_cmd_handler(int fd, uint32_t events, void *data,
reqdata = alloca(req.datalen);
ret = recv(fd, reqdata, req.datalen, 0);
if (ret != req.datalen) {
- WARN("partial request, ignored");
+ WARN("Failed to receive full command request. Ignoring request.");
ret = -1;
goto out_close;
}
@@ -940,24 +940,24 @@ static int lxc_cmd_accept(int fd, uint32_t events, void *data,
connection = accept(fd, NULL, 0);
if (connection < 0) {
- SYSERROR("failed to accept connection");
+ SYSERROR("Failed to accept connection to run command.");
return -1;
}
if (fcntl(connection, F_SETFD, FD_CLOEXEC)) {
- SYSERROR("failed to set close-on-exec on incoming connection");
+ SYSERROR("Failed to set close-on-exec on incoming command connection.");
goto out_close;
}
if (setsockopt(connection, SOL_SOCKET,
SO_PASSCRED, &opt, sizeof(opt))) {
- SYSERROR("failed to enable credential on socket");
+ SYSERROR("Failed to enable necessary credentials on command socket.");
goto out_close;
}
ret = lxc_mainloop_add_handler(descr, connection, lxc_cmd_handler, data);
if (ret) {
- ERROR("failed to add handler");
+ ERROR("Failed to add command handler.");
goto out_close;
}
@@ -988,17 +988,15 @@ int lxc_cmd_init(const char *name, struct lxc_handler *handler,
fd = lxc_abstract_unix_open(path, SOCK_STREAM, 0);
if (fd < 0) {
- ERROR("failed (%d) to create the command service point %s", errno, offset);
- if (errno == EADDRINUSE) {
- ERROR("##");
- ERROR("# The container appears to be already running!");
- ERROR("##");
- }
+ ERROR("Failed to create the command service point %s: %s.",
+ offset, strerror(errno));
+ if (errno == EADDRINUSE)
+ ERROR("Container \"%s\" appears to be already running!", name);
return -1;
}
if (fcntl(fd, F_SETFD, FD_CLOEXEC)) {
- SYSERROR("failed to set sigfd to close-on-exec");
+ SYSERROR("Failed to set FD_CLOEXEC on signal file descriptor.");
close(fd);
return -1;
}
@@ -1015,7 +1013,7 @@ int lxc_cmd_mainloop_add(const char *name,
ret = lxc_mainloop_add_handler(descr, fd, lxc_cmd_accept, handler);
if (ret) {
- ERROR("failed to add handler for command socket");
+ ERROR("Failed to add handler for command socket.");
close(fd);
}
More information about the lxc-devel
mailing list