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>
This commit is contained in:
Vijay Bellur 2013-04-08 00:46:27 +05:30 committed by Anand Avati
parent 6f6744730e
commit e0fac0b68f
3 changed files with 43 additions and 1 deletions

View File

@ -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));
}

View File

@ -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;

23
tests/bugs/949327.t Normal file
View File

@ -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