diff options
author | Ashish Pandey <aspandey@redhat.com> | 2016-07-27 15:49:25 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2016-08-10 02:31:50 -0700 |
commit | d5976e2ca90f16074216a32e267e2652acd32bd9 (patch) | |
tree | fe02d6e0ba64cc667a7be3475c3607f0cd4576ed /tests | |
parent | 1d5dfce606217d5e2e1c71f89fab5aca100620a2 (diff) |
posix: Do not move and recreate .glusterfs/unlink directory
Problem:
At the time of start of a volume, it is checked if
.glusterfs/unlink exist or not. If it does, move it
to landfill and recreate unlink directory. If a volume
is mounted and we write data on it till we face ENOSPC,
restart of that volume fails as it will not be able to
create unlink dir. mkdir will fail with ENOSPC.
This will not allow volume to restart.
Solution:
If .glusterfs/unlink directory exist, don't move it to
landfill. Delete all the entries inside it.
master -
http://review.gluster.org/#/c/15030/
Change-Id: Icde3fb36012f2f01aeb119a2da042f761203c11f
BUG: 1364365
Signed-off-by: Ashish Pandey <aspandey@redhat.com>
Reviewed-on: http://review.gluster.org/15093
Smoke: Gluster Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs/posix/bug-1360679.t | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/bugs/posix/bug-1360679.t b/tests/bugs/posix/bug-1360679.t new file mode 100644 index 00000000000..fbb9d027ddb --- /dev/null +++ b/tests/bugs/posix/bug-1360679.t @@ -0,0 +1,36 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../fileio.rc + +cleanup +function num_entries { + ls -l $1 | wc -l +} + +function create_unlink_entry { + for i in {0..1} + do + mkdir -p $B0/${V0}$i/.glusterfs/unlink/{1..3}/{1..10}/1 + dd if=/dev/urandom of=$B0/${V0}$i/.glusterfs/unlink/file-1 bs=1M count=1 + dd if=/dev/urandom of=$B0/${V0}$i/.glusterfs/unlink/file-2 bs=1M count=1 + dd if=/dev/urandom of=$B0/${V0}$i/.glusterfs/unlink/1/file-1 bs=1M count=1 + dd if=/dev/urandom of=$B0/${V0}$i/.glusterfs/unlink/2/file-1 bs=1M count=1 + dd if=/dev/urandom of=$B0/${V0}$i/.glusterfs/unlink/3/file-1 bs=1M count=1 + ln $B0/${V0}$i/.glusterfs/unlink/file-1 $B0/${V0}$i/.glusterfs/unlink/file-link + ln -s $B0/${V0}$i/.glusterfs/unlink/1 $B0/${V0}$i/.glusterfs/unlink/link + ln -s $B0/${V0}$i/.glusterfs/unlink/2 $B0/${V0}$i/.glusterfs/unlink/link-2 + done +} + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 disperse 6 redundancy 2 $H0:$B0/${V0}{0..5} +TEST $CLI volume start $V0 +TEST $CLI volume stop $V0 +create_unlink_entry +TEST $CLI volume start $V0 +EXPECT_WITHIN $UNLINK_TIMEOUT "^1$" num_entries $B0/${V0}0/.glusterfs/unlink/ +EXPECT_WITHIN $UNLINK_TIMEOUT "^1$" num_entries $B0/${V0}1/.glusterfs/unlink/ +cleanup; |