svn commit: r344569 - in head/cddl/contrib/opensolaris: cmd/zfs lib/libzfs/common
Cy Schubert
Cy.Schubert at cschubert.com
Wed Feb 27 13:04:41 UTC 2019
In message <0563e72c-c9e3-a476-ce43-d4a67c454508 at FreeBSD.org>, Andriy
Gapon wri
tes:
> On 26/02/2019 22:58, Cy Schubert wrote:
> > I was talking about nested datasets, i.e. tank/freebsd/git/current and
> > tank/freebsd/git/ports are four levels deep.
>
> We usually don't call them "nested". In fact, I don't think that we call the
> m
> anything special because having N levels deep datasets (N > 1) is just a comm
> on
> thing. We may call them subordinate or child datasets when mentioning a
> relation to a parent dataset.
>
> > In my case the ports
> > dataset was mounted while the current dataset was not, though zfs
> > believed it was. unmounting the current dataset and remounting it, zfs
> > umount .../current; zfs mount .../current worked around the issue.
>
> Are you sure that it was not mounted?
Yes.
> Have you checked that by looking at mount output?
Yes
> I suspect that it was mounted, just not where you expected and its mount path
> was covered by another filesystem.
If you read my original email a zfs umount followed by a zfs mount for
each affected filesystem worked around the problem. zfs properties
showed that each and every filesystem was mounted. mount(1) and df(1)
confirmed they were not. Furthermore nullfs mounts with the late
attribute failed to mount because their underlying zfs datasets were
not mounted -- this is what clued me into the problem in the first
place, a FreeBSD system dropping into single user at boot. And, no,
fstab on that machine had not been changed for months, them machine
failed to boot. So, no, I was not mistaken. I was rather displeased
because I had to try to fix the problem using ssh on a phone to a
machine connected to a console server.
>
> E.g., lets consider this hypothetical case.
> I have two same level datasets tank/freebsd/src and tank/freebsd/sys where
> tank/freebsd/src is mounted at /usr/src and tank/freebsd/sys is mounted at
> /usr/src/sys (a child directory of /usr/src).
> If tank/freebsd/src is mounted first, then everything is okay, tank/freebsd/s
> ys
> would be mounted on top of sys directory in tank/freebsd/src.
> If, however, tank/freebsd/sys is mounted first (assuming that path /usr/src/s
> ys
> exists in a root filesystem), then mounting tank/freebsd/src would simply hid
> e
> tank/freebsd/sys "below" it as /usr/src/sys would be sys directory in
> tank/freebsd/src.
>
> I guess that this is a kind of problem that could be introduced with parallel
> mounting. And I guess that this is a kind of problem that you might actually
> have. But it's just a guess.
No. I had not mistakenly mounted the datasets elsewhere, mistakenly
deleted them or mistakenly changed their mount attributes. It was a
real, not imagined, regression fixed by the patch posted near the end
of the email thread.
--
Cheers,
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX: <cy at FreeBSD.org> Web: http://www.FreeBSD.org
The need of the many outweighs the greed of the few.
More information about the svn-src-head
mailing list