Eric Froemling
7686abe063
gh-149085: Add max_threads keyword to faulthandler.dump_traceback() (GH-149106)
...
Add a keyword-only `max_threads` argument to `dump_traceback()` and
`dump_traceback_later()`, defaulting to 100 to preserve existing
behavior. Allows server processes with many worker threads to dump
beyond the historical 100-thread cap (previously a hardcoded
`MAX_NTHREADS = 100` in `Python/traceback.c`).
The cap matters in practice: tstates are prepended to the
PyInterpreterState linked list, so the dump walks newest-first. With
more than 100 threads alive, the main thread (oldest, at the tail) is
silently elided from watchdog dumps -- exactly the thread that's
usually wanted.
The hardcoded value is moved to a new internal macro
`_Py_TRACEBACK_MAX_NTHREADS` in `pycore_traceback.h` so the in-tree
fatal-signal callers all reference one source of truth.
2026-04-30 09:27:57 -04:00
..
2026-04-17 14:09:09 +02:00
2026-04-02 23:20:13 +02:00
2025-10-16 05:25:51 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-28 00:06:23 +01:00
2026-03-29 14:21:37 +02:00
2026-04-02 23:20:13 +02:00
2026-03-25 07:44:47 +01:00
2026-04-27 19:28:30 -07:00
2026-04-24 10:37:01 +01:00
2026-04-08 09:15:11 +02:00
2026-04-09 08:52:30 +01:00
2026-04-21 12:49:44 -07:00
2026-04-02 23:24:03 +02:00
2026-04-30 09:27:57 -04:00
2026-04-27 21:22:35 +01:00
2026-03-24 17:47:55 +00:00
2026-04-09 18:50:50 +05:30
2026-03-24 17:47:55 +00:00
2026-04-12 18:14:54 -07:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-11 15:18:02 -07:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-02 23:24:03 +02:00
2026-03-24 17:47:55 +00:00
2026-04-23 15:48:00 +01:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-12 00:02:56 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2025-05-22 06:50:06 -06:00
2026-04-02 23:24:03 +02:00
2026-04-12 00:14:50 +00:00
2026-03-24 17:47:55 +00:00
2026-04-07 22:56:19 +02:00
2026-04-12 18:14:54 -07:00
2026-03-24 17:47:55 +00:00
2026-04-02 23:20:13 +02:00
2026-04-02 23:20:13 +02:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-02-13 13:06:07 -06:00
2026-04-15 15:59:02 +02:00
2026-04-15 15:59:02 +02:00
2025-06-27 15:15:11 +00:00
2026-04-27 21:30:48 +03:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-26 15:26:34 +01:00
2026-04-09 18:50:50 +05:30
2026-03-17 12:16:35 +02:00
2026-04-25 10:47:41 +01:00
2026-03-02 11:47:32 +01:00
2026-04-08 09:15:11 +02:00
2026-04-08 09:15:11 +02:00
2026-04-02 23:20:13 +02:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2025-05-26 10:56:31 +02:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-04 13:29:17 +01:00
2026-04-17 14:13:44 +02:00
2026-03-24 17:47:55 +00:00
2026-04-25 16:02:51 -07:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-30 09:27:57 -04:00
2026-03-24 17:47:55 +00:00
2025-08-07 16:32:17 -07:00
2026-04-04 18:42:30 +01:00
2026-03-09 19:37:33 +00:00
2026-03-24 17:47:55 +00:00
2025-08-01 10:45:40 -07:00
2026-03-24 17:47:55 +00:00
2026-04-02 23:20:13 +02:00
2026-04-02 23:20:13 +02:00
2025-09-18 09:25:01 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-21 07:29:07 -07:00
2026-04-02 23:24:03 +02:00
2026-03-24 17:47:55 +00:00
2026-04-14 19:12:47 +02:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-02 23:24:03 +02:00
2025-11-25 12:51:24 +00:00
2025-07-21 13:47:26 -04:00
2026-03-10 11:44:20 +01:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-02 23:24:03 +02:00
2026-04-27 13:12:34 +00:00
2025-09-17 17:18:04 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-19 16:20:18 +05:30
2026-03-24 17:47:55 +00:00
2026-02-21 18:27:55 +01:00
2026-03-24 17:47:55 +00:00
2026-02-18 12:58:21 +02:00
2025-10-27 11:39:42 +01:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-04-12 18:14:54 -07:00