Andrea Manganaro
2010-03-11 15:18:30 UTC
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?
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
This message posted from opensolaris.org