winbindd question

Aravinda Guzzar aguzzar at gmail.com
Wed Aug 1 09:53:21 GMT 2007


Hi Jerry,

thanks a lot for those explanations.

I had further questions regarding the same as below:

>>>The child cases are the equivalent of worker threads.
Is there a specific reason why "thread" implementation was not used to
handle different WinBind commands and processes were chosen instead.

>>>Did you look at async_domain_request() ?  If the domain is
>>>not initialized, then we send a request to the child to
>>>establish it's connections to the DC for its domain.

I see that apart from the async_domain_request (domain is not initialized
command WINBINDD_INIT_CONNECTION), the below set of the actions/commands
also creates a child processes:

- winbindd_allocate_uid
- winbindd_allocate_gid
- add_trusted_domains\WINBINDD_LIST_TRUSTDOM
- winbindd_show_sequence\WINBINDD_SHOW_SEQUENCE
- winbindd_lookupsid_async\WINBINDD_LOOKUPSID
- winbindd_lookupname_async\WINBINDD_LOOKUPNAME
- winbindd_getsidaliases_async\WINBINDD_DUAL_GETSIDALIASES
- winbindd_gettoken_async\WINBINDD_GETUSERDOMGROUPS
- query_user_async\WINBINDD_DUAL_USERINFO
- winbindd_getsidaliases_async\WINBINDD_DUAL_GETSIDALIASES
- idmap_set_mapping_async\WINBINDD_DUAL_IDMAPSET
- idmap_sid2uid_async\WINBINDD_DUAL_SID2UID
- winbindd_uid2name_async\WINBINDD_DUAL_UID2NAME
- winbindd_name2uid_async\WINBINDD_DUAL_NAME2UID
- idmap_sid2gid_async\WINBINDD_DUAL_SID2GID
- winbindd_gid2name_async\WINBINDD_DUAL_GID2NAME
- winbindd_name2gid_async\WINBINDD_DUAL_NAME2GID
- winbindd_uid2sid_async\WINBINDD_DUAL_UID2SID
- winbindd_gid2sid_async\WINBINDD_DUAL_GID2SID

But few commands like "wbinfo --domain-users  to Lists all domain users" and
"wbinfo --domain-groups  Lists all domain groups" doesn't create the child
processes to service the request.

1.    My question is how and on what basis is the creation of child process
is decided. I see that sometimes upto 5 child processes getting created when
I execute few wbinfo commands and connect to samba which is configured as
Member Server to windows PDC.

2.    If the child process is created when does it get terminated? Currently
I see that even after processing the command the child processes continues
to stay there.

3.    There is a loop in the below code chain which I couldn't understand
from the code study/experiments. Can anyone help me in understanding this.
    init_child_connection() -> async_domain_request() ->
init_child_connection()

Thanks again
Regards
Aravind


More information about the samba-technical mailing list