The symptoms are NFS mount failures reported on the console, but the
NFS mount working just fine when executed manually after booting as
completed.
It turns out that the DNS resolver coupled with the use of short-form
names in /etc/fstab was to blame for this. e.g. leaf has this:
crater:/usr/src /usr/src nfs ro,bg 0 0
apollo:/FreeBSD /FreeBSD nfs ro,bg 0 0
And sometimes /FreeBSD would not mount during booting. It turns out
that the network is sometimes not fully operational when the RCNG
script gets to the NFS mounts and this causes the DNS resolver to
fail.
Normally one would expect the resolver to retry a few times and
obtain
a successful lookup. However, when a shortform name like 'crater' is
used the resolver winds up trying two hostnames
'crater.dragonflybsd.org.'
and 'crater.'. If the first lookup times out, but the second one
does
not, the resolver returns the 'definitive' host-not-found error from
the second lookup when it really should return a try-again error from
the first lookup. The result is that the NFS mount fails because it
thinks that it was given definitely a non-existant hostname.
This problem can also cause weird failures to occur when the network
is sporatic or the name servers you are using get overloaded.
In anycase, I just committed a fix to the resolver (which hopefully
won't break anything else).