From afe5ec7ce1751a82875eb1318103b365d2d00290 Mon Sep 17 00:00:00 2001 From: Armin Hasitzka Date: Mon, 18 Sep 2017 15:31:09 +0200 Subject: [PATCH] [CI] Update Clang's ThreadSanitizer blacklist (#5558) * Update clang-thread-sanitizer-blacklist based on races that can occur with commit 20bbf3208687b3f12582a35103bd6a6c9bb8a32e * Add functions that came up in: - https://jenkins.mono-project.com/job/test-mono-pull-request-clang-sanitizer/23/ - https://jenkins.mono-project.com/job/test-mono-pull-request-clang-sanitizer/24/ - https://jenkins.mono-project.com/job/test-mono-pull-request-clang-sanitizer/25/ - https://jenkins.mono-project.com/job/test-mono-pull-request-clang-sanitizer/26/ --- scripts/ci/clang-thread-sanitizer-blacklist | 168 ++++++++++++++++---- 1 file changed, 139 insertions(+), 29 deletions(-) diff --git a/scripts/ci/clang-thread-sanitizer-blacklist b/scripts/ci/clang-thread-sanitizer-blacklist index 5188f372911..021fdae9424 100644 --- a/scripts/ci/clang-thread-sanitizer-blacklist +++ b/scripts/ci/clang-thread-sanitizer-blacklist @@ -7,6 +7,10 @@ fun:monoeg_g_hash_table_iter_next fun:monoeg_g_hash_table_lookup_extended +# gslist.c # + +fun:monoeg_g_slist_nth_data + # sort.frag.h # fun:init_sort_info @@ -19,16 +23,19 @@ fun:merge_lists # class-accessors.c # +fun:mono_class_get_field_count fun:mono_class_get_first_method_idx fun:mono_class_get_flags fun:mono_class_get_generic_class fun:mono_class_get_method_count fun:mono_class_get_field_count fun:mono_class_set_first_method_idx +fun:mono_class_set_flags fun:mono_class_set_method_count # class-inlines.h # +fun:mono_class_has_static_metadata fun:mono_class_is_ginst fun:mono_class_is_gtd @@ -44,10 +51,13 @@ fun:inflate_generic_context fun:inflate_generic_type fun:init_sizes_with_info fun:make_generic_param_class +fun:mono_array_element_size fun:mono_bounded_array_class_get fun:mono_class_create_from_typedef +fun:mono_class_enum_basetype fun:mono_class_from_generic_parameter_internal fun:mono_class_from_mono_type +fun:mono_class_from_name_checked_aux fun:mono_class_get_cctor fun:mono_class_get_inflated_method fun:mono_class_get_method_from_name_flags @@ -56,6 +66,7 @@ fun:mono_class_get_vtable_entry fun:mono_class_has_failure fun:mono_class_has_finalizer fun:mono_class_inflate_generic_method_full_checked +fun:mono_class_inflate_generic_type_with_mempool fun:mono_class_init fun:mono_class_instance_size fun:mono_class_is_assignable_from @@ -64,22 +75,23 @@ fun:mono_class_setup_basic_field_info fun:mono_class_setup_fields fun:mono_class_setup_interfaces fun:mono_class_setup_methods +fun:mono_class_setup_mono_type +fun:mono_class_setup_parent fun:mono_class_setup_supertypes fun:mono_class_setup_vtable_full fun:mono_class_setup_vtable_general +fun:mono_class_value_size +fun:mono_field_get_type_checked fun:mono_field_resolve_type fun:mono_generic_class_get_class +fun:mono_ldtoken_checked fun:mono_method_get_context_general fun:mono_method_get_method_definition -fun:mono_ptr_class_get fun:mono_type_get_basic_type_from_generic +fun:mono_type_get_checked fun:mono_type_get_underlying_type fun:mono_type_has_exceptions -# domain.c # - -fun:mono_domain_alloc0 - # gc.c # fun:finalize_domain_objects @@ -100,19 +112,18 @@ fun:mono_stack_mark_pop # icall.c # +fun:is_generic_parameter fun:vell_icall_get_method_attributes fun:ves_icall_InternalInvoke +fun:ves_icall_RuntimeTypeHandle_GetBaseType +fun:ves_icall_RuntimeTypeHandle_HasInstantiation fun:ves_icall_RuntimeTypeHandle_IsArray +fun:ves_icall_RuntimeTypeHandle_IsGenericVariable fun:ves_icall_RuntimeType_GetConstructors_native +fun:ves_icall_System_Array_ClearInternal fun:ves_icall_System_Array_FastCopy fun:ves_icall_System_Reflection_MonoMethodInfo_get_parameter_info -# image.c # - -fun:mono_image_alloc -fun:mono_image_alloc0 -fun:mono_image_strdup - # jit-info.c # fun:jit_info_table_add @@ -122,40 +133,51 @@ fun:jit_info_table_find fun:jit_info_table_index fun:jit_info_table_split_chunk fun:mono_jit_info_init +fun:mono_jit_info_table_free # loader.c # -fun:cache_memberref_sig fun:inflate_generic_signature_checked +fun:mono_field_from_token_checked +fun:mono_get_method_checked fun:mono_get_method_from_token -fun:mono_method_get_signature_checked +fun:mono_method_get_header_checked fun:mono_method_signature_checked # marshal.c # fun:mono_icall_start fun:mono_marshal_get_native_wrapper +fun:mono_marshal_get_runtime_invoke_full fun:mono_marshal_isinst_with_cache # metadata.c # fun:_mono_metadata_generic_class_equal +fun:add_image +fun:collect_data_init +fun:collect_ginst_images fun:collect_method_images +fun:collect_type_images fun:do_mono_metadata_parse_type -fun:img_set_cache_get +fun:get_image_set fun:mono_metadata_decode_row fun:mono_metadata_get_canonical_generic_inst fun:mono_metadata_lookup_generic_class +fun:mono_metadata_parse_mh_full fun:mono_metadata_parse_type_internal +fun:mono_method_get_header_summary fun:mono_type_get_class fun:mono_type_get_type fun:mono_type_is_struct +fun:typedef_locator # monitor.c # fun:mon_new fun:mono_monitor_ensure_owned fun:mono_monitor_enter_v4_fast +fun:mono_monitor_exit fun:mono_monitor_exit_inflated fun:mono_monitor_inflate fun:mono_monitor_try_enter_inflated @@ -166,8 +188,15 @@ fun:ves_icall_System_Threading_Monitor_Monitor_test_synchronised fun:ves_icall_System_Threading_Monitor_Monitor_try_enter_with_atomic_var fun:ves_icall_System_Threading_Monitor_Monitor_wait +# mono-basic-block.c # + +fun:bb_formation_il_pass +fun:mono_basic_block_split +fun:mono_opcode_value_and_size + # mono-conc-hash.c # +fun:conc_table_new fun:expand_table fun:mono_conc_g_hash_table_lookup_extended fun:set_key @@ -178,13 +207,17 @@ fun:mono_g_hash_table_find_slot # object.c # +fun:class_get_virtual_method fun:mono_class_compute_gc_descriptor fun:mono_class_create_runtime_vtable +fun:mono_class_try_get_vtable fun:mono_class_vtable_full +fun:mono_delegate_ctor_with_method fun:mono_object_handle_get_virtual_method fun:mono_object_handle_isinst fun:mono_object_isinst_checked fun:mono_object_new_alloc_specific_checked +fun:mono_object_new_mature fun:mono_object_new_specific_checked fun:mono_runtime_class_init_full fun:mono_runtime_invoke_array_checked @@ -198,26 +231,23 @@ fun:cache_object_handle # reflection.c # fun:method_object_construct +fun:mono_type_get_object_checked fun:reflected_equal -# runtime.c # - -fun:mono_runtime_is_shutting_down -fun:mono_runtime_try_shutdown - # sgen-client-mono.h # +fun:sgen_client_par_object_get_size fun:SGEN_LOAD_VTABLE_UNCHECKED +fun:sgen_mono_array_size # sgen-mono.c # fun:mono_gchandle_free fun:mono_gc_alloc_string fun:mono_gc_alloc_vector +fun:mono_gc_get_nursery fun:mono_gc_thread_in_critical_region fun:mono_gc_wbarrier_set_arrayref -fun:sgen_client_gchandle_created -fun:sgen_client_gchandle_destroyed # threadpool-worker-default.c # @@ -228,8 +258,8 @@ fun:hill_climbing_change_thread_count fun:hill_climbing_force_change fun:hill_climbing_update fun:monitor_should_keep_running -fun:monitor_thread fun:monitor_sufficient_delay_since_last_dequeue +fun:monitor_thread # threadpool.c # @@ -241,10 +271,9 @@ fun:worker_callback fun:build_wait_tids fun:create_thread fun:mono_thread_clr_state +fun:mono_thread_create_internal fun:mono_thread_detach_internal fun:mono_thread_set_name_internal -fun:mono_threads_add_joinable_thread -fun:mono_threads_join_threads fun:remove_and_abort_threads fun:request_thread_abort @@ -262,17 +291,36 @@ fun:mono_w32handle_unref_core # alias-analysis.c # -fun:recompute_aliased_variables +fun:lower_memory_access # aot-runtime.c # fun:mono_aot_get_cached_class_info +fun:mono_aot_get_method_checked fun:mono_aot_get_method_from_vt_slot +# branch-opts.c # + +fun:mono_if_conversion +fun:mono_optimize_branches + +# cfold.c # + +fun:mono_constant_fold_ins + # decompose.c # fun:mono_decompose_vtype_opts +# dominators.c # + +fun:compute_dominators +fun:mono_compute_natural_loops + +# jit-icalls.c # + +fun:ldvirtfn_internal + # linear-scan.c # fun:mono_linear_scan @@ -282,27 +330,56 @@ fun:mono_linear_scan fun:mono_analyze_liveness fun:mono_liveness_handle_exception_clauses +# lldb.c # + +fun:mono_lldb_save_method_info + +# local-propagation.c # + +fun:mono_local_cprop +fun:mono_local_deadce + +# memory-access.c # + +fun:mini_emit_memory_copy_internal + # method-to-ir.c # fun:check_call_signature +fun:check_method_sharing fun:emit_init_rvar +fun:emit_stloc_ir +fun:get_basic_blocks fun:inline_method +fun:link_bblock +fun:mini_emit_inst_for_method +fun:mini_field_access_needs_cctor_run +fun:mono_emit_call_args +fun:mono_emit_method_call_full +fun:mono_handle_global_vregs fun:mono_method_check_inlining fun:mono_method_to_ir fun:mono_spill_global_vars +fun:target_type_is_incompatible # mini-amd64.c # +fun:add_outarg_reg fun:get_call_info -fun:mono_arch_allocate_vars +fun:mono_arch_emit_call fun:mono_arch_emit_epilog +fun:mono_arch_emit_exceptions +fun:mono_arch_emit_inst_for_method +fun:mono_arch_emit_outarg_vt fun:mono_arch_emit_prolog fun:mono_arch_get_delegate_invoke_impl fun:mono_arch_lowering_pass +fun:mono_arch_output_basic_block fun:mono_arch_peephole_pass_2 # mini-codegen.c # +fun:create_spilled_store fun:mono_local_regalloc fun:mono_peephole_ins @@ -312,7 +389,6 @@ fun:mono_thread_state_init_from_sigctx # mini-generic-sharing.c # -fun:alloc_template fun:class_get_rgctx_template_oti fun:get_info_templates fun:inflate_info @@ -321,6 +397,7 @@ fun:mini_get_basic_type_from_generic fun:mini_is_gsharedvt_type fun:mini_type_get_underlying_type fun:mono_class_fill_runtime_generic_context +fun:mono_class_get_method_generic fun:mono_generic_context_check_used fun:mono_method_check_context_used fun:mono_method_fill_runtime_generic_context @@ -339,17 +416,19 @@ fun:mini_native_type_replace_type fun:create_runtime_invoke_info fun:mini_imt_entry_inited fun:mono_jit_compile_method_with_opt -fun:mono_jit_find_compiled_method_with_jit_info fun:mono_jit_runtime_invoke +fun:mono_resolve_patch_target # mini-trampolines.c # fun:common_call_trampoline +fun:is_generic_method_definition fun:mini_add_method_trampoline fun:mini_resolve_imt_method fun:mono_create_delegate_trampoline_info fun:mono_create_jit_trampoline fun:mono_create_jump_trampoline +fun:mono_create_static_rgctx_trampoline fun:mono_delegate_trampoline fun:mono_magic_trampoline fun:mono_rgctx_lazy_fetch_trampoline @@ -357,15 +436,19 @@ fun:mono_vcall_trampoline # mini.c # +fun:create_jit_info fun:mini_method_compile fun:mono_allocate_stack_slots +fun:mono_bb_ordering fun:mono_codegen fun:mono_compile_create_vars +fun:mono_compile_create_var_for_vreg +fun:mono_handle_out_of_line_bblock fun:mono_insert_branches_between_bblocks fun:mono_jit_compile_method_inner -fun:mono_time_track_end fun:mono_type_to_load_membase fun:mono_type_to_store_membase +fun:mono_unlink_bblock # seq-points.c # @@ -373,6 +456,7 @@ fun:mono_save_seq_point_info # tramp-amd64.c # +fun:mono_arch_create_specific_trampoline fun:mono_arch_patch_callsite # unwind.c # @@ -401,11 +485,16 @@ fun:sgen_array_list_bucketize # sgen-cardtable.c # fun:sgen_card_table_wbarrier_range_copy +fun:sgen_get_card_table_configuration # sgen-cardtable.h # fun:sgen_card_table_mark_address +# sgen-copy-object.h # + +fun:copy_object_no_checks + # sgen-fin-weak-hash.c # fun:add_stage_entry @@ -413,6 +502,8 @@ fun:add_stage_entry # sgen-gc.c # fun:mono_gc_wbarrier_generic_store +fun:pin_objects_from_nursery_pin_queue +fun:sgen_conservatively_pin_objects_from # sgen-gc.h # @@ -422,22 +513,32 @@ fun:sgen_set_nursery_scan_start fun:is_slot_set fun:link_get +fun:sgen_gchandle_free fun:sgen_gchandle_iterate # sgen-marksweep.c # +fun:alloc_obj fun:ensure_block_is_checked_for_sweeping fun:ensure_can_access_block_free_list fun:major_finish_sweep_checking +fun:ms_alloc_block fun:set_block_state fun:sweep_block fun:sweep_block_for_size fun:unlink_slot_from_free_list_uncontested +# sgen-minor-copy-object.h # + +fun:simple_nursery_serial_copy_object_from_obj + # sgen-nursery-allocator.c # +fun:fragment_list_reverse +fun:par_alloc_from_fragment fun:sgen_fragment_allocator_add fun:sgen_fragment_allocator_alloc +fun:sgen_fragment_allocator_par_alloc fun:sgen_fragment_allocator_par_range_alloc fun:sgen_fragment_allocator_release @@ -451,6 +552,10 @@ fun:is_pointer_hazardous fun:mono_get_hazardous_pointer fun:mono_thread_small_id_alloc +# lock-free-alloc.c # + +fun:alloc_from_new_sb + # lock-free-array-queue.c # fun:mono_lock_free_array_queue_pop @@ -461,8 +566,13 @@ fun:mono_lock_free_array_queue_push fun:mono_gc_bzero_aligned fun:mono_gc_memmove_aligned +# mono-codeman.c # + +fun:mono_code_manager_reserve_align + # mono-conc-hashtable.c # +fun:conc_table_new fun:expand_table fun:mono_conc_hashtable_insert fun:mono_conc_hashtable_lookup -- 2.25.1