`<div>That is correct I am on 151020 just moved up from LTS for this feature. </div><div><br></div><div>Just to be clear about one thing. </div><div><br></div><div>If you run this on a regular directory in the LX zone there is no issue. It only takes place if the directory being read is from the LOFS mount of a ZFS dataset. My mount has a property of read only. I did not try without the readonly option. </div><div><br></div><div>That would be awesome if there is already a fix. This feature is pretty amazing!</div><div><br><div class="gmail_quote"><div>On Mon, Jan 16, 2017 at 3:24 PM Dan McDonald <<a href="mailto:danmcd@omniti.com">danmcd@omniti.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_msg">Thank you. I've discussed with Joyent, and they couldn't reproduce it. They have a fix we don't, so between that and whether or not it's fixed on bloody (you're on r151020, right mini?), I'll have to try it myself. It's possible the Joyent fix (outside LX, not yet upstreamed) may cure what ails you.</div><div id="m_3729123879694760972AppleMailSignature" class="gmail_msg"><br class="gmail_msg"></div><div id="m_3729123879694760972AppleMailSignature" class="gmail_msg">FYI,</div><div id="m_3729123879694760972AppleMailSignature" class="gmail_msg">Dan<br class="gmail_msg"><br class="gmail_msg">Sent from my iPhone (typos, autocorrect, and all)</div></div><div class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg">On Jan 16, 2017, at 1:02 PM, Mini Trader <<a href="mailto:miniflowtrader@gmail.com" class="gmail_msg" target="_blank">miniflowtrader@gmail.com</a>> wrote:<br class="gmail_msg"><br class="gmail_msg"></div><blockquote type="cite" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">1. Does not happen on native.<div class="gmail_msg">2. My non-global zones are under /tank/zones/</div><div class="gmail_msg">3. It uses python - but the calls are all stdlib calls, no magic they are going directly to C. You can reproduce with same calls on C the system will eventually return ENOENT/ERRNO=2.</div><div class="gmail_msg">4. Looks to be LX specific. I also tested in global zone with LOFS. No issue.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Thanks!</div></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Mon, Jan 16, 2017 at 12:13 PM, Dan McDonald <span class="gmail_msg"><<a href="mailto:danmcd@omniti.com" class="gmail_msg" target="_blank">danmcd@omniti.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you for doing this! Some questions in-line:<br class="gmail_msg"><br><br><span class="gmail_msg"><br class="gmail_msg"><br><br>> On Jan 16, 2017, at 10:40 AM, Mini Trader <<a href="mailto:miniflowtrader@gmail.com" class="gmail_msg" target="_blank">miniflowtrader@gmail.com</a>> wrote:<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> I spent a bit of time yesterday using dtrace and looking at the source. I believe I found why the system is falsely reporting that the current directory does not exist and have created a simple program to reproduce the problem. The problem seems to be related to when v_path in the vnode struct goes above a certain number of characters. This will only break on LOFS if inside the LX zone. Every time a program performs a chdir('..') and up to another dir the system stored working directory is falsely growing.<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br></span>Have you tried this on a native zone (just to make sure) as well?<br class="gmail_msg"><br><br><span class="gmail_msg"><br class="gmail_msg"><br><br>> Here are the steps to reproduce.<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> 1. Mount a ZFS dataset via LOFS for your LX zone.<br class="gmail_msg"><br><br>> 2. Create a directory in the dataset called test<br class="gmail_msg"><br><br>> 3. In the test directory create another directory called 'Chdir Test'<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br></span>Does it matter where (global zone, inside LX zone) these directories gets created?<br class="gmail_msg"><br><br><span class="gmail_msg"><br class="gmail_msg"><br><br>> 4. Run the program below. All this is doing is going up a directory and dropping down a directory. We want to fill up v_path.<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br></span>Python...<br class="gmail_msg"><br><br><span class="gmail_msg"><br class="gmail_msg"><br><br>> 5. The program will bomb before iteration 1000. Really there should be no limit.<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> import os<br class="gmail_msg"><br><br>> import time<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> #time.sleep(15)<br class="gmail_msg"><br><br>> os.chdir('/tank/bigtest/test')<br class="gmail_msg"><br><br>> for i in xrange(1000):<br class="gmail_msg"><br><br>> print i<br class="gmail_msg"><br><br>> os.chdir('Chdir Test')<br class="gmail_msg"><br><br>> os.getcwd()<br class="gmail_msg"><br><br>> os.chdir('..')<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> I used the following dtrace to get insight into what was happening (ran it from global zone).<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> dtrace -n 'fbt:genunix:vnodetopath_common:entry /pid == $target/ { printf("%s\n",stringof(args[1]->v_path)) }' -q -x strsize=4k -p 22482<br class="gmail_msg"><br><br>><br class="gmail_msg"><br><br>> Uncomment the sleep line so that you can determine the PID when running dtrace.<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br></span>I'm forwarding this note on to Joyent, so they can see what's going on. I think this may be an LX bug, but I'm not sure.<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br>Thanks,<br class="gmail_msg"><br><br>Dan<br class="gmail_msg"><br><br><br class="gmail_msg"><br><br></blockquote></div><br class="gmail_msg"></div><br><br></div></blockquote></div></blockquote></div></div>
`