On Wed, Aug 12, 2026, at 3:38 PM, Jeff Layton wrote:
> On Tue, 2026-08-11 at 15:19 -0400, Chuck Lever wrote:
>> For an IPv4 listener, the port-zero callback falls back through
>> __svc_rpcb_register4() to rpcb_register(). PMAPPROC_UNSET ignores
>> its protocol argument, so unwinding a partially successful TCP
>> registration also removes the mappings for existing listeners on
>> other transports, I would think.
>>
>> It might be that the best the kernel can do here is tear everything
>> down if one registration fails.
>>
>
> What I was thinking for NFSv2/3 was to just have the listener set
> netlink call wait for registration to complete before returning to
> userland. That would mean we'd have to block even longer to try and
> unregister things if things fail.
>
> Alternate proposal: let's just declare rpcbind reg errors to be non-
> fatal: do a pr_warn() and just leave it up to the admin to sort it out
> if that happens instead of trying to fail the startup.
>
> The resulting situation for the server is no worse off (it's just
> running instead of being down), and I move that we're better off
> leaving it up to a human to clean up the mess instead of trying to fix
> things up from the kernel.
I was thinking of this in terms of a declarative administrative UI:
If the kernel can't set the requested configuration, it should
fail back to the previous configuration. Maybe that's not possible.
On the other hand, what might be better is to handle the rpcbind
registration from user space instead of the kernel, after the
kernel listener is set up.
--
Chuck Lever