Re: [Gluster-devel] NetBSD regression fixes

2015-03-18 Thread Emmanuel Dreyfus
On Wed, Mar 18, 2015 at 03:13:32AM -0400, Joseph Fernandes wrote:
 The smoke for http://review.gluster.org/#/c/9683/ on netbsd fails
 http://build.gluster.org/job/freebsd-smoke/4066/

This is FreeBSD, the NetBSD builds goes fine.

 Could you please install sqlite3 and sqlite-devel rpms on the test machines.

I believe Justin is the maintainer of this box. I do not have
particular skills with FreeBSD. It may look odd since NetBSD and
FreeBSD have very close names, but they are really different OS 
that forked 22 years ago from 386BSD.

-- 
Emmanuel Dreyfus
m...@netbsd.org
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] feature/trash and NetBSD

2015-03-18 Thread Emmanuel Dreyfus
On Wed, Mar 18, 2015 at 11:26:02AM +0530, Anoop C S wrote:
 Trash translator creates the original file inside .trashcan directory on
 receiving a truncate/ftruncate call and then truncates the file. During
 the above mentioned procedure, whether a truncate/ftruncate call is
 issued internally?

The kernel sends SETATTR with new file size, and glusterfs turns this
into a truncate call. I have to dig deeper to tell how.

 We have started looking into the failures. And I see many instances of
 the following error:
 du: unknown option -- b

Yes, I had to fix a few shell portability problems
- The -p option for mkdir must be before the directory name
- du -b is not portable. Use ls -l instead.
- test -e file* fails if file* expands to multiple files. 
  I introduced wildcard_exists() and wildcard_not_exists() to work 
  this around.

Attached patch adresses the three points.

-- 
Emmanuel Dreyfus
m...@netbsd.org
diff --git a/tests/features/trash.t b/tests/features/trash.t
index e0b85da..bdb56f3 100755
--- a/tests/features/trash.t
+++ b/tests/features/trash.t
@@ -37,29 +37,35 @@ unlink_op() {
 sleep 2
 
 test ! -e $M0/$1
-test -e $M0/.trashcan/$1*
+wildcard_exists $M0/.trashcan/$1*
 
 # remove from trashcan
 rm -f $M0/.trashcan/$1*
-test ! -e $M0/.trashcan/$1*
+wildcard_not_exists $M0/.trashcan/$1*
 }
 
 truncate_op() {
-
 truncate -s 2 $M0/$1
 ls $M0/.trashcan/1/2/3  /dev/null
 sleep 2
 
 test -e $M0/$1
-test $(du -b $M0/$1 | awk '{print $1}') -eq 2 /dev/null
-test -e $M0/.trashcan/$1*
-test $(du -b $M0/.trashcan/$1*|awk '{print $1}') -eq $2 /dev/null
+test $(ls -l $M0/$1 | awk '{print $5}') -eq 2 /dev/null
+wildcard_exists $M0/.trashcan/$1*
+test $(ls -l $M0/.trashcan/$1*|awk '{print $5}') -eq $2 /dev/null
 
 # truncate from trashcan
 truncate -s 1 $M0/.trashcan/$1*
 test $(ls $M0/.trashcan/$1* | wc -l) -eq 1
 }
 
+wildcard_exists() {
+test -e $1
+}
+
+wildcard_not_exists() {
+test ! -e $1
+}
 
 # testing glusterd [1-3]
 TEST glusterd
@@ -94,7 +100,7 @@ TEST unlink_op file1
 TEST truncate_op file2 4
 
 # create files directory hierarchy and check [16]
-mkdir $M0/1/2/3 -p
+mkdir -p $M0/1/2/3
 create_files $M0/1/2/3/foo1 $M0/1/2/3/foo2
 TEST file_exists 1/2/3/foo1 1/2/3/foo2
 
@@ -117,13 +123,13 @@ TEST file_exists a/test1 a/test2
 
 # remove from eliminate pattern [22]
 rm -f $M0/a/test1
-TEST [ ! -e $M0/.trashcan/a/test1* ]
+TEST wildcard_not_exists $M0/.trashcan/a/test1*
 
 # truncate from eliminate path [23-25]
 truncate -s 2 $M0/a/test2
 TEST [ -e $M0/a/test2 ]
-TEST [ `du -b $M0/a/test2 | awk '{print $1}'` -eq 2 ]
-TEST [ ! -e $M0/.trashcan/a/test2* ]
+TEST [ `ls -l $M0/a/test2 | awk '{print $5}'` -eq 2 ]
+TEST wildcard_not_exists $M0/.trashcan/a/test2*
 
 # set internal op on [26-27]
 TEST $CLI volume set $V0 features.trash-internal-op on
@@ -157,7 +163,7 @@ sleep 3
 
 # check whether rebalance was succesful [38-40]
 TEST [ -e $B0/${V0}3/rebal2 ]
-TEST [ -e $B0/${V0}1/.trashcan/internal_op/rebal2* ]
+TEST wildcard_exists $B0/${V0}1/.trashcan/internal_op/rebal2*
 TEST stop_vol
 
 # create a replicated volume [41]
@@ -190,21 +196,21 @@ TEST [ -e $B0/${V1}1/self -a -e $B0/${V1}2/self ]
 kill `ps aux| grep glusterfsd | awk '{print $2}' | head -1`
 sleep 2
 rm -f $M1/self
-TEST [ -e $M1/.trashcan/self* ]
+TEST wildcard_exists $M1/.trashcan/self*
 
 # force start the volume and trigger the self-heal manually [56]
 TEST $CLI volume start $V1 force
 sleep 3
 
 # check for the removed file in trashcan [57]
-TEST [ -e $B0/${V1}1/.trashcan/internal_op/self* -o -e 
$B0/${V1}2/.trashcan/internal_op/self* ]
+TEST [ wildcard_exists $B0/${V1}1/.trashcan/internal_op/self* -o  
wildcard_exists $B0/${V1}2/.trashcan/internal_op/self* ]
 
 # check renaming of trash directory through cli [58-62]
 TEST $CLI volume set $V0 trash-dir abc
 TEST $CLI volume start $V0
 TEST glusterfs -s $H0 --volfile-id $V0 $M0 --attribute-timeout=0
 TEST [ -e $M0/abc -a ! -e $M0/.trashcan ]
-TEST [ -e $B0/${V0}1/abc/internal_op/rebal2* ]
+TEST wildcard_exists $B0/${V0}1/abc/internal_op/rebal2*
 sleep 2
 
 # ensure that rename and delete operation on trash directory fails [63-65]
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] feature/trash and NetBSD

2015-03-18 Thread Anoop C S


On 03/18/2015 02:00 PM, Emmanuel Dreyfus wrote:
 On Wed, Mar 18, 2015 at 11:26:02AM +0530, Anoop C S wrote:
 Trash translator creates the original file inside .trashcan directory on
 receiving a truncate/ftruncate call and then truncates the file. During
 the above mentioned procedure, whether a truncate/ftruncate call is
 issued internally?
 
 The kernel sends SETATTR with new file size, and glusterfs turns this
 into a truncate call. I have to dig deeper to tell how.

Ok. As of now trash translator doesn't distinguish between extended
truncate and reduced truncate. From your explanation and discussion with
Vijay, we doubt that it is an extended truncate(truncate with a higher
size). We are planning to skip extended truncate from trashing. A patch
will be sent out soon to address the problem. If that is the case, then
the corresponding (upcoming) patch will solve the issue.

 
 We have started looking into the failures. And I see many instances of
 the following error:
 du: unknown option -- b
 
 Yes, I had to fix a few shell portability problems
 - The -p option for mkdir must be before the directory name
 - du -b is not portable. Use ls -l instead.
 - test -e file* fails if file* expands to multiple files. 
   I introduced wildcard_exists() and wildcard_not_exists() to work 
   this around.
 
 Attached patch adresses the three points.

Thanks for pointing out the issues. When we have our above mentioned
patch merged upstream, we can verify and then you can send this patch
for trash.t upstream for review.

 

--Anoop C S.
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] NetBSD regression in quota-nfs.t

2015-03-18 Thread Emmanuel Dreyfus
On Wed, Mar 18, 2015 at 10:03:28AM +, Emmanuel Dreyfus wrote:
 Any idea anyone? Perhaps we could justgot err instead?
   if (uuid_is_null (local-loc.gfid))
   goto err;

Indeed, the test passes with this patch:

diff --git a/xlators/features/marker/src/marker-quota.c 
b/xlators/features/marker/src/marker-quota.c
index b8d7a77..4f8d057 100644
--- a/xlators/features/marker/src/marker-quota.c
+++ b/xlators/features/marker/src/marker-quota.c
@@ -1183,7 +1183,8 @@ mq_get_xattr (call_frame_t *frame, void *cookie, xlator_t 
*this,
 if (uuid_is_null (local-loc.gfid))
 uuid_copy (local-loc.gfid, local-loc.inode-gfid);
 
-GF_UUID_ASSERT (local-loc.gfid);
+if (uuid_is_null (local-loc.gfid))
+goto err;
 
 STACK_WIND (frame, mq_check_n_set_inode_xattr, FIRST_CHILD(this),
 FIRST_CHILD(this)-fops-lookup, local-loc, xattr_req);


-- 
Emmanuel Dreyfus
m...@netbsd.org
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


[Gluster-devel] NetBSD regression in quota-nfs.t

2015-03-18 Thread Emmanuel Dreyfus
Hi

NetBSD regression has been broken a lot latetly, here is the latest one
I investigated: tests/basic/quota-nfs.t

It fails on this test:
TEST $CLI volume quota $V0 limit-usage / 20MB 
Because:
quota command failed : Failed to find the directory 
/autobuild/install/var/run/gluster/patchy/. Reason : Socket is not connected

And it happens because the glusterfsd daemon crashed on an assertion:
#3  0xbb47f4f9 in __assert13 () from /usr/lib/libc.so.12
#4  0xb9b8045d in mq_get_xattr (frame=0xb970a670, cookie=0xb9702ac8,
this=0xbb2d7018, op_ret=0, op_errno=0, xdata=0x0) at marker-quota.c:1186
#5  0xbb764152 in default_inodelk_cbk (frame=0xb9702ac8, cookie=0xb9702b58, 
this=0xbb2d4018, op_ret=0, op_errno=0, xdata=0x0) at defaults.c:1175
#6  0xb9bc1556 in pl_common_inodelk (frame=0xb9702b58, this=0xbb2d3018, 
volume=0xb9705838 patchy-marker, inode=0xb9702a38, cmd=9, 
flock=0xb97270f4, loc=0xb9727048, fd=0x0, xdata=0x0) at inodelk.c:804
#7  0xb9bc15db in pl_inodelk (frame=0xb9702b58, this=0xbb2d3018, 
volume=0xb9705838 patchy-marker, loc=0xb9727048, cmd=9, 
flock=0xb97270f4, xdata=0x0) at inodelk.c:816
#8  0xbb768f06 in default_inodelk_resume (frame=0xb9702ac8, this=0xbb2d4018,
volume=0xb9705838 patchy-marker, loc=0xb9727048, cmd=9,
lock=0xb97270f4, xdata=0x0) at defaults.c:1577
#9  0xbb7833c5 in call_resume_wind (stub=0xb9727028) at call-stub.c:2454
#10 0xbb78a411 in call_resume (stub=0xb9727028) at call-stub.c:2841

(gdb) frame 4
#4  0xb9b8045d in mq_get_xattr (frame=0xb970a670, cookie=0xb9702ac8, 
this=0xbb2d7018, op_ret=0, op_errno=0, xdata=0x0) at marker-quota.c:1186
1186GF_UUID_ASSERT (local-loc.gfid)

Any idea anyone? Perhaps we could justgot err instead?
if (uuid_is_null (local-loc.gfid))
goto err;

-- 
Emmanuel Dreyfus
m...@netbsd.org
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


[Gluster-devel] Minutes for Weekly Gluster Community Meeting: 2015-03-18

2015-03-18 Thread Kaleb KEITHLEY

Thanks for everyone who attended our Weekly Gluster Community Meeting
on IRC a few minutes ago.

Meeting Minutes:
http://meetbot.fedoraproject.org/gluster-meeting/2015-03-18/gluster-meeting.2015-03-18-11.59.html

--

Kaleb
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] NetBSD regression fixes

2015-03-18 Thread Justin Clift
On 18 Mar 2015, at 08:21, Emmanuel Dreyfus m...@netbsd.org wrote:
 On Wed, Mar 18, 2015 at 03:13:32AM -0400, Joseph Fernandes wrote:
 The smoke for http://review.gluster.org/#/c/9683/ on netbsd fails
 http://build.gluster.org/job/freebsd-smoke/4066/
 
 This is FreeBSD, the NetBSD builds goes fine.
 
 Could you please install sqlite3 and sqlite-devel rpms on the test machines.
 
 I believe Justin is the maintainer of this box.

It's Harsha (CC'd).

+ Justin

--
GlusterFS - http://www.gluster.org

An open source, distributed file system scaling to several
petabytes, and handling thousands of clients.

My personal twitter: twitter.com/realjustinclift

___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] NetBSD regression in quota-nfs.t

2015-03-18 Thread Emmanuel Dreyfus
On Wed, Mar 18, 2015 at 10:28:37AM +, Emmanuel Dreyfus wrote:
 Indeed, the test passes with this patch:

And when submitting it I noticed ithat change has laready been done.

-- 
Emmanuel Dreyfus
m...@netbsd.org
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] NetBSD regression in quota-nfs.t

2015-03-18 Thread Vijaikumar M

Hi Emmanuel,

I have submitted another patch: http://review.gluster.org/#/c/9478/ for 
addressing the spurious failure with quota-nfs.t


Thanks,
Vijay


On Wednesday 18 March 2015 07:40 PM, Emmanuel Dreyfus wrote:

On Wed, Mar 18, 2015 at 10:28:37AM +, Emmanuel Dreyfus wrote:

Indeed, the test passes with this patch:

And when submitting it I noticed ithat change has laready been done.



___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] Query: Trash feature.

2015-03-18 Thread Anoop C S

On 03/19/2015 10:58 AM, Kotresh Hiremath Ravishankar wrote:
 Hi All,
 
 Why is .trashcan directory created at the same level as .glusterfs and
 not inside .glusterfs? In glusterfs, crawlers, usually crawl back end
 filesystem and ignore .glusterfs. Now in addition, they have to ignore
 .trashcan.

As per the design of trash translator, it should be visible from the
mount point. That's why trash directory is not included in .glusterfs.
Moreover trash directory can be identified with a fixed gfid
{---0005}.

--Anoop C S.

 
 Thanks and Regards,
 Kotresh H R
 
 ___
 Gluster-devel mailing list
 Gluster-devel@gluster.org
 http://www.gluster.org/mailman/listinfo/gluster-devel
 
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel