Franky/Threadsafe checklist: Difference between revisions
From SambaWiki
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Checklist of areas likely requiring validatation of thread safety. == |
== Checklist of areas likely requiring validatation of thread safety. == |
||
Bugs to review |
|||
* [https://bugzilla.samba.org/show_bug.cgi?id=5813 non-thread-safe function calls] |
|||
* [https://bugzilla.samba.org/show_bug.cgi?id=5211 Andrew's list of samba4 issues]. Also see this bug's dependencies. |
|||
Global variables in the BSS and Data segments which must be reviewed to see if |
Global variables in the BSS and Data segments which must be reviewed to see if |
||
Line 88: | Line 93: | ||
* b global_sam_sid |
* b global_sam_sid |
||
* b global_tfp |
* b global_tfp |
||
⚫ | |||
* b got_alarm |
* b got_alarm |
||
* b got_major.77004 |
* b got_major.77004 |
||
Line 121: | Line 125: | ||
* b initialized.64395 |
* b initialized.64395 |
||
* b initialized.64809 |
* b initialized.64809 |
||
⚫ | |||
* b invalid_services |
* b invalid_services |
||
* b last_dns_check.65080 |
* b last_dns_check.65080 |
||
Line 448: | Line 451: | ||
Already Reviewed |
Already Reviewed |
||
⚫ | |||
** converted to thread-local-storage |
|||
* b SMBC_initialized |
* b SMBC_initialized |
||
** Created smbc_module_init() function. SMBC_initialized is now the boolean controlling once-initialization for calls to the new function. |
** Created smbc_module_init() function. SMBC_initialized is now the boolean controlling once-initialization for calls to the new function. |
||
⚫ | |||
** protected by mutex |
Latest revision as of 14:53, 14 May 2009
Checklist of areas likely requiring validatation of thread safety.
Bugs to review
- non-thread-safe function calls
- Andrew's list of samba4 issues. Also see this bug's dependencies.
Global variables in the BSS and Data segments which must be reviewed to see if
they require any protection in a threaded environment.
NOTE: After implementing thread protection on one of these, or determining that it doesn't require any changes, move the entry into the "Already Reviewed" section at the bottom of this page, and make a note of your specific findings or work done.
- b Globals
- b ServiceHash
- b ServicePtrs
- b __nwrap_cache_gr
- b __nwrap_cache_pw
- b already_perm.63808
- b already_perm.63873
- b autobind_start
- b autobind_start_init
- b bGlobalOnly
- b bLoaded
- b backend
- b backends
- b buf.4855
- b bytes_since_reseed
- b cache
- b cache
- b cache_tree
- b call_id.64160
- b called.64160
- b charsets
- b classname_table
- b cmdline_lp_ctx
- b completed.6997
- b conf_ctx.72086
- b conf_last_csn
- b config_backend
- b cont_fn
- b conv_handles
- b conv_silent
- b corepath
- b count.63802
- b counter
- b counter.63802
- b current_lang
- b current_user
- b current_user_info
- b db
- b db
- b db_ctx
- b db_ctx.63797
- b db_sam
- b dbf
- b debug_count
- b debug_num_classes
- b debugf
- b default_server_announce
- b defaults_saved
- b depth.67473
- b done_init.64458
- b done_reseed
- b dtor_idx.6999
- b dyn_BINDIR
- b dyn_CACHEDIR
- b dyn_CODEPAGEDIR
- b dyn_CONFIGFILE
- b dyn_LIBDIR
- b dyn_LMHOSTSFILE
- b dyn_LOCKDIR
- b dyn_LOGFILEBASE
- b dyn_MODULESDIR
- b dyn_NCALRPCDIR
- b dyn_PIDDIR
- b dyn_PRIVATE_DIR
- b dyn_SBINDIR
- b dyn_SHLIBEXT
- b dyn_SMB_PASSWD_FILE
- b dyn_STATEDIR
- b dyn_SWATDIR
- b extra_time_offset
- b f.6068
- b file_lists
- b format_bufr
- b format_pos
- b global_cache
- b global_clobber_region_function
- b global_clobber_region_line
- b global_in_nmbd
- b global_lock_array
- b global_machine_password_needs_changing
- b global_sam_sid
- b global_tfp
- b got_alarm
- b got_major.77004
- b got_minor.77023
- b gotalarm
- b gotalarm
- b gotintr
- b h.6067
- b hash
- b i.6069
- b iNumServices
- b iServiceIndex
- b idmap_gid_high
- b idmap_gid_low
- b idmap_uid_high
- b idmap_uid_low
- b in_client
- b include_depth
- b initial_gid
- b initial_uid
- b initialised
- b initialised.63872
- b initialized
- b initialized
- b initialized
- b initialized.4388
- b initialized.5513
- b initialized.6065
- b initialized.63799
- b initialized.63806
- b initialized.63982
- b initialized.64395
- b initialized.64809
- b invalid_services
- b last_dns_check.65080
- b last_dns_status.65081
- b lastt
- b ldb
- b ldb_backends
- b local_interfaces
- b local_machine
- b log_overflow
- b lowcase_table
- b lowcase_table_use_unmap
- b mapped_file.64056
- b msg.63951
- b num_invalid_services
- b nwrap_gr_global
- b nwrap_pw_global
- b old_handler
- b once_mutex
- b outfile
- b override_logfile
- b p.6070
- b pdb.64265
- b pdb_event_ctx
- b pipe_read
- b pipe_written
- b popen_chain
- b posix_cifsx_locktype
- b posix_default_lock_was_set
- b posix_pathnames
- b probed_ifaces
- b ra_type
- b regdb
- b regdb_refcount
- b registered_modules
- b remote_arch_str
- b remote_machine
- b reseed_callback
- b reseed_callback_userdata
- b result.76870
- b ret.66976
- b s.6066
- b saved_egid
- b saved_euid
- b saved_rgid
- b saved_ruid
- b select_pipe
- b server_role
- b server_zone_offset
- b share_db
- b sig_state
- b smb_my_netbios_names
- b smb_myname
- b smb_myworkgroup
- b smb_num_netbios_names
- b smb_scope
- b smb_user_name
- b smbc_compat_fd_avail
- b smbc_compat_fd_in_use
- b smbc_compat_initialized
- b smbc_compat_nextfd
- b smbldap_state_lookup_list
- b sockets
- b sort_ip
- b spoolss_state
- b start_time_hires
- b statcont
- b stdout_logging
- b t
- b tdb
- b tdb.65419
- b tdb_list
- b tdb_list
- b tdbd
- b tdbsam_filename
- b tevent_abort_fn
- b tevent_backends
- b tevent_default_backend
- b tf.64872
- b tmp_debug_ctx
- b total_probed
- b try_splice_call.63895
- b ts_initialized
- b upcase_table
- b upcase_table_use_unmap
- b v.5512
- b valid_table
- b valid_table_use_unmap
- b zeros.64945
- b zeros.65144
- d AllowDebugChange
- d DEBUGLEVEL_CLASS
- d DEBUGLEVEL_CLASS_ISSET
- d Protocol
- d __CTOR_END__
- d __CTOR_LIST__
- d __DTOR_END__
- d __DTOR_LIST__
- d __JCR_END__
- d __JCR_LIST__
- d __dso_handle
- d _x_stderr
- d _x_stdin
- d _x_stdout
- d account_policy_names
- d anon_sid_array
- d anonymous_token
- d asq_ops
- d attr.69925
- d attrib_map_to_delete_v22
- d attrib_map_to_delete_v30
- d attrib_map_v22
- d attrib_map_v30
- d attrs.64804
- d attrs.65036
- d audit_category_tab
- d bAllowIncludeRegistry
- d bInGlobalSection
- d bufsize.4856
- d builtin_aliases
- d builtin_functions
- d builtin_registry_paths
- d builtin_registry_values
- d creator_owner_users
- d dcerpc_faults
- d debug_all_class_hack
- d debug_all_class_isset_hack
- d debug_auto_add_unknown_class
- d debug_level
- d debug_warn_unknown_class
- d default_classname_table
- d dominfo_attr_list
- d dos_err_strs
- d dos_errs
- d dos_msgs
- d drsblobs_authservice_strings
- d drsblobs_authservices
- d drsblobs_calls
- d drsblobs_endpoint_strings
- d drsblobs_endpoints
- d drsuapi_authservice_strings
- d drsuapi_authservices
- d drsuapi_calls
- d drsuapi_endpoint_strings
- d drsuapi_endpoints
- d dssetup_authservice_strings
- d dssetup_authservices
- d dssetup_calls
- d dssetup_endpoint_strings
- d dssetup_endpoints
- d enum_acl_compat_vals
- d enum_announce_as
- d enum_bool_auto
- d enum_case
- d enum_config_backend
- d enum_csc_policy
- d enum_kerberos_method
- d enum_ldap_passwd_sync
- d enum_ldap_sasl_wrapping
- d enum_ldap_ssl
- d enum_map_readonly
- d enum_map_to_guest
- d enum_printing
- d enum_protocol
- d enum_security
- d enum_smb_signing_vals
- d epmapper_authservice_strings
- d epmapper_authservices
- d epmapper_calls
- d epmapper_endpoint_strings
- d epmapper_endpoints
- d epoll_event_ops
- d err_classes
- d eventlog_authservice_strings
- d eventlog_authservices
- d eventlog_calls
- d eventlog_endpoint_strings
- d eventlog_endpoints
- d everyone_users
- d fd.6239
- d groupmap_attr_list
- d groupmap_attr_list_to_delete
- d hard_msgs
- d idpool_attr_list
- d in_fd
- d initshutdown_authservice_strings
- d initshutdown_authservices
- d initshutdown_calls
- d initshutdown_endpoint_strings
- d initshutdown_endpoints
- d ldb_backend
- d ldb_changetypes
- d ldb_default_attrib_handler
- d ldb_standard_attribs
- d longvar_table
- d lsarpc_authservice_strings
- d lsarpc_authservices
- d lsarpc_calls
- d lsarpc_endpoint_strings
- d lsarpc_endpoints
- d ltdb_ops
- d ltdb_valid_attr_flags
- d major_version.77005
- d minor_version.77024
- d my_vnn
- d mypid
- d ncacn_options
- d ndr_err_code_strings
- d ndr_table_drsblobs
- d ndr_table_drsuapi
- d ndr_table_dssetup
- d ndr_table_epmapper
- d ndr_table_eventlog
- d ndr_table_initshutdown
- d ndr_table_lsarpc
- d ndr_table_netdfs
- d ndr_table_netlogon
- d ndr_table_ntsvcs
- d ndr_table_rpcecho
- d ndr_table_samr
- d ndr_table_spoolss
- d ndr_table_srvsvc
- d ndr_table_svcctl
- d ndr_table_winreg
- d ndr_table_wkssvc
- d netdfs_authservice_strings
- d netdfs_authservices
- d netdfs_calls
- d netdfs_endpoint_strings
- d netdfs_endpoints
- d netlogon_authservice_strings
- d netlogon_authservices
- d netlogon_calls
- d netlogon_endpoint_strings
- d netlogon_endpoints
- d nmb_header_opcode_names
- d no_str.71616
- d nt_authority_users
- d nt_err_desc
- d nt_errs
- d ntlmssp_callbacks
- d ntsvcs_authservice_strings
- d ntsvcs_authservices
- d ntsvcs_calls
- d ntsvcs_endpoint_strings
- d ntsvcs_endpoints
- d objectclass_ops
- d operational_ops
- d paged_ops
- d parm_num.73088
- d parm_table
- d parse_tree_sub
- d pipe_names
- d pipefd.63894
- d privs
- d rap_errmap
- d rdn_name_ops
- d regdb_ops
- d remote_proto
- d rpcecho_authservice_strings
- d rpcecho_authservices
- d rpcecho_calls
- d rpcecho_endpoint_strings
- d rpcecho_endpoints
- d s3_event_ops
- d sDefault
- d samr_authservice_strings
- d samr_authservices
- d samr_calls
- d samr_endpoint_strings
- d samr_endpoints
- d search_sub
- d select_event_ops
- d server_msgs
- d server_sort_ops
- d sid_name_type
- d sidmap_attr_list
- d smbconf_ops_reg
- d smbconf_ops_txt
- d smbconf_reg_ops
- d socket_options
- d special_domains
- d special_values.65122
- d spoolss_authservice_strings
- d spoolss_authservices
- d spoolss_calls
- d spoolss_endpoint_strings
- d spoolss_endpoints
- d srv_role_tab
- d srvsvc_authservice_strings
- d srvsvc_authservices
- d srvsvc_calls
- d srvsvc_endpoint_strings
- d srvsvc_endpoints
- d standard_values.65123
- d static_init_fns.64808
- d std_event_ops
- d svcctl_authservice_strings
- d svcctl_authservices
- d svcctl_calls
- d svcctl_endpoint_strings
- d svcctl_endpoints
- d system_sid_array
- d system_token
- d tdb_backend
- d tdgram_bsd_ops
- d tf
- d transports
- d tsocket_address_bsd_ops
- d tstream_bsd_ops
- d urand_fd
- d winreg_authservice_strings
- d winreg_authservices
- d winreg_calls
- d winreg_endpoint_strings
- d winreg_endpoints
- d wkssvc_authservice_strings
- d wkssvc_authservices
- d wkssvc_calls
- d wkssvc_endpoint_strings
- d wkssvc_endpoints
- d x_stderr
- d x_stdin
- d x_stdout
- d yes_str.71615
Already Reviewed
- b global_ts
- converted to thread-local-storage
- b SMBC_initialized
- Created smbc_module_init() function. SMBC_initialized is now the boolean controlling once-initialization for calls to the new function.
- b initialized_ctx_count
- protected by mutex