Bug 269012 - sysutils/vm-bhyve: VMs are not started on FreeBSD 13.1 - might be rc.d
Summary: sysutils/vm-bhyve: VMs are not started on FreeBSD 13.1 - might be rc.d
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-01-17 17:30 UTC by Dan Langille
Modified: 2023-07-29 06:16 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (churchers)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Langille freebsd_committer freebsd_triage 2023-01-17 17:30:36 UTC
I suspect the current rc.d script in FreeBSD 13.1 contains circular dependencies:

[slocum dan ~] % rcorder /etc/rc.d/* /usr/local/etc/rc.d/*                                       16:42:28
rcorder: file `/usr/local/etc/rc.d/vm' is before unknown provision `dnsmasq'
rcorder: Circular dependency on file `/usr/local/etc/rc.d/vm'.
rcorder: Circular dependency on provision `dmesg': /etc/rc.d/dmesg -> /etc/rc.d/mountcritremote -> /etc/rc.d/gssd -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/dmesg.
rcorder: Circular dependency on provision `mountcritremote': /etc/rc.d/mountcritremote -> /etc/rc.d/gssd -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /etc/rc.d/devfs -> /etc/rc.d/mountcritremote.
rcorder: `/etc/rc.d/devfs' was seen in circular dependencies for 1 times.
rcorder: Circular dependency on file `/etc/rc.d/kdc'.
rcorder: Circular dependency on provision `NETWORKING': /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING.
rcorder: `/etc/rc.d/kdc' was seen in circular dependencies for 3 times.
rcorder: Circular dependency on provision `mountcritremote': /etc/rc.d/mountcritremote -> /etc/rc.d/gssd -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /etc/rc.d/mdconfig2 -> /etc/rc.d/mountcritremote.
rcorder: `/etc/rc.d/mdconfig2' was seen in circular dependencies for 1 times.
rcorder: Circular dependency on provision `mountcritremote': /etc/rc.d/mountcritremote -> /etc/rc.d/gssd -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /etc/rc.d/syslogd -> /etc/rc.d/newsyslog -> /etc/rc.d/mountcritremote.
rcorder: `/etc/rc.d/newsyslog' was seen in circular dependencies for 1 times.
rcorder: Circular dependency on provision `mountcritremote': /etc/rc.d/mountcritremote -> /etc/rc.d/gssd -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /etc/rc.d/syslogd -> /etc/rc.d/mountcritremote.
rcorder: `/etc/rc.d/syslogd' was seen in circular dependencies for 2 times.
rcorder: Circular dependency on provision `NETWORKING': /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /usr/local/etc/rc.d/named -> /etc/rc.d/NETWORKING.
rcorder: `/usr/local/etc/rc.d/named' was seen in circular dependencies for 1 times.
rcorder: Circular dependency on provision `mountcritremote': /etc/rc.d/mountcritremote -> /etc/rc.d/gssd -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /etc/rc.d/linux -> /etc/rc.d/archdep -> /etc/rc.d/mountcritremote.
rcorder: `/etc/rc.d/archdep' was seen in circular dependencies for 1 times.
rcorder: `/etc/rc.d/linux' was seen in circular dependencies for 1 times.
rcorder: Circular dependency on provision `mountcritremote': /etc/rc.d/mountcritremote -> /etc/rc.d/gssd -> /etc/rc.d/kdc -> /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/SERVERS -> /etc/rc.d/mountcritremote.
rcorder: `/etc/rc.d/SERVERS' was seen in circular dependencies for 8 times.
rcorder: Circular dependency on provision `NETWORKING': /etc/rc.d/NETWORKING -> /etc/rc.d/local_unbound -> /etc/rc.d/netwait -> /etc/rc.d/pf -> /usr/local/etc/rc.d/vm -> /etc/rc.d/NETWORKING.
rcorder: `/usr/local/etc/rc.d/vm' was seen in circular dependencies for 10 times.
rcorder: `/etc/rc.d/pf' was seen in circular dependencies for 10 times.
rcorder: `/etc/rc.d/netwait' was seen in circular dependencies for 10 times.
rcorder: `/etc/rc.d/local_unbound' was seen in circular dependencies for 10 times.
rcorder: `/etc/rc.d/NETWORKING' was seen in circular dependencies for 10 times.
rcorder: `/etc/rc.d/kdc' was seen in circular dependencies for 8 times.
rcorder: `/etc/rc.d/gssd' was seen in circular dependencies for 7 times.
rcorder: `/etc/rc.d/mountcritremote' was seen in circular dependencies for 7 times.
rcorder: `/etc/rc.d/dmesg' was seen in circular dependencies for 1 times.
rcorder: `/usr/local/etc/rc.d/vm' was seen in circular dependencies for 10 times.
rcorder: requirement `dovecot' in file `/usr/local/etc/rc.d/postfix' has no providers.
/etc/rc.d/dhclient
/etc/rc.d/sysctl
/etc/rc.d/natd


This can be fixed by changing:

# BEFORE: dnsmasq ipfw pf

to:

# BEFORE: dnsmasq

With that change, no more circular dependencies.

Background:

* pf requires netif
* NETWORKING requires netif
* NETWORKING requires ipfw

Conclusion: there is no need to specify ipfw and pf if NETWORKING is required.

I am reaching the right conclusion here?
Comment 1 Dan Langille freebsd_committer freebsd_triage 2023-01-19 20:37:18 UTC
I did some simple testing in a jail (I had to remove nojail from the script for this).

simple testing in the jail indicates that the rc.d script does get invoked, even with the circular situation.