diff options
author | Vijay Bellur <vbellur@redhat.com> | 2013-04-08 00:46:27 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-04-08 14:21:39 -0700 |
commit | e0fac0b68ff23a87da3eda4ced7a60b3e2fcf77a (patch) | |
tree | 6ccedd01ddb2262487c998027824af430ad2df96 | |
parent | 6f6744730e34fa8a161b5f7f2a8ad3f8a7fc30fa (diff) |
glusterfsd: Cleanup temporary files from /tmp
For each gluster{d,fs,fsd} start, one or more temporary
file(s) created in /tmp were not being unlinked. This
patch cleans that up.
Modified a typo in an unrelated log message as well.
Change-Id: I3dec2a2ca40c7d6828eb238ec9cd08b6072cf0dd
BUG: 949327
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: http://review.gluster.org/4786
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
-rw-r--r-- | glusterfsd/src/glusterfsd-mgmt.c | 15 | ||||
-rw-r--r-- | libglusterfs/src/graph.y | 6 | ||||
-rw-r--r-- | tests/bugs/949327.t | 23 |
3 files changed, 43 insertions, 1 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c index d28397a1730..873844f554b 100644 --- a/glusterfsd/src/glusterfsd-mgmt.c +++ b/glusterfsd/src/glusterfsd-mgmt.c @@ -1417,6 +1417,19 @@ glusterfs_volfile_reconfigure (FILE *newvolfile_fp) strcpy (template, "/tmp/tmp.XXXXXX"); oldvolfile_fd = mkstemp (template); + if (oldvolfile_fd == -1) { + gf_log ("glusterfsd-mgmt", GF_LOG_ERROR, "Unable to create " + "temporary file: %s (%s)", template, + strerror (errno)); + goto out; + } + + ret = unlink (template); + if (ret < 0) { + gf_log ("glusterfsd-mgmt", GF_LOG_WARNING, "Unable to delete " + "file: %s", template); + } + oldvolfile_fp = fdopen (oldvolfile_fd, "w+b"); if (!oldvolfile_fp) { gf_log ("glusterfsd-mgmt", GF_LOG_CRITICAL, "Failed to create " @@ -1947,7 +1960,7 @@ glusterfs_listener_stop (glusterfs_ctx_t *ctx) if (ret) { this = THIS; - gf_log (this->name, GF_LOG_ERROR, "Failed to unlink linstener " + gf_log (this->name, GF_LOG_ERROR, "Failed to unlink listener " "socket %s, error: %s", cmd_args->sock_file, strerror (errno)); } diff --git a/libglusterfs/src/graph.y b/libglusterfs/src/graph.y index 92267c4c743..e2f16ff714b 100644 --- a/libglusterfs/src/graph.y +++ b/libglusterfs/src/graph.y @@ -567,6 +567,12 @@ glusterfs_graph_construct (FILE *fp) if (-1 == tmp_fd) goto err; + ret = unlink (template); + if (ret < 0) { + gf_log ("parser", GF_LOG_WARNING, "Unable to delete file: %s", + template); + } + tmp_file = fdopen (tmp_fd, "w+b"); if (!tmp_file) goto err; diff --git a/tests/bugs/949327.t b/tests/bugs/949327.t new file mode 100644 index 00000000000..7b0c5c51a81 --- /dev/null +++ b/tests/bugs/949327.t @@ -0,0 +1,23 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +cleanup; + +function tmp_file_count() +{ +echo $(ls -lh /tmp/tmp.* | wc -l) +} + + +old_count=$(tmp_file_count); +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}0 $H0:$B0/${V0}1 +TEST $CLI volume start $V0 +new_count=$(tmp_file_count); + +TEST [ "$old_count" -eq "$new_count" ] + +cleanup |