1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
samba-mirror/source3/winbindd
Volker Lendecke df099e6624 s3: Avoid a potential 100% CPU loop in winbindd
In the clustering case if ctdb is unhappy, winbindd_reinit_after_fork fails.
This can lead to an endless loop depending on the scheduling of the parent vs
child. Parent forks, child is immediately scheduled and exits. Parent gets
SIGCHLD, parent is then scheduled before it sends the request out to the child.
Parent tries to fork again immediately.

The code before this patch did not really take into account that
reinit_after_fork can fail. The code now sends the result of
winbindd_reinit_after_fork to the parent and the parent only considers the
child alive when it got NT_STATUS_OK.

This was seen in 3.4 winbind. winbind has changed significantly since then, so
it might be possible that this does not happen anymore in exactly this way. But
passing up the status of reinit_after_fork and only consider the child alive
when that's ok is the correct thing to do anyway.

Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Fri Apr 29 17:58:19 CEST 2011 on sn-devel-104
2011-04-29 17:58:19 +02:00
..
idmap_adex s3-libads Pass a struct sockaddr_storage to cldap routines 2011-04-28 05:30:20 +02:00
idmap_hash s3-idmap: fix the build of idmap_hash on FreeBSD. 2011-03-31 00:14:01 +02:00
idmap_ad.c s3:idmap: remove the params argument from the init function 2011-03-22 22:49:56 +01:00
idmap_autorid.c s3-includes: only include system/filesys.h when needed. 2011-03-30 01:13:07 +02:00
idmap_ldap.c s3:idmap: remove the params argument from the init function 2011-03-22 22:49:56 +01:00
idmap_nss.c s3-includes: only include system/passwd.h when needed. 2011-03-30 01:13:07 +02:00
idmap_passdb.c s3-passdb: add passdb.h where needed. 2011-03-30 01:13:07 +02:00
idmap_proto.h s3-prototypes: remove protos of some dead functions. 2011-03-24 00:52:01 +01:00
idmap_rid.c s3:idmap: remove the params argument from the init function 2011-03-22 22:49:56 +01:00
idmap_rw.c s3:idmap: add abstract idmap_rw new_mapping mechanism without registering backends 2010-08-14 02:10:56 +02:00
idmap_rw.h s3:idmap: add abstract idmap_rw new_mapping mechanism without registering backends 2010-08-14 02:10:56 +02:00
idmap_tdb2.c s3:idmap_tdb2: fix build of tdb2 2011-04-04 15:57:34 +02:00
idmap_tdb.c s3-includes: only include system/filesys.h when needed. 2011-03-30 01:13:07 +02:00
idmap_util.c s3:winbindd/idmap_util.c: add my C 2011-01-03 08:34:04 +01:00
idmap.c s3: Make idmap_find_domain public 2011-04-13 14:13:25 -07:00
nss_info_template.c s3: Remove unused args from get_nss_info 2011-03-06 12:51:01 +01:00
nss_info.c s3: Remove unused args from nss_get_info 2011-03-06 12:51:01 +01:00
wb_dsgetdcname.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_fill_pwent.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
wb_getgrsid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
wb_getpwsid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
wb_gettoken.c s3-passdb: use passdb headers where needed. 2011-03-30 01:13:08 +02:00
wb_gid2sid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
wb_group_members.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_lookupname.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_lookupsid.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_lookupsids.c s3: Add wb_lookupsids 2011-04-13 14:13:24 -07:00
wb_lookupuseraliases.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_lookupusergroups.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_next_grent.c s3-passdb: use passdb headers where needed. 2011-03-30 01:13:08 +02:00
wb_next_pwent.c s3-passdb: use passdb headers where needed. 2011-03-30 01:13:08 +02:00
wb_ping.c
wb_query_user_list.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_queryuser.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_seqnum.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
wb_seqnums.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
wb_sid2gid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
wb_sid2uid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
wb_uid2sid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
winbindd_ads.c s3-rpc_client: add and use rpc_client/rpc_client.h. 2011-04-13 22:23:59 +02:00
winbindd_allocate_gid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
winbindd_allocate_uid.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
winbindd_async.c s3: Move parse_sidlist to the only calling file 2010-11-17 12:17:21 +01:00
winbindd_cache.c s3: Fix Coverity ID 1137: CONSTANT_EXPRESSION_RESULT 2011-04-01 09:35:19 +02:00
winbindd_ccache_access.c s3-ntlmssp: Remove ntlmssp_end and let the talloc hierarchy handle it. 2010-07-19 14:19:47 +10:00
winbindd_change_machine_acct.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
winbindd_check_machine_acct.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
winbindd_cm.c s3: Make winbindd_reinit_after_fork return NTSTATUS 2011-04-29 16:57:37 +02:00
winbindd_cred_cache.c s3: avoid global include of ads.h. 2010-08-05 00:32:02 +02:00
winbindd_creds.c libcli/security Provide a common, top level libcli/security/security.h 2010-10-12 05:54:10 +00:00
winbindd_domain.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
winbindd_dsgetdcname.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
winbindd_dual_ndr.c s3-includes: only include ntdomain.h where needed. 2011-03-30 01:13:09 +02:00
winbindd_dual_srv.c s3: Add wbint_Sids2UnixIDs idl & implementation 2011-04-13 14:13:25 -07:00
winbindd_dual.c s3: Avoid a potential 100% CPU loop in winbindd 2011-04-29 17:58:19 +02:00
winbindd_endgrent.c
winbindd_endpwent.c
winbindd_getdcname.c s3:winbindd: use ndr_wbint_c.h instead of cli_wbint.h 2011-01-11 15:40:21 +01:00
winbindd_getgrent.c s3: Fix a getgrent crash with many groups 2010-11-03 12:58:49 +00:00
winbindd_getgrgid.c
winbindd_getgrnam.c
winbindd_getgroups.c s3-passdb: move LOOKUP_NAME_ flags to passdb where they belong to. 2011-03-30 15:14:55 +02:00
winbindd_getpwent.c
winbindd_getpwnam.c s3-passdb: move LOOKUP_NAME_ flags to passdb where they belong to. 2011-03-30 15:14:55 +02:00
winbindd_getpwsid.c libcli/security Provide a common, top level libcli/security/security.h 2010-10-12 05:54:10 +00:00
winbindd_getpwuid.c
winbindd_getsidaliases.c s3: Make parse_sidlist public 2011-04-13 14:13:24 -07:00
winbindd_getuserdomgroups.c libcli/security Provide a common, top level libcli/security/security.h 2010-10-12 05:54:10 +00:00
winbindd_getusersids.c libcli/security Provide a common, top level libcli/security/security.h 2010-10-12 05:54:10 +00:00
winbindd_gid_to_sid.c
winbindd_group.c
winbindd_idmap.c
winbindd_list_groups.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
winbindd_list_users.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
winbindd_locator.c
winbindd_lookupname.c
winbindd_lookuprids.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
winbindd_lookupsid.c s3: state->ev is not needed in winbindd_lookupsid 2011-03-07 20:52:53 +01:00
winbindd_lookupsids.c s3: Add winbindd_lookupsids 2011-04-13 14:13:24 -07:00
winbindd_misc.c s3: Fix Coverity ID 2100, BAD_SIZEOF 2011-03-16 18:52:18 +01:00
winbindd_msrpc.c s3-libads: Use ldap_init_fd() to connect to AD server in socket_wrapper 2011-04-28 05:30:21 +02:00
winbindd_ndr.c s3: give ../librpc/ndr/util.c its own header. 2011-02-10 12:58:06 +01:00
winbindd_pam_auth_crap.c s3: Fix filling in the pam_auth_crap domain name 2010-11-26 14:43:20 +01:00
winbindd_pam_auth.c Fix bug #7589 - ntlm_auth fails to use cached credentials. 2010-07-29 12:44:00 -07:00
winbindd_pam_chauthtok.c s3: Move the in-memory ccache to the parent 2010-04-19 14:27:24 +02:00
winbindd_pam_chng_pswd_auth_crap.c s3: Convert WINBINDD_PAM_CHNG_PSWD_AUTH_CRAP to the new async API 2010-04-23 23:41:04 +02:00
winbindd_pam_logoff.c s3: Move the in-memory ccache to the parent 2010-04-19 14:27:24 +02:00
winbindd_pam.c s3:rpc_client: map fault codes to NTSTATUS with dcerpc_fault_to_nt_status() 2011-04-24 10:44:53 +02:00
winbindd_ping_dc.c s3:winbind: Fork multiple children per domain 2011-01-21 13:51:27 +01:00
winbindd_proto.h s3: Make winbindd_reinit_after_fork return NTSTATUS 2011-04-29 16:57:37 +02:00
winbindd_reconnect.c s3-winbindd: copy acct_info to wb_acct_info so we dont need passdb for it. 2011-03-30 01:13:08 +02:00
winbindd_rpc.c s3: Add wbint_LookupSids 2011-04-13 14:13:24 -07:00
winbindd_rpc.h s3-winbindd: copy acct_info to wb_acct_info so we dont need passdb for it. 2011-03-30 01:13:08 +02:00
winbindd_samr.c s3-rpc_client: add and use rpc_client/rpc_client.h. 2011-04-13 22:23:59 +02:00
winbindd_setgrent.c
winbindd_setpwent.c
winbindd_show_sequence.c
winbindd_sid_to_gid.c libcli/security Provide a common, top level libcli/security/security.h 2010-10-12 05:54:10 +00:00
winbindd_sid_to_uid.c libcli/security Provide a common, top level libcli/security/security.h 2010-10-12 05:54:10 +00:00
winbindd_sids_to_xids.c s3: Add some debug to winbindd_sids_to_xids 2011-04-13 14:13:25 -07:00
winbindd_uid_to_sid.c
winbindd_util.c s3: Add is_domain_online 2011-04-13 14:13:25 -07:00
winbindd_wins.c s3-libsmb: put namequery headers to nmblib.h 2011-03-30 01:13:09 +02:00
winbindd.c s3: Make winbindd_reinit_after_fork return NTSTATUS 2011-04-29 16:57:37 +02:00
winbindd.h s3-tevent: only include ../lib/util/tevent wrappers where needed. 2011-04-29 14:00:30 +02:00
wscript_build s3-waf: use SAMBA3_*() build rules in source3/build 2011-02-18 16:46:41 +11:00