<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif"><div class="gmail_default" style="font-size:12.8px"><div class="gmail_default" style="font-size:12.8px">I agree with you Nick, which is why I thought its a problem on the ndnfs-end. I should have been more clearer, but the "File is empty" error appears on the ndnfs-server log, when trying to download either via ndnfs-client or PyNDN client.  </div><div class="gmail_default" style="font-size:12.8px"><br></div><div class="gmail_default" style="font-size:12.8px">I am writing down the exact outputs that might help us towards a better conclusion. </div><div class="gmail_default" style="font-size:12.8px"><br></div><div class="gmail_default" style="font-size:12.8px"><i>When I use<a href="https://github.com/remap/ndnfs-port/blob/master/test/client.cc" target="_blank"> ndnfs client</a> or my PyNDN client to download the 10MB file (exact multiple of 8KB):</i></div><div class="gmail_default" style="font-size:12.8px">Step 1: Last few lines of ndnfs log while moving the file to mount point (before trying downloading it from the client) :</div><div class="gmail_default" style="font-family:arial,sans-serif;font-size:12.8px"><blockquote class="gmail_quote" style="font-family:tahoma,sans-serif;margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font color="#741b47" size="1"><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1">- 1501103069 DEBUG: sign_segment: path=/oneMB.txt, ver=1501103054, seg=127, len=8192<br></span><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1">- 1501103069 DEBUG: sign_segment: segment name is /ndn/broadcast/ndnfs/oneMB.txt<wbr>/%FDYy%03%CE/%00%7F<br></span><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1">seg:127size:8192<br></span><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1">- 1501103069 DEBUG: sign_segment: path=/oneMB.txt, ver=1501103054, seg=128, len=0<br></span><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1">- 1501103069 DEBUG: sign_segment: segment name is /ndn/broadcast/ndnfs/oneMB.txt<wbr>/%FDYy%03%CE/%00%80<br></span><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1">seg:128size:0</span></font></blockquote><div style="font-family:tahoma,sans-serif">Step 2: Now, when trying to downloading with ndnfs remote client, the application times out.</div><div style="font-family:tahoma,sans-serif">Step 3: Last few lines of ndnfs-server log when using ndnfs client:</div><div><blockquote class="gmail_quote" style="font-family:tahoma,sans-serif;margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font size="1"><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1"><font color="#741b47">- 1501103131 DEBUG: sendFileContent: Data returned with name: /ndn/broadcast/ndnfs/oneMB.txt<wbr>/%FDYy%03%CE/%00%7F<br></font></span><span class="gmail-m_-8193271764326595452m_-8530924727429629200gmail-s1"><font color="#741b47">- 1501103131 DEBUG: sendFileContent: File is empty. Name: /ndn/broadcast/ndnfs/oneMB.txt<wbr>/%FDYy%03%CE/%00%80</font></span></font></blockquote><div style="font-family:tahoma,sans-serif"> Last few lines of ndnfs-server log when using PyNDN client:</div><div><font face="tahoma, sans-serif" color="#741b47" size="1"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">- 1501103887 DEBUG: sendFileMeta: Data returned with name: /ndn/broadcast/ndnfs/oneMB.txt<wbr>/%C1.FS.file/%FDYy%03%CE<br>- 1501103887 ERROR: onInterest: child selectors, min/maxSuffixComponents or excludes are not supported in current implementation.<br>- 1501103887 DEBUG: sendFileContent: Data returned with name: /ndn/broadcast/ndnfs/oneMB.txt<wbr>/%FDYy%03%CE/%00%00<br>- 1501103887 ERROR: onInterest: child selectors, min/maxSuffixComponents or excludes are not supported in current implementation.<br>- 1501103887 DEBUG: sendFileContent: File is empty. Name: /ndn/broadcast/ndnfs/oneMB.txt<wbr>/%FDYy%03%CE/%00%80</blockquote></font></div></div></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:12.8px"><br clear="all"><div><div class="gmail-m_-8193271764326595452m_-8530924727429629200gmail_signature"><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><font face="tahoma, sans-serif"><span style="font-size:12.8px">Regards,</span><br style="font-size:12.8px"><span style="font-size:12.8px">Ishita</span></font></div></div><div dir="ltr"><font face="tahoma, sans-serif"><span style="font-size:12.8px"><br></span></font></div></div></div></div></div><div class="gmail-yj6qo gmail-ajU"><div id="gmail-:8bt" class="gmail-ajR" tabindex="0"><img class="gmail-ajT" src="https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif" style="opacity: 0.3;"></div></div><div class="gmail-adL"><div class="gmail-adm"></div><div class="gmail-im"><div class="gmail_quote">On Wed, Jul 26, 2017 at 2:52 PM, Nick Briggs <span dir="ltr"><<a href="mailto:nicholas.h.briggs@gmail.com" target="_blank">nicholas.h.briggs@gmail.com</a>></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"><div style="word-wrap:break-word">Private reply:<div><br></div><div>Changing the segment size in the ndnfs code would not be a good idea.  It's already having to use IP fragmentation to get the 8K+ byte packets transferred -- if you increase the segment size too much (and you're not running on a perfectly reliable medium) the chances of losing a fragment and requiring retransmission will get unmanageable.  8K is a compromise to reduce the signing/verification overhead down, but lets it run in jumbo ethernet frames when available, and matches the physical disk I/O size reasonably.</div><div><br></div>I just looked at the segment fetcher code, and at least the description of the termination condition appears correct --<br><br><br><span class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937Apple-tab-span" style="white-space:pre-wrap">    </span>5. Keep sending Interests for the next segment while the retrieved Data does<br>   <span class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937Apple-tab-span" style="white-space:pre-wrap">    </span>    not have a FinalBlockId or the FinalBlockId != Data.getName().get(-1).<br><br><div>(or, put more logically, ... until the retrieved Data has a FinalBlockId == Data.getName().get(-1))</div><div><br></div><div>There's nothing obvious in the code that should make it fail if it gets a zero length final block.   You'll notice that the fetcher code appears to keep all the content objects received and then when it gets to the final one  (lines 286-291) figure out the total size, construct a byte array of the appropriate size, and then stuff the payload into the block.</div><div><br></div><div>You mentioned that there was an exception when the file size was a multiple of 8192 bytes -- I don't see why that would be the case for this code, and the onComplete handler that you passed in would only get the complete blob of data...</div><span class="gmail-m_-8193271764326595452m_-8530924727429629200HOEnZb"><font color="#888888"><div><br></div><div>-- Nick</div><div><br></div></font></span><div><br><div><blockquote type="cite"><div>On Jul 26, 2017, at 11:14 AM, Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu" target="_blank">shijunxiao@email.arizona.edu</a>> wrote:</div><br class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937Apple-interchange-newline"><div><div><div dir="auto">Hi Ishita</div><div dir="auto"><br></div><div dir="auto">As indicated on <a href="http://www.lists.cs.ucla.edu/pipermail/ndn-interest/2017-July/001852.html" target="_blank">http://www.lists.cs.ucla.ed<wbr>u/pipermail/ndn-interest/2017-<wbr>July/001852.html</a> , the consumer app is at fault. If you refuse to provide the source code of the consumer app, I can't help you.</div><div dir="auto"><br></div><div dir="auto">My deployment publishes files over 30MB. The client side is ndn protocol add-on for Firefox. I never attempt to change any setting in ndnfs-port because it works out of box.</div><div dir="auto"><br></div><div dir="auto">Yours, Junxiao</div><br><div class="gmail_quote"><div>On Wed, Jul 26, 2017 at 09:13 Ishita Dasgupta <<a href="mailto:ishita.dasgupta@gmail.com" target="_blank">ishita.dasgupta@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail_default" style="font-family:tahoma,sans-serif">Hi Junxiao, </div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I understand that directly sharing my app would be helpful, but including the code to my app would not be any more relevant, also I am not sure of my sharing permissions. The app simply uses this PyNDN segment fetcher to download a file, the link to which I provided above (along with a lot other completely unrelated tasks that do not affect the file download). </div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Also, you once mentioned having deployed ndnfs to download a 30MB file. Did you ever work with changing the segment length in ndnfs server from 8KB to something else ?</div><div class="gmail_extra"><br clear="all"><div><div class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937m_-4773145971192245474m_-8129838083344016149m_8280390094992082291gmail_signature"><font face="tahoma, sans-serif"><span style="font-size:12.8px">Regards,</span><br style="font-size:12.8px"><span style="font-size:12.8px">Ishita </span></font><br></div></div></div></div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 26, 2017 at 12:03 PM, Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu" target="_blank">shijunxiao@email.arizona.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Hi Ishita</div><div dir="auto"><br></div><div dir="auto">The link doesn't contain code of your app.</div><div dir="auto"><br></div><div dir="auto">Yours, Junxiao<br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On Jul 26, 2017 08:45, "Ishita Dasgupta" <<a href="mailto:ishita.dasgupta@gmail.com" target="_blank">ishita.dasgupta@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937m_-4773145971192245474m_-8129838083344016149m_8280390094992082291m_-6208806669808401400quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_default" style="font-family:tahoma,sans-serif"><div class="gmail_default">Hi Junxiao, </div><div class="gmail_default"><br></div><div class="gmail_default">Sure. </div><div class="gmail_default"><br></div><div class="gmail_default">My application imports PyNDN libraries. I am utilising this segment fetcher PyNDN library(<a href="https://github.com/named-data/PyNDN2/blob/a4df2d207c1b76434a400f54fcaf5d45eea8b844/python/pyndn/util/segment_fetcher.py" target="_blank">https://github.com/nam<wbr>ed-data/PyNDN2/blob/a4df2d207c<wbr>1b76434a400f54fcaf5d45eea8b844<wbr>/python/pyndn/util/segment_fet<wbr>cher.py</a>) to download the file segments that ndnfs offers. </div><div class="gmail_extra"><br clear="all"><div><div class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937m_-4773145971192245474m_-8129838083344016149m_8280390094992082291m_-6208806669808401400m_4946572075334840023m_7146518046331540930gmail-m_7136255630199173089m_1528469317680385715gmail_signature"><font face="tahoma, sans-serif" style="font-size:12.8px"><span style="font-size:12.8px">Regards,</span><br style="font-size:12.8px"><span style="font-size:12.8px">Ishita</span></font><div class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937m_-4773145971192245474m_-8129838083344016149m_8280390094992082291m_-6208806669808401400m_4946572075334840023m_7146518046331540930gmail-yj6qo gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937m_-4773145971192245474m_-8129838083344016149m_8280390094992082291m_-6208806669808401400m_4946572075334840023m_7146518046331540930gmail-ajU" style="font-family:arial,sans-serif;font-size:12.8px"></div></div></div></div></div><div class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937m_-4773145971192245474m_-8129838083344016149m_8280390094992082291m_-6208806669808401400elided-text"><div class="gmail_extra"><div class="gmail-m_-8193271764326595452m_-8530924727429629200m_-5096272505676874937m_-4773145971192245474m_-8129838083344016149m_8280390094992082291m_-6208806669808401400m_4946572075334840023m_7146518046331540930gmail_signature"><br></div></div></div></blockquote></div></div></div></div></blockquote></div><br></div></div></blockquote></div></div>______________________________<wbr>_________________<br>Ndn-interest mailing list<br><a href="mailto:Ndn-interest@lists.cs.ucla.edu" target="_blank">Ndn-interest@lists.cs.ucla.edu</a><br><a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest" target="_blank">http://www.lists.cs.ucla.edu/m<wbr>ailman/listinfo/ndn-interest</a><br></div></blockquote></div></div><div><br></div></div></blockquote></div></div></div></div></div></div></div>