<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>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="AppleMailSignature"><br></div><div id="AppleMailSignature">FYI,</div><div id="AppleMailSignature">Dan<br><br>Sent from my iPhone (typos, autocorrect, and all)</div><div><br>On Jan 16, 2017, at 1:02 PM, Mini Trader <<a href="mailto:miniflowtrader@gmail.com">miniflowtrader@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">1. Does not happen on native.<div>2. My non-global zones are under /tank/zones/</div><div>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>4. Looks to be LX specific.  I also tested in global zone with LOFS.  No issue.</div><div><br></div><div>Thanks!</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 16, 2017 at 12:13 PM, Dan McDonald <span dir="ltr"><<a href="mailto:danmcd@omniti.com" target="_blank">danmcd@omniti.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you for doing this!  Some questions in-line:<br>
<span class=""><br>
> On Jan 16, 2017, at 10:40 AM, Mini Trader <<a href="mailto:miniflowtrader@gmail.com">miniflowtrader@gmail.com</a>> wrote:<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>
<br>
</span>Have you tried this on a native zone (just to make sure) as well?<br>
<span class=""><br>
> Here are the steps to reproduce.<br>
><br>
> 1. Mount a ZFS dataset via LOFS for your LX zone.<br>
> 2. Create a directory in the dataset called test<br>
> 3. In the test directory create another directory called 'Chdir Test'<br>
<br>
</span>Does it matter where (global zone, inside LX zone) these directories gets created?<br>
<span class=""><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>
<br>
</span>Python...<br>
<span class=""><br>
> 5. The program will bomb before iteration 1000.  Really there should be no limit.<br>
><br>
> import os<br>
> import time<br>
><br>
> #time.sleep(15)<br>
> os.chdir('/tank/bigtest/test')<br>
> for i in xrange(1000):<br>
>     print i<br>
>     os.chdir('Chdir Test')<br>
>     os.getcwd()<br>
>     os.chdir('..')<br>
><br>
> I used the following dtrace to get insight into what was happening (ran it from global zone).<br>
><br>
> dtrace -n 'fbt:genunix:vnodetopath_<wbr>common:entry /pid == $target/ { printf("%s\n",stringof(args[1]<wbr>->v_path)) }' -q -x strsize=4k -p 22482<br>
><br>
> Uncomment the sleep line so that you can determine the PID when running dtrace.<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>
<br>
Thanks,<br>
Dan<br>
<br>
</blockquote></div><br></div>
</div></blockquote></body></html>