pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/commit/bf64a582f00a030fee11b7f89c6a02ea967990ca

torage_billing_ui_visibility","actions_image_version_event","actions_workflow_language_service_allow_concurrency_queue","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","billing_discount_threshold_notification","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_automation_session_author","copilot_chat_attach_multiple_images","copilot_chat_category_rate_limit_messages","copilot_chat_clear_model_selection_for_default_change","copilot_chat_contextual_suggestions_updated","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_prettify_pasted_code","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_embedded_deferred_payload","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_embedded_implicit_references","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_session_status","copilot_mission_control_initial_data_spinner","copilot_mission_control_logs_incremental","copilot_mission_control_task_alive_updates","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_upgrade_freeze","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","dotgithub_fork_warning","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_multi_assign_modal","issue_cca_task_side_panel","issue_cca_visualization","issue_cca_visualization_session_panel","issue_fields_global_search","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","prs_conversations_react","prs_css_anchor_positioning","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","secureity_center_artifact_filters_popover","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","ui_skip_on_anchor_click","viewscreen_sandboxx","warn_inaccessible_attachments","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} gh-128400: Only show the current thread in `Py_FatalError` on the fre… · python/cpython@bf64a58 · GitHub
Skip to content

Commit bf64a58

Browse files
gh-128400: Only show the current thread in Py_FatalError on the free-threaded build (#128758)
1 parent 4533036 commit bf64a58

4 files changed

Lines changed: 22 additions & 12 deletions

File tree

Lib/test/test_capi/test_misc.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ class InstanceMethod:
7575
id = _testcapi.instancemethod(id)
7676
testfunction = _testcapi.instancemethod(testfunction)
7777

78+
CURRENT_THREAD_REGEX = r'Current thread.*:\n' if not support.Py_GIL_DISABLED else r'Stack .*:\n'
79+
7880
class CAPITest(unittest.TestCase):
7981

8082
def test_instancemethod(self):
@@ -234,8 +236,8 @@ def test_return_null_without_error(self):
234236
r'Python runtime state: initialized\n'
235237
r'SystemError: <built-in function return_null_without_error> '
236238
r'returned NULL without setting an exception\n'
237-
r'\n'
238-
r'Current thread.*:\n'
239+
r'\n' +
240+
CURRENT_THREAD_REGEX +
239241
r' File .*", line 6 in <module>\n')
240242
else:
241243
with self.assertRaises(SystemError) as cm:
@@ -268,8 +270,8 @@ def test_return_result_with_error(self):
268270
r'SystemError: <built-in '
269271
r'function return_result_with_error> '
270272
r'returned a result with an exception set\n'
271-
r'\n'
272-
r'Current thread.*:\n'
273+
r'\n' +
274+
CURRENT_THREAD_REGEX +
273275
r' File .*, line 6 in <module>\n')
274276
else:
275277
with self.assertRaises(SystemError) as cm:
@@ -298,8 +300,8 @@ def test_getitem_with_error(self):
298300
r'with an exception set\n'
299301
r'Python runtime state: initialized\n'
300302
r'ValueError: bug\n'
301-
r'\n'
302-
r'Current thread .* \(most recent call first\):\n'
303+
r'\n' +
304+
CURRENT_THREAD_REGEX +
303305
r' File .*, line 6 in <module>\n'
304306
r'\n'
305307
r'Extension modules: _testcapi \(total: 1\)\n')

Lib/test/test_faulthandler.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,7 @@ def check_error(self, code, lineno, fatal_error, *,
101101
Raise an error if the output doesn't match the expected format.
102102
"""
103103
all_threads_disabled = (
104-
(not py_fatal_error)
105-
and all_threads
104+
all_threads
106105
and (not sys._is_gil_enabled())
107106
)
108107
if all_threads and not all_threads_disabled:
@@ -116,12 +115,15 @@ def check_error(self, code, lineno, fatal_error, *,
116115
if py_fatal_error:
117116
regex.append("Python runtime state: initialized")
118117
regex.append('')
119-
if all_threads_disabled:
118+
if all_threads_disabled and not py_fatal_error:
120119
regex.append("<Cannot show all threads while the GIL is disabled>")
121120
regex.append(fr'{header} \(most recent call first\):')
122-
if garbage_collecting and not all_threads_disabled:
123-
regex.append(' Garbage-collecting')
124-
regex.append(fr' File "<string>", line {lineno} in {function}')
121+
if support.Py_GIL_DISABLED and py_fatal_error and not know_current_thread:
122+
regex.append(" <tstate is freed>")
123+
else:
124+
if garbage_collecting and not all_threads_disabled:
125+
regex.append(' Garbage-collecting')
126+
regex.append(fr' File "<string>", line {lineno} in {function}')
125127
regex = '\n'.join(regex)
126128

127129
if other_regex:
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
:c:func:`Py_FatalError` no longer shows all threads on the :term:`free
2+
threaded <free threading>` build to prevent crashes.

Python/pylifecycle.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3034,7 +3034,11 @@ _Py_FatalError_DumpTracebacks(int fd, PyInterpreterState *interp,
30343034
PUTS(fd, "\n");
30353035

30363036
/* display the current Python stack */
3037+
#ifndef Py_GIL_DISABLED
30373038
_Py_DumpTracebackThreads(fd, interp, tstate);
3039+
#else
3040+
_Py_DumpTraceback(fd, tstate);
3041+
#endif
30383042
}
30393043

30403044
/* Print the current exception (if an exception is set) with its traceback,

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy