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
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
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-04-15 15:59:02 +02:00
2026-04-15 15:59:02 +02: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-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
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
2026-04-04 18:42:30 +01:00
2026-03-09 19:37:33 +00:00
2026-03-24 17:47:55 +00: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-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
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
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-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-12 18:14:54 -07:00