winbind: Problem with calling name_to_sid() when a domain controller is rebooting

Jiu Zheng jiu at stbernard.com
Thu Oct 10 21:41:02 GMT 2002


I tested with winbindd 3.0 alpha-19 but believe alpha-20 must have the
same problem.

When you call name_to_sid() (in winbindd_cache.c) while a domain
controller is rebooting, you got NT_STATUS_SERVER_DISABLED for the most
of the time. But when the server is up but still not yet started Active
Directory services, winbindd could get something like:

source/nsswitch/winbindd_rpc.c:name_to_sid(199)
  rpc: name_to_sid name=test
source/lib/util_sock.c:write_socket_data(464)
  write_socket_data: write failure. Error = Broken pipe
source/lib/util_sock.c:write_socket(489)
  write_socket: Error writing 198 bytes to socket 8: ERRNO = Broken pipe
source/libsmb/clientgen.c:cli_send_smb(132)
  Error writing 198 bytes to client. -1
source/rpc_client/cli_pipe.c:rpc_api_pipe(361)
  cli_pipe: return critical error. Error was NT_STATUS_OK
source/nsswitch/winbindd_group.c:winbindd_getgroups(821)
  user 'test' does not exist

Then an invalid cache entry for 'test' is saved in cache until the domain
sequence number changes, So 'test' won't EXIST until then.

I think wcache_save_name_to_sid() shouldn't be called when this particular
error happens, but not quite sure where to fix it.

This problem can be easily reproduced by keep running `wbinfo -r <user>`
when the domain controller is rebooting.


Jiu Zheng
St Bernard Software








More information about the samba-technical mailing list