Discussion:
Fault Manager daemon - fmd and rpcbind dependency
Andrea Manganaro
2010-03-11 15:18:30 UTC
Permalink
I have done some further verifications and here is my understandings on this topic.

fmd functionalities should not impacted by rpc/bind state (enabled or disabled).
Anyway if we change rpc/bind state while fmd is running, we may hit bug#6731024.

I think rpcbind is marked only as an optional dependency because fmd is expected to work anyway:

- If rpcbind is running, fmd will use will use rpc communication over over TLI/XTI interfaces.
- If not, the fmd creates an RPC server handle over doors by using the svc_door_create() function.

(well, this my understanding looking at the source code of fmd_rpc.c )

The justification is that disabling rpc/bind service will cause fmd to fail to register rpc service on ticots*, the loopback transport providers.
From the fmd logs we would see

...
fmd: [ loading modules ... fmd: failed to register rpc service on ticlts
fmd: failed to register rpc service on ticotsord
fmd: failed to register rpc service on ticots
...

that is fmd realizes it won't be able to use RPC over TLI/XTI interfaces.
Then the fmd will call the svc_door_create() function that creates an RPC server handle over doors and returns a pointer to it.
According to the svc_door_create(3NSL) manpage, this RPC server handle is not registered with rpcbind(1M), so the fmd libraries will operate properly even if rpcbind itself is not running on the system.

Any comment on the above?
--
This message posted from opensolaris.org
Steve Hanson
2010-03-11 15:45:32 UTC
Permalink
Hi,

I guess what you say below is more or less correct.

We have had a lot of discussion in the past on this topic - please look
at CR 6707269, which I think
describes the conclusions. Basically fmd will continue to run in a
somewhat degraded mode if rpcbind is not
running

Steve
Post by Andrea Manganaro
I have done some further verifications and here is my understandings on this topic.
fmd functionalities should not impacted by rpc/bind state (enabled or disabled).
Anyway if we change rpc/bind state while fmd is running, we may hit bug#6731024.
- If rpcbind is running, fmd will use will use rpc communication over over TLI/XTI interfaces.
- If not, the fmd creates an RPC server handle over doors by using the svc_door_create() function.
(well, this my understanding looking at the source code of fmd_rpc.c )
The justification is that disabling rpc/bind service will cause fmd to fail to register rpc service on ticots*, the loopback transport providers.
From the fmd logs we would see
...
fmd: [ loading modules ... fmd: failed to register rpc service on ticlts
fmd: failed to register rpc service on ticotsord
fmd: failed to register rpc service on ticots
...
that is fmd realizes it won't be able to use RPC over TLI/XTI interfaces.
Then the fmd will call the svc_door_create() function that creates an RPC server handle over doors and returns a pointer to it.
According to the svc_door_create(3NSL) manpage, this RPC server handle is not registered with rpcbind(1M), so the fmd libraries will operate properly even if rpcbind itself is not running on the system.
Any comment on the above?
Loading...