>>> import sys
>>> sys.stdout.reconfigure(encoding=42)
Objects/unicodeobject.c:552: _PyUnicode_CheckConsistency: Assertion failed: PyType_HasFeature((Py_TYPE(((PyObject*)((op))))), ((1UL << 28)))
Enable tracemalloc to get the memory block allocation traceback
object address : 0x55a2e3147ca8
object refcount : 4294967295
object type : 0x55a2e3119f00
object type name: int
object repr : 42
Fatal Python error: _PyObject_AssertFailed: _PyObject_AssertFailed
Python runtime state: initialized
Current thread 0x00007fc99ee43740 (most recent call first):
File "<stdin>-1", line 1 in <module>
Aborted (core dumped)
Crash report
What happened?
Unlike to
TextIOWrapperconstructor,TextIOWrapper.reconfigure()does not check that the encoding argument is actually None or string. If it is not None, it calls_PyUnicode_EqualToASCIIStringthat only works with strings and crashes in debug build. There may be other similar errors in other arguments.CPython versions tested on:
3.10, 3.11, 3.12
Operating systems tested on:
No response
Output from running 'python -VV' on the command line:
No response
Linked PRs