<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Mar 5, 2014, at 1:38 PM, Chris Siebenmann <<a href="mailto:cks@cs.toronto.edu">cks@cs.toronto.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> It turns out that there is an unpleasant consequence to syseventd being<br>willing to mount ZFS filesystems for additional pools before the 'zfs<br>mount -a' has run: you can get unresolvable mount conflicts in some<br>situations.<br></blockquote><div><br></div><div>The basic problem affects other file systems, too. The general best practice</div><div>has always been to keep your hierarchy flat. But...</div><br><blockquote type="cite"><br> Suppose that you have /opt as a separate ZFS filesystem in your<br>root pool and you also have /opt/bigthing as a ZFS filesystem in<br>a second pool. You can set this up and everything looks right, but<br>if you reboot and syseventd beats 'zfs mount -a' for whatever reasons,<br>you get an explosion:<br><br>- we start with no additional filesystems mounted, including /opt<br>- syseventd grabs the second pool, starts mounting things, and<br> mounts /opt/bigthing on the *bare* root filesystem, making /opt<br> (if necessary) in the process.<br>- 'zfs mount -a' reaches /opt and attempts to mount it. However,<br> because syseventd has already mounted /opt/bigthing, /opt is not<br> empty. FAILURE.<br><br>As far as I can tell there is no particularly good cure for this. To<br>me it really looks like syseventd should either not be started before<br>fs-local (although I don't know if anything breaks if its startup is<br>deferred) or that it should not be mounting ZFS filesystems (although I<br>can half-see the attraction of it doing so).<br></blockquote><div><br></div><div>... a fix would necessitate building a multi-pool dependency tree. Where </div><div>would this live?</div><div><br></div><div>How about if we put it in /etc?</div><div><br></div><div>This is effectively what vfstab does, though in a more simplistic manner: it </div><div>simply sorts the list of file systems and mounts the short path first. The difference</div><div>between vfstab and ZFS automatic mounts is that the former can be multi-pool</div><div>aware, even if it doesn't know anything about pools at all. Hence the "solution"</div><div>is ZFS mountpoint=legacy and use vfstab.</div><div> -- richard</div></div><br><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">--</div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br></div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><a href="mailto:Richard.Elling@RichardElling.com">Richard.Elling@RichardElling.com</a><br>+1-760-896-4422<br><br><br></div></span></div></span></div></span></div></span></div>
</div>
<br></body></html>