<p dir="ltr">Hi Anand, </p>
<p dir="ltr">Yes I tried both things you mention and they work just fine. </p>
<p dir="ltr">Thanks </p>
<div class="gmail_quote">On Feb 5, 2014 9:29 PM, "Anand Avati" <<a href="mailto:avati@gluster.org">avati@gluster.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">The nop xlator by itself seems OK. Have you tried the stripe config with the nop xlator on top? or even without the nop xlator?<div><br></div><div>Avati</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, Feb 5, 2014 at 3:26 PM, Lluís Pàmies i Juárez <span dir="ltr"><<a href="mailto:llpamies@pamies.cat" target="_blank">llpamies@pamies.cat</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hello,<div><br></div><div>As a proof of concept I'm trying to write a xlator that does nothing, I call it "nop". The code for "nop.c" is simply:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div><div><font face="courier new, monospace">#include "config.h"</font></div></div><div><div><font face="courier new, monospace">#include "call-stub.h"</font></div></div><div><div><font face="courier new, monospace">struct xlator_fops fops = {};</font></div>
</div><div><div><font face="courier new, monospace">struct xlator_cbks cbks = {};</font></div></div><div><div><font face="courier new, monospace">struct xlator_dumpops dumpops = {};</font></div></div><div><div><font face="courier new, monospace">struct volume_options options[] = {{.key={NULL}},};</font></div>
</div><div><div><font face="courier new, monospace">int32_t init (xlator_t *this){return 0;}</font></div></div><div><div><font face="courier new, monospace">int fini (xlator_t *this){return 0;}</font></div></div></blockquote>
<div><div><br></div><div>And I compile it with:</div><div><div><font face="courier new, monospace">$ gcc -fPIC -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DGF_LINUX_HOST_OS -shared -nostartfiles -lglusterfs -lpthread -I${GFS} -I${GFS}/libglusterfs/src -I${GFS}/contrib/uuid nop.c -o nop.so</font></div>
</div><div><br></div><div>Then, if I try a test.vol file like that:</div><div><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><font face="courier new, monospace">volume test-posix</font></div>
</div></div><div><div><div><font face="courier new, monospace"> type storage/posix</font></div></div></div><div><div><div><font face="courier new, monospace"> option directory /home/llpamies/Projects/gluster/test-split/node0-data</font></div>
</div></div><div><div><div><font face="courier new, monospace">end-volume</font></div></div></div><div><div><div><font face="courier new, monospace"><br></font></div></div></div><div><div><div><font face="courier new, monospace">volume test-nop</font></div>
</div></div><div><div><div><font face="courier new, monospace"> type features/nop</font></div></div></div><div><div><div><font face="courier new, monospace"> subvolumes test-posix</font></div></div></div><div><div>
<div>
<font face="courier new, monospace">end-volume</font></div></div></div><div><div><div><font face="courier new, monospace"><br></font></div></div></div><div><div><div><font face="courier new, monospace">volume test-cache</font></div>
</div></div><div><div><div><font face="courier new, monospace"> type performance/io-cache</font></div></div></div><div><div><div><font face="courier new, monospace"> subvolumes test-nop</font></div></div></div><div><div>
<div><font face="courier new, monospace">end-volume</font></div></div></div></blockquote><div><div><br></div><div>and mount it with:</div><div><font face="courier new, monospace">$ glusterfs --debug -f test.vol /mount/point</font></div>
<div><br></div><div>It seems to work fine, doing nothing. However, when used together with the stripe xlator as follows:<br></div><div><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>
<div><div><font face="courier new, monospace">volume test-posix0</font></div></div></div><div><div><div><font face="courier new, monospace"> type storage/posix</font></div></div></div><div><div><div><font face="courier new, monospace"> option directory /home/llpamies/Projects/gluster/test-split/node0-data</font></div>
</div></div><div><div><div><font face="courier new, monospace">end-volume</font></div></div></div><div><div><div><font face="courier new, monospace"><br></font></div></div></div><div><div><div><font face="courier new, monospace">volume test-posix1</font></div>
</div></div><div><div><div><font face="courier new, monospace"> type storage/posix</font></div></div></div><div><div><div><font face="courier new, monospace"> option directory /home/llpamies/Projects/gluster/test-split/node1-data</font></div>
</div></div><div><div><div><font face="courier new, monospace">end-volume</font></div></div></div><div><div><div><font face="courier new, monospace"><br></font></div></div></div><div><div><div><font face="courier new, monospace">volume test-nop0</font></div>
</div></div><div><div><div><font face="courier new, monospace"> type features/nop</font></div></div></div><div><div><div><font face="courier new, monospace"> subvolumes test-posix0</font></div></div></div><div><div>
<div><font face="courier new, monospace">end-volume</font></div></div></div><div><div><div><font face="courier new, monospace"><br></font></div></div></div><div><div><div><font face="courier new, monospace">volume test-nop1</font></div>
</div></div><div><div><div><font face="courier new, monospace"> type features/nop</font></div></div></div><div><div><div><font face="courier new, monospace"> subvolumes test-posix1</font></div></div></div><div><div>
<div><font face="courier new, monospace">end-volume</font></div></div></div><div><div><div><font face="courier new, monospace"><br></font></div></div></div><div><div><div><font face="courier new, monospace">volume test-stripe</font></div>
</div></div><div><div><div><font face="courier new, monospace"> type cluster/stripe</font></div></div></div><div><div><div><font face="courier new, monospace"> subvolumes test-nop0 test-nop1</font></div></div></div>
<div><div><div><font face="courier new, monospace">end-volume</font></div></div></div></blockquote><div><div><br></div><div>Glusterfs hangs during the first fuse lookup for ".Trash", and /mount/point looks unmounted with ???? permissions etc.</div>
<div><br></div><div>Does it look like some bug in the stripe xlator or is there something fundamentally wrong with the nop xlator?</div><div><br></div><div>Thank you,</div><span><font color="#888888"><div>
</div>-- <br>Lluís</font></span></div></div>
<br>_______________________________________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@nongnu.org" target="_blank">Gluster-devel@nongnu.org</a><br>
<a href="https://lists.nongnu.org/mailman/listinfo/gluster-devel" target="_blank">https://lists.nongnu.org/mailman/listinfo/gluster-devel</a><br>
<br></blockquote></div><br></div>
</blockquote></div>