<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/tests/features, branch v3.7.3</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>dht: Add lookup-optimize configuration option for DHT</title>
<updated>2015-06-05T09:16:13+00:00</updated>
<author>
<name>Shyam</name>
<email>srangana@redhat.com</email>
</author>
<published>2015-05-15T19:50:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=bedda7c258e000d94b09599340400955e4b8079f'/>
<id>bedda7c258e000d94b09599340400955e4b8079f</id>
<content type='text'>
Currently with commit 4eaaf5 a mixed version cluster would
have issues if lookup-uhashed is set to auto, as older clients
would fail to validate the layouts if newer clients (i.e 3.7 or
upwards) create directories. Also, in a mixed version cluster
rebalance daemon would set commit hash for some subvolumes and
not for the others.

This commit fixes this problem by moving the enabling of the
functionality introduced in the above mentioned commit to a
new dht option. This option also has a op_version of 3_7_1
thereby preventing it from being set in a mixed version
cluster. It brings in the following changes,
- Option can be set only if min version of the cluster is
3.7.1 or more
- Rebalance and mkdir update the layout with the commit hashes
only if this option is set, hence ensuring rebalance works in a
mixed version cluster, and also directories created by newer
clients do not cause layout errors when read by older clients
- This option also supersedes lookup-unhased, to enable the
optimization for lookups more deterministic and not conflict
with lookup-unhashed settings.

Option added is cluster.lookup-optimize, which is a boolean.

Usage: # gluster volume set VOLNAME cluster.lookup-optimize on

Change-Id: Ifd1d4ce3f6438fcbcd60ffbfdbfb647355ea1ae0
BUG:  1225940
Signed-off-by: Shyam &lt;srangana@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10976
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently with commit 4eaaf5 a mixed version cluster would
have issues if lookup-uhashed is set to auto, as older clients
would fail to validate the layouts if newer clients (i.e 3.7 or
upwards) create directories. Also, in a mixed version cluster
rebalance daemon would set commit hash for some subvolumes and
not for the others.

This commit fixes this problem by moving the enabling of the
functionality introduced in the above mentioned commit to a
new dht option. This option also has a op_version of 3_7_1
thereby preventing it from being set in a mixed version
cluster. It brings in the following changes,
- Option can be set only if min version of the cluster is
3.7.1 or more
- Rebalance and mkdir update the layout with the commit hashes
only if this option is set, hence ensuring rebalance works in a
mixed version cluster, and also directories created by newer
clients do not cause layout errors when read by older clients
- This option also supersedes lookup-unhased, to enable the
optimization for lookups more deterministic and not conflict
with lookup-unhashed settings.

Option added is cluster.lookup-optimize, which is a boolean.

Usage: # gluster volume set VOLNAME cluster.lookup-optimize on

Change-Id: Ifd1d4ce3f6438fcbcd60ffbfdbfb647355ea1ae0
BUG:  1225940
Signed-off-by: Shyam &lt;srangana@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10976
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: write log for glupy.t to the standard log directory</title>
<updated>2015-05-26T17:35:48+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2015-05-26T14:08:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=ec730faad06d14a226abc1174eb6f7afb965a69c'/>
<id>ec730faad06d14a226abc1174eb6f7afb965a69c</id>
<content type='text'>
There is (or was) a spurious test in glupy.t for which a separate log
file was setup. The directory where the log is saved, is not available
on NetBSD and this causes glupy.t to always fail, without a log.

Instead of hard-coding the path to the log, use "gluster --print-logdir"
to provide a LOGDIR environment variable. glupy.t now writes the log to
an existing directory.

Cherry picked from commit cfca748fef28170377b868871b0dd980c1f151f6:
&gt; BUG: 1163543
&gt; Change-Id: Ifa73198d06fa267856d0da9d25a4380329909124
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10801
&gt; Tested-by: NetBSD Build System
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: Ifa73198d06fa267856d0da9d25a4380329909124
BUG: 1225077
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10920
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is (or was) a spurious test in glupy.t for which a separate log
file was setup. The directory where the log is saved, is not available
on NetBSD and this causes glupy.t to always fail, without a log.

Instead of hard-coding the path to the log, use "gluster --print-logdir"
to provide a LOGDIR environment variable. glupy.t now writes the log to
an existing directory.

Cherry picked from commit cfca748fef28170377b868871b0dd980c1f151f6:
&gt; BUG: 1163543
&gt; Change-Id: Ifa73198d06fa267856d0da9d25a4380329909124
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10801
&gt; Tested-by: NetBSD Build System
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: Ifa73198d06fa267856d0da9d25a4380329909124
BUG: 1225077
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10920
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dht: make lookup-unhashed=auto do something actually useful</title>
<updated>2015-05-10T04:55:09+00:00</updated>
<author>
<name>Jeff Darcy</name>
<email>jdarcy@redhat.com</email>
</author>
<published>2014-05-07T19:31:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=243d61575c093c03b9beb014bf9d097646836e95'/>
<id>243d61575c093c03b9beb014bf9d097646836e95</id>
<content type='text'>
The key concept here is to determine whether a directory is "clean" by
comparing its last-known-good topology to the current one for the
volume.  These are stored as "commit hashes" on the directory and the
volume root respectively.  The volume's commit hash changes whenever a
brick is added or removed, and a fix-layout is done.  A directory's
commit hash changes only when a full rebalance (not just fix-layout)
is done on it.  If all bricks are present and have a directory
commit hash that matches the volume commit hash, then we can assume
that every file is in its "proper" place. Therefore, if we look for
a file in that proper place and don't find it, we can assume it's not
on any other subvolume and *safely* skip the global (broadcast to all)
lookup.

Change-Id: Id6ce4593ba1f7daffa74cfab591cb45960629ae3
BUG: 1220064
Reviewed-on-master: http://review.gluster.org/#/c/7702/
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Signed-off-by: Shyam &lt;srangana@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10729
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Krishnan Parthasarathi &lt;kparthas@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The key concept here is to determine whether a directory is "clean" by
comparing its last-known-good topology to the current one for the
volume.  These are stored as "commit hashes" on the directory and the
volume root respectively.  The volume's commit hash changes whenever a
brick is added or removed, and a fix-layout is done.  A directory's
commit hash changes only when a full rebalance (not just fix-layout)
is done on it.  If all bricks are present and have a directory
commit hash that matches the volume commit hash, then we can assume
that every file is in its "proper" place. Therefore, if we look for
a file in that proper place and don't find it, we can assume it's not
on any other subvolume and *safely* skip the global (broadcast to all)
lookup.

Change-Id: Id6ce4593ba1f7daffa74cfab591cb45960629ae3
BUG: 1220064
Reviewed-on-master: http://review.gluster.org/#/c/7702/
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Signed-off-by: Shyam &lt;srangana@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10729
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Krishnan Parthasarathi &lt;kparthas@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Fix spurious failures</title>
<updated>2015-05-06T06:02:17+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2015-05-01T16:21:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=94e5f4bf6555fd102dcc15e3b91685d7728cd064'/>
<id>94e5f4bf6555fd102dcc15e3b91685d7728cd064</id>
<content type='text'>
        Backport of: http://review.gluster.org/10480
                     http://review.gluster.org/10487
                     http://review.gluster.org/10488
                     http://review.gluster.com/10540

- Use REBALANCE_TIMEOUT in EXPECT_WITHIN
- Use fdatasync to prevent write - behind from giving success
- Add logfile to glupy
- Check aux umount is unmounted for quota tests
- Disable flush behind so that file will be closed

Change-Id: Ia2447176273557738b7a71cc25dd9b9effc16d58
BUG: 1218485
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10543
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
        Backport of: http://review.gluster.org/10480
                     http://review.gluster.org/10487
                     http://review.gluster.org/10488
                     http://review.gluster.com/10540

- Use REBALANCE_TIMEOUT in EXPECT_WITHIN
- Use fdatasync to prevent write - behind from giving success
- Add logfile to glupy
- Check aux umount is unmounted for quota tests
- Disable flush behind so that file will be closed

Change-Id: Ia2447176273557738b7a71cc25dd9b9effc16d58
BUG: 1218485
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10543
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: fix spurious failures in trash.t</title>
<updated>2015-04-26T08:54:30+00:00</updated>
<author>
<name>Emmanuel Dreyfus</name>
<email>manu@netbsd.org</email>
</author>
<published>2015-04-26T03:29:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=dfc84d7a7c08d0fb7b1d0bfb8f9dd33ea8285bf1'/>
<id>dfc84d7a7c08d0fb7b1d0bfb8f9dd33ea8285bf1</id>
<content type='text'>
Fix timing problems that cause rare spurious failures in trash.t

Backport of I673e033b53b6b4bb993c22fadbdcee725b2c1e96

BUG: 1212676
Change-Id: I319f94b7e099e189c08543da526d90d36318fe4b
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10374
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix timing problems that cause rare spurious failures in trash.t

Backport of I673e033b53b6b4bb993c22fadbdcee725b2c1e96

BUG: 1212676
Change-Id: I319f94b7e099e189c08543da526d90d36318fe4b
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10374
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: trash.t portability fixes</title>
<updated>2015-04-26T04:51:25+00:00</updated>
<author>
<name>Emmanuel Dreyfus</name>
<email>manu@netbsd.org</email>
</author>
<published>2015-04-23T04:32:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=6bfd1e57e5fe4e94c6873054dc8636c98ac5691e'/>
<id>6bfd1e57e5fe4e94c6873054dc8636c98ac5691e</id>
<content type='text'>
        Backport of http://review.gluster.org/#/c/10327/

Fix various portability problems in trash.t
- work around timing issues
- avoid wildcard usage only supported by bash

Original patch from Anoop C S and Jiffin Tony Thottan.

Removed LONGER_HEAL_TIMEOUT from previous patch as it
seems to run fine without it now.

BUG: 1212676
Change-Id: I0f6f484209ef4db7e0a7b733b863927cb248e73e
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10346
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
        Backport of http://review.gluster.org/#/c/10327/

Fix various portability problems in trash.t
- work around timing issues
- avoid wildcard usage only supported by bash

Original patch from Anoop C S and Jiffin Tony Thottan.

Removed LONGER_HEAL_TIMEOUT from previous patch as it
seems to run fine without it now.

BUG: 1212676
Change-Id: I0f6f484209ef4db7e0a7b733b863927cb248e73e
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10346
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: portability fixes for ipc.t</title>
<updated>2015-03-31T06:45:10+00:00</updated>
<author>
<name>Emmanuel Dreyfus</name>
<email>manu@netbsd.org</email>
</author>
<published>2015-03-19T11:05:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=ffb2e85ff574891639d899cc59fcd9f75d4ce51e'/>
<id>ffb2e85ff574891639d899cc59fcd9f75d4ce51e</id>
<content type='text'>
This fixes portability problems in ipc.t so that it can run on NetBSD:

1) EOPNOTSUPP value is OS-dependent. Learn it from system headers
   instead of hard-coding it in the script

2) liglusterfs embbeds its own UUID implementation. The function name
   may be the same as in built(in implementation from libc, but with
   different prototype. In that case, we must make sure python will
   use libglusterfs's version, otherwise we will crash in libc's UUID
   code. Since dlopen() does not make any guarantee on what symbol
   will be used, me need to preload libglusterfs when loading python.
   This is done using LD_PRELOAD.

3) In python code we need to load with RTLD_GLOBAL global in order
   to have dependencies loaded

4) Python's ctypes.util.find_library does not lookup LD_LIBRARy_PATH
   and may therefore miss the library. On failure, retry with less
   portable but more reliable explicit name

BUG: 1129939
Change-Id: I024cdfd03a5a42a8ec23de38a99e7349aba92ea8
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/9944
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes portability problems in ipc.t so that it can run on NetBSD:

1) EOPNOTSUPP value is OS-dependent. Learn it from system headers
   instead of hard-coding it in the script

2) liglusterfs embbeds its own UUID implementation. The function name
   may be the same as in built(in implementation from libc, but with
   different prototype. In that case, we must make sure python will
   use libglusterfs's version, otherwise we will crash in libc's UUID
   code. Since dlopen() does not make any guarantee on what symbol
   will be used, me need to preload libglusterfs when loading python.
   This is done using LD_PRELOAD.

3) In python code we need to load with RTLD_GLOBAL global in order
   to have dependencies loaded

4) Python's ctypes.util.find_library does not lookup LD_LIBRARy_PATH
   and may therefore miss the library. On failure, retry with less
   portable but more reliable explicit name

BUG: 1129939
Change-Id: I024cdfd03a5a42a8ec23de38a99e7349aba92ea8
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/9944
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: portability fixes</title>
<updated>2015-03-30T12:32:56+00:00</updated>
<author>
<name>Emmanuel Dreyfus</name>
<email>manu@netbsd.org</email>
</author>
<published>2015-03-30T03:43:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=aff367a601351ff7bfbfc572d6ae0d4ffafae0f0'/>
<id>aff367a601351ff7bfbfc572d6ae0d4ffafae0f0</id>
<content type='text'>
Fix various portability problems in mount-nfs-auth.t,
quota-ancestry-building.t and trash.t:

- dd bs=1M is not portable, use dd bs=1024k instead
- dd bs=1MB is not portable iether, use dd bs=1000000 instead
- After restarting NFS service, wait for it to become available
- After killing a process, wait for it to terminate
- BSD awk does not accept a=b="", use a=""; b="" instead
- NetBSD displays the original program name in paenthesis at the end
  of ps output. Strip it using sed 's/ *([^()]*)$//' is we want just
  the command
- Do no use umount $N0, which leads to many troubles solved by
  EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
- The -p option for mkdir must be before the directory name
- du -b is not portable. Use ls -l instead.

BUG: 1129939
Change-Id: I3d44a10a37d47ebb6a263c206566487e3ffb85d8
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10033
Reviewed-by: Krishnan Parthasarathi &lt;kparthas@redhat.com&gt;
Reviewed-by: Anoop C S &lt;achiraya@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix various portability problems in mount-nfs-auth.t,
quota-ancestry-building.t and trash.t:

- dd bs=1M is not portable, use dd bs=1024k instead
- dd bs=1MB is not portable iether, use dd bs=1000000 instead
- After restarting NFS service, wait for it to become available
- After killing a process, wait for it to terminate
- BSD awk does not accept a=b="", use a=""; b="" instead
- NetBSD displays the original program name in paenthesis at the end
  of ps output. Strip it using sed 's/ *([^()]*)$//' is we want just
  the command
- Do no use umount $N0, which leads to many troubles solved by
  EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
- The -p option for mkdir must be before the directory name
- du -b is not portable. Use ls -l instead.

BUG: 1129939
Change-Id: I3d44a10a37d47ebb6a263c206566487e3ffb85d8
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10033
Reviewed-by: Krishnan Parthasarathi &lt;kparthas@redhat.com&gt;
Reviewed-by: Anoop C S &lt;achiraya@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: fix rebalance_completed</title>
<updated>2015-03-26T18:44:52+00:00</updated>
<author>
<name>Jeff Darcy</name>
<email>jdarcy@redhat.com</email>
</author>
<published>2015-03-25T13:21:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=02c045790136fc6e979a82d4d7fa8d1d298478fb'/>
<id>02c045790136fc6e979a82d4d7fa8d1d298478fb</id>
<content type='text'>
This was causing spurious faiures in bug-884455.t and possibly
elsewhere.

Change-Id: Iad6b7515ca0c7c485300f79dcd2477efc76877f8
BUG: 1163543
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9994
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was causing spurious faiures in bug-884455.t and possibly
elsewhere.

Change-Id: Iad6b7515ca0c7c485300f79dcd2477efc76877f8
BUG: 1163543
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9994
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>every/where: add GF_FOP_IPC for inter-translator communication</title>
<updated>2015-03-17T14:02:15+00:00</updated>
<author>
<name>Jeff Darcy</name>
<email>jdarcy@redhat.com</email>
</author>
<published>2015-03-11T00:14:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=0d2bed70faed3c63f25ed9269dc55562973ef9b7'/>
<id>0d2bed70faed3c63f25ed9269dc55562973ef9b7</id>
<content type='text'>
Several features - e.g. encryption, erasure codes, or NSR - involve
multiple cooperating translators which sometimes need a "private" means
of communication amongst themselves.  Historically we've used virtual or
synthetic xattrs, but that's not very elegant and clutters up the
getxattr/setxattr path which must also handle real xattr requests.  This
new fop should address that.

The only argument is an int32_t "op" which should be recognized by the
target translator.  It is recommended that translators using these
feature follow some convention regarding the ops that they define, to
avoid conflicts.  Using a hash of the target translator's type string as
a base for a series of ops would probably be a good start.  Any other
information can be passed in both directions using xdata.

The default behavior for this fop, as with any other, is to pass through
to FIRST_CHILD.  That makes use of this fop "transparent" to other
translators that were written before it existed, but it also means that
it only really works with pass-through translators.  If a routing
translator (such as DHT) or a fan-out translator (such as AFR) is
involved, the IPC might not reach its intended destination unless those
translators are modified to forward IPC fops along all paths.

If an IPC gets all the way to storage/posix it is considered an error,
much like an uncaught exception.  We don't actually *do* anything in
that case, but we do log it send back an EOPNOTSUPP error.  This makes
the "unrecognized opcode" condition distinguishable from the "no IPC
support" condition (which would yield an RPC error instead) so clients
can probe for the presence of a handler for their own favorite opcode
and either use that or use old-school xattrs depending on the result.

BUG: 1158628
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Change-Id: I84af1b17babe5b30ec03ecf027ae37d09b873968
Reviewed-on: http://review.gluster.org/8812
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Several features - e.g. encryption, erasure codes, or NSR - involve
multiple cooperating translators which sometimes need a "private" means
of communication amongst themselves.  Historically we've used virtual or
synthetic xattrs, but that's not very elegant and clutters up the
getxattr/setxattr path which must also handle real xattr requests.  This
new fop should address that.

The only argument is an int32_t "op" which should be recognized by the
target translator.  It is recommended that translators using these
feature follow some convention regarding the ops that they define, to
avoid conflicts.  Using a hash of the target translator's type string as
a base for a series of ops would probably be a good start.  Any other
information can be passed in both directions using xdata.

The default behavior for this fop, as with any other, is to pass through
to FIRST_CHILD.  That makes use of this fop "transparent" to other
translators that were written before it existed, but it also means that
it only really works with pass-through translators.  If a routing
translator (such as DHT) or a fan-out translator (such as AFR) is
involved, the IPC might not reach its intended destination unless those
translators are modified to forward IPC fops along all paths.

If an IPC gets all the way to storage/posix it is considered an error,
much like an uncaught exception.  We don't actually *do* anything in
that case, but we do log it send back an EOPNOTSUPP error.  This makes
the "unrecognized opcode" condition distinguishable from the "no IPC
support" condition (which would yield an RPC error instead) so clients
can probe for the presence of a handler for their own favorite opcode
and either use that or use old-school xattrs depending on the result.

BUG: 1158628
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Change-Id: I84af1b17babe5b30ec03ecf027ae37d09b873968
Reviewed-on: http://review.gluster.org/8812
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
