Handle ValueError raised during faulthandler teardown code (#11453)
Fixes #11439
This commit is contained in:
parent
9f22d3281c
commit
a38ad254ef
1
AUTHORS
1
AUTHORS
|
@ -347,6 +347,7 @@ Seth Junot
|
||||||
Shantanu Jain
|
Shantanu Jain
|
||||||
Sharad Nair
|
Sharad Nair
|
||||||
Shubham Adep
|
Shubham Adep
|
||||||
|
Simon Blanchard
|
||||||
Simon Gomizelj
|
Simon Gomizelj
|
||||||
Simon Holesch
|
Simon Holesch
|
||||||
Simon Kerr
|
Simon Kerr
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Handle an edge case where :data:`sys.stderr` might already be closed when :ref:`faulthandler` is tearing down.
|
|
@ -1,4 +1,3 @@
|
||||||
import io
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from typing import Generator
|
from typing import Generator
|
||||||
|
@ -51,7 +50,7 @@ def get_stderr_fileno() -> int:
|
||||||
if fileno == -1:
|
if fileno == -1:
|
||||||
raise AttributeError()
|
raise AttributeError()
|
||||||
return fileno
|
return fileno
|
||||||
except (AttributeError, io.UnsupportedOperation):
|
except (AttributeError, ValueError):
|
||||||
# pytest-xdist monkeypatches sys.stderr with an object that is not an actual file.
|
# pytest-xdist monkeypatches sys.stderr with an object that is not an actual file.
|
||||||
# https://docs.python.org/3/library/faulthandler.html#issue-with-file-descriptors
|
# https://docs.python.org/3/library/faulthandler.html#issue-with-file-descriptors
|
||||||
# This is potentially dangerous, but the best we can do.
|
# This is potentially dangerous, but the best we can do.
|
||||||
|
|
Loading…
Reference in New Issue