<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jan 13, 2017 at 1:48 PM, Lian, George (Nokia - CN/Hangzhou) <span dir="ltr">&lt;<a href="mailto:george.lian@nokia.com" target="_blank">george.lian@nokia.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I try write FOP test on case of volume of gusterfs is full, the detail process and some investigation is as the below:<br>
------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------------------<br>
1)  use dd to write full with volume export<br>
dd if=/dev/zero of=/mnt/export/large.tar bs=10M count=100000<br>
<br>
2) set write-behind option on<br>
   # echo &quot;asdf&quot; &gt; /mnt/export/test<br>
   #<br>
 No error prompt here, and try cat the file with following information.<br>
   # cat /mnt/export/test<br>
   cat: /mnt/export/test: No such file or directory<br>
<br>
   # strace echo &quot;asdf&quot; &gt; /mnt/export/test<br>
        write(1, &quot;asdf\n&quot;, 5)                   = 5<br>
        close(1)                                = -1 ENOSPC (No space left on device)<br>
<br>
3) set write-behind option off<br>
   # echo &quot;asdf&quot; &gt; /mnt/export/test<br>
   #-bash: echo: write error: No space left on device<br>
 Have error prompt here.<br>
   # cat /mnt/export/test<br>
   cat: /mnt/export/test: No such file or directory<br>
<br>
   # strace echo &quot;asdf&quot; &gt; /mnt/export/test<br>
        write(1, &quot;asdf\n&quot;, 5)                   = -1 ENOSPC (No space left on device)<br>
        close(1)                                = 0<br>
------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>-<br>
In my view , the action of FOP write is right to application.<br>
But when the write-behind option is set on, the write FOP return success but it can&#39;t really write to gluster volume.<br>
It will let application confuse, and it will lead to more application issue.<br>
<br>
Although the close will return error, but as you know, more application will not do close FOP until the application exit,<br>
In this case, write FOP show success, but when another thread want to read it, but it can&#39;t read anything.<br>
<br>
Do you think it is an issue?<br></blockquote><div><br></div><div>No. The behavior of write-behind is posix-complaint. In fact I think this is the behavior of any write-back cache implementation. As to Posix compliance, man 2 write has this section:<br><br></div><div>&lt;man 2 write&gt;<br><br></div><div>NOTES<br>       Not  checking  the  return value of close() is a common but nevertheless serious programming error.  It is quite possible that errors on a previous write(2) operation are first reported at the final close().  Not checking the return value when closing the file may lead to silent loss of  data.   This  can  especially be observed with NFS and with disk quota.<br><br>       A successful close does not guarantee that the data has been successfully saved to disk, as the kernel defers writes.  It is not common for a file system to flush the buffers when the stream is closed.  If you need to be sure that the data is physically stored use fsync(2).  (It will depend on the disk  hardware at this point.)<br><br></div><div>&lt;/man&gt;<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
If not, do you have any comments for this inconvenient?<br>
<br>
<br>
Best Regards,<br>
George<br>
______________________________<wbr>_________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a><br>
<a href="http://www.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://www.gluster.org/<wbr>mailman/listinfo/gluster-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Raghavendra G<br></div>
</div></div>