cpython/Lib
Victor Stinner 296e572092
[3.7] bpo-34130: Fix 2 race conditions in test_signal (GH-8329)
* bpo-34130: Fix test_signal.test_socket() (GH-8326)

test_signal.test_socket(): On Windows, sometimes even if the C signal handler
succeed to write the signal number into the write end of the socketpair, the
test fails with a BlockingIOError on the non-blocking read.recv(1) because the
read end of the socketpair didn't receive the byte yet.

Fix the race condition on Windows by setting the read end as blocking.

(cherry picked from commit 99bb6df66a)

* bpo-34130: Fix test_signal.test_warn_on_full_buffer() (GH-8327)

On Windows, sometimes test_signal.test_warn_on_full_buffer() fails to
fill the socketpair buffer. In that case, the C signal handler
succeed to write into the socket, it doesn't log the expected send
error, and so the test fail.

On Windows, the test now uses a timeout of 50 ms to fill the
socketpair buffer to fix this race condition.

Other changes:

* Begin with large chunk size to fill the buffer to speed up the
  test.
* Add error messages to assertion errors to more easily identify
  which assertion failed.
* Don't set the read end of the socketpair as non-blocking.

(cherry picked from commit 686b4b5ff2)
2018-07-18 18:49:27 +02:00
..
asyncio bpo-27500: Fix static version of getaddrinfo to resolve IPv6 (GH-7993) 2018-06-28 19:16:48 -07:00
collections bpo-25988: Emit a warning when use or import ABCs from 'collections'. (GH-5734) 2018-02-18 17:40:59 +00:00
concurrent bpo-33097: Fix submit accepting callable after executor shutdown by interpreter exit (GH-6144) (GH-6445) 2018-04-10 20:35:02 +02:00
ctypes Fixed several assertTrue() that were intended to be assertEqual(). (GH-8191) 2018-07-09 08:47:14 -07:00
curses
dbm bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
distutils Improve error message for "setup.py upload" without dist files (GH-21060) 2018-02-18 19:57:17 -08:00
email bpo-27397: Make email module properly handle invalid-length base64 strings (GH-7583) (GH-7664) 2018-06-12 16:46:11 +03:00
encodings bpo-32943: Fix confusing error message for rot13 codec (GH-5869) 2018-03-24 21:30:39 -07:00
ensurepip Improve ensurepip's --help (GH-4686) (GH-7238) 2018-05-30 10:34:32 +02:00
html bpo-30629: Remove second call of str.lower() in html.parser.parse_endtag. (#2099) 2017-06-16 21:15:25 -04:00
http bpo-33365: print the header values beside the keys (GH-6611) 2018-06-19 06:52:36 -07:00
idlelib bpo-33975: Avoid small type when running IDLE's htests. (GH-7944) 2018-06-26 21:37:51 -07:00
importlib bpo-30436: Add missing space in importlib.util.find_spec() error message (GH-7385) 2018-06-06 23:21:43 -07:00
json bpo-30877: Fix clearing a cache in the the JSON decoder. (GH-7048) 2018-05-22 06:03:10 -07:00
lib2to3 bpo-34108: Fix double carriage return in 2to3 on Windows (GH-8271) (#8275) 2018-07-13 15:24:19 -04:00
logging bpo-33978: Close existing handlers before logging (re-)configuration. (GH-8008) (GH-8044) 2018-07-02 10:35:09 +01:00
msilib Remove all mention of Windows IA-64 support (GH-3389) 2017-09-06 15:45:25 -07:00
multiprocessing bpo-34054: multiprocessing uses time.monotonic() (GH-8118) 2018-07-06 05:11:21 -07:00
pydoc_data 3.7.0rc1 2018-06-12 00:46:50 -04:00
site-packages Issue #29283: Delete accidentally added Lib/site-packages/README 2017-01-30 13:55:49 +03:00
sqlite3 Spelling fixes to docs, docstrings, and comments (GH-6374) 2018-04-20 14:00:41 -07:00
test [3.7] bpo-34130: Fix 2 race conditions in test_signal (GH-8329) 2018-07-18 18:49:27 +02:00
tkinter bpo-33974: Fix passing special characters to ttk widgets. (GH-7986) 2018-06-29 23:42:57 -07:00
turtledemo bpo-14117: Make minor tweaks to turtledemo (GH-8002) 2018-06-28 22:30:44 -07:00
unittest bpo-33746: Fix test_unittest.testRegisterResult() in verbose mode (GH-7799) 2018-06-20 02:50:03 -07:00
urllib [3.7] bpo-32861: urllib.robotparser fix incomplete __str__ methods. (GH-5711) (GH-6795) 2018-05-14 21:14:30 +03:00
venv bpo-32409: Ensures activate.bat can handle Unicode contents (GH-5765) 2018-02-19 17:45:02 -08:00
wsgiref Remove tiny bit of deadcode from wsgiref.validate (#3996) 2017-10-31 00:07:36 -04:00
xml bpo-33549: Remove shim and deprecation warning to access DocumentLS.async. (GH-6924) (GH-6929) 2018-05-17 12:01:02 +03:00
xmlrpc bpo-33911: Fixed deprecation warning in xmlrpc.server (GH-7847) (GH-8294) 2018-07-16 11:02:23 +02:00
__future__.py String annotations [PEP 563] (#4390) 2018-01-26 08:20:18 -08:00
__phello__.foo.py
_bootlocale.py bpo-29240: PEP 540: Add a new UTF-8 Mode (#855) 2017-12-13 12:29:09 +01:00
_collections_abc.py bpo-32467: Let collections.abc.ValuesView inherit from Collection (#5152) 2018-01-11 21:53:49 -08:00
_compat_pickle.py
_compression.py
_dummy_thread.py Restore dummy_threading and _dummy_thread, but deprecate them (bpo-31370) (#3648) 2017-09-18 22:04:20 +02:00
_markupbase.py
_osx_support.py Fix misplaced positional argument in OS X support library (#1134) 2017-04-14 15:28:55 +03:00
_py_abc.py bpo-33018: Improve issubclass() error checking and message. (GH-5944) 2018-03-22 04:49:26 -07:00
_pydecimal.py bpo-32630: Use contextvars in decimal (GH-5278) 2018-01-27 13:46:46 -05:00
_pyio.py bpo-25862: Fix assertion failures in io.TextIOWrapper.tell(). (GH-3918) 2018-06-29 03:34:34 -07:00
_sitebuiltins.py
_strptime.py Spelling fixes to docs, docstrings, and comments (GH-6374) 2018-04-20 14:00:41 -07:00
_threading_local.py Delete a broken threading.local example (GH-5870) 2018-02-25 07:23:25 -08:00
_weakrefset.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
abc.py bpo-31333: Re-implement ABCMeta in C (GH-5733) 2018-02-18 17:39:43 +00:00
aifc.py bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951) 2018-03-18 13:50:41 -07:00
antigravity.py
argparse.py bpo-11874: fix assertion failure in argparse metavar handling (GH-1826) 2018-06-08 04:33:50 -07:00
ast.py bpo-33851: Fix ast.get_docstring() for a node that lacks a docstring. (GH-7682) 2018-06-15 01:25:13 -07:00
asynchat.py
asyncore.py bpo-29639: change test.support.HOST to "localhost" 2017-09-09 00:30:15 -07:00
base64.py Add Python version since deprecation in base64 methods. (#33) 2017-03-02 17:21:26 +03:00
bdb.py Docs: fix some wrong words (GH-6987) 2018-06-02 07:36:19 -07:00
binhex.py
bisect.py
bz2.py bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
calendar.py Closes bpo-28281: Remove year (1-9999) limits on the weekday() function. (#4109) 2017-10-26 15:34:11 -04:00
cgi.py bpo-33497: Add errors param to cgi.parse_multipart and make an encoding in FieldStorage use the given errors (GH-6804) (GH-6837) 2018-05-14 18:20:06 -04:00
cgitb.py bpo-33256: Replace angle brackets around python object repr to display it in html (GH-6442) 2018-04-29 12:10:12 -07:00
chunk.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
cmd.py
code.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
codecs.py bpo-32110: codecs.StreamReader.read(n) now returns not more than n (#4499) 2017-11-29 01:30:00 +02:00
codeop.py
colorsys.py
compileall.py closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575) 2017-12-09 10:26:52 -08:00
configparser.py bpo-33802: Do not interpolate in ConfigParser while reading defaults (GH-7524) 2018-06-08 07:01:56 -07:00
contextlib.py bpo-30306: release arguments of contextmanager (GH-1500) 2018-01-28 14:17:46 +10:00
contextvars.py bpo-32436: Implement PEP 567 (#5027) 2018-01-22 19:11:18 -05:00
copy.py
copyreg.py bpo-31107: Fix copyreg mangled slot names calculation. (#2989) 2017-08-04 11:45:00 +03:00
cProfile.py bpo-21862: Add -m option to cProfile for profiling modules (#4297) 2017-11-08 11:50:56 +01:00
crypt.py bpo-31702: Allow to specify rounds for SHA-2 hashing in crypt.mksalt(). (#4110) 2017-11-16 13:22:51 +02:00
csv.py bpo-30157: Fix csv.Sniffer.sniff() regex pattern. (GH-5601) (GH-5602) 2018-02-10 00:00:48 +02:00
dataclasses.py Fix typo in dataclasses documentation (GH-8102) 2018-07-05 16:28:18 -07:00
datetime.py bpo-33812: Corrected astimezone for naive datetimes. (GH-7578) (GH-7600) 2018-06-10 18:02:24 -04:00
decimal.py
difflib.py bpo-33224: PEP 479 fix for difflib.mdiff() (GH-6381) (GH-6390) 2018-04-05 11:45:33 -07:00
dis.py bpo-31183: dis now handles coroutines & async generators (GH-3077) 2017-08-18 12:29:21 +10:00
doctest.py bpo-25054, bpo-1647489: Added support of splitting on zerowidth patterns. (#4471) 2017-12-04 14:29:05 +02:00
dummy_threading.py Restore dummy_threading and _dummy_thread, but deprecate them (bpo-31370) (#3648) 2017-09-18 22:04:20 +02:00
enum.py bpo-31947: remove None default for names param in Enum._create_ (GH-4288) 2018-04-16 13:49:34 -07:00
filecmp.py
fileinput.py bpo-31281: Fix pathlib.Path incompatibility in fileinput (gh-3208) 2017-09-04 13:37:24 -04:00
fnmatch.py bpo-32775: Fix regular expression warnings in fnmatch. (GH-5583) (GH-5596) 2018-02-09 13:56:50 +02:00
formatter.py
fractions.py
ftplib.py bpo-31346: Use PROTOCOL_TLS_CLIENT/SERVER (#3058) 2017-09-15 20:27:30 +02:00
functools.py bpo-33967: Fix singledispatch raised IndexError when no args (GH-8184) 2018-07-10 00:48:57 -07:00
genericpath.py
getopt.py
getpass.py getpass: update docstrings (#49) 2017-02-12 23:10:48 +01:00
gettext.py bpo-30152: Reduce the number of imports for argparse. (#1269) 2017-09-26 00:55:55 +03:00
glob.py
gzip.py Replace KB unit with KiB (#4293) 2017-11-08 14:44:44 -08:00
hashlib.py Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
heapq.py Improve clarity (and small speed-up) by using tuple unpacking (#3289) 2017-09-04 11:47:58 -07:00
hmac.py bpo-33604: Remove Pending from hmac Deprecation warning. (GH-7062) 2018-05-22 16:40:44 -07:00
imaplib.py bpo-32157: Removed explicit quotes around %r and {!r}. (#4582) 2017-11-28 22:54:42 +02:00
imghdr.py
imp.py closes bpo-34056: Always return bytes from _HackedGetData.get_data(). (GH-8130) 2018-07-06 21:00:45 -07:00
inspect.py bpo-33582: Remove duplicate space in inspect.formatargspec() deprecation warning (GH-7655) (GH-7657) 2018-06-12 00:25:31 -04:00
io.py
ipaddress.py bpo-27683: Fix a regression for host() of ipaddress network objects (GH-6016) 2018-03-20 18:22:23 -07:00
keyword.py bpo-30406: Make async and await proper keywords (#1669) 2017-10-05 23:24:46 -04:00
linecache.py
locale.py [3.7] bpo-20087: Update locale alias mapping with glibc 2.27 supported locales. (GH-6708) (GH-6713) 2018-05-06 10:20:12 +03:00
lzma.py
macpath.py bpo-31802: Fix importing native path module before importing os. (#4017) 2018-01-07 17:54:31 +02:00
mailbox.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
mailcap.py
mimetypes.py bpo-22589 Changed MIME type of .bmp to "image/bmp" (#4756) 2017-12-08 07:48:44 -05:00
modulefinder.py closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575) 2017-12-09 10:26:52 -08:00
netrc.py bpo-28334: netrc() now uses expanduser() to find .netrc file (GH-4537) 2017-11-25 13:37:22 +03:00
nntplib.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
ntpath.py bpo-31802: Fix importing native path module before importing os. (#4017) 2018-01-07 17:54:31 +02:00
nturl2path.py bpo-29836: Remove nturl2path from test_sundry and amend the module docstring (GH-694) 2017-03-17 11:16:20 -07:00
numbers.py Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
opcode.py [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
operator.py
optparse.py
os.py bpo-32297: Few misspellings found in Python source code comments. (#4803) 2017-12-14 13:04:53 +02:00
pathlib.py bpo-31972: Improve docstrings for pathlib classes (GH-5310) 2018-02-18 16:48:07 -08:00
pdb.py [3.7] bpo-32691: Use mod_spec.parent when running modules with pdb (GH-5510) 2018-02-04 18:07:16 +10:00
pickle.py bpo-32503: Avoid creating too small frames in pickles. (#5127) 2018-01-20 16:42:44 +02:00
pickletools.py bpo-31993: Do not allocate large temporary buffers in pickle dump. (#4353) 2018-01-06 17:18:54 +02:00
pipes.py
pkgutil.py closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575) 2017-12-09 10:26:52 -08:00
platform.py [3.7] bpo-26544: Fixed implementation of platform.libc_ver(). (GH-7684). (GH-8193) 2018-07-09 12:55:35 +03:00
plistlib.py bpo-32072: Fix issues with binary plists. (#4455) 2017-11-30 23:26:11 +02:00
poplib.py bpo-32981: Fix catastrophic backtracking vulns (GH-5955) 2018-03-03 21:55:07 -08:00
posixpath.py bpo-31802: Fix importing native path module before importing os. (#4017) 2018-01-07 17:54:31 +02:00
pprint.py
profile.py time.clock() now emits a DeprecationWarning (GH-4020) 2017-10-17 14:46:45 -07:00
pstats.py Revert unneccessary changes made in bpo-30296 and apply other improvements. (GH-2624) 2018-02-26 08:22:24 -08:00
pty.py
py_compile.py bpo-29708: Setting SOURCE_DATE_EPOCH forces hash-based .pyc files (GH-5200) 2018-01-24 13:26:18 -08:00
pyclbr.py bpo-6691: Pyclbr now reports nested classes and functions. (#2503) 2017-07-03 21:31:25 -04:00
pydoc.py bpo-33422: Fix quotation marks getting deleted when looking up byte/string literals on pydoc. (GH-6701) 2018-05-05 09:42:56 -07:00
queue.py bpo-14976: Reentrant simple queue (#3346) 2018-01-16 00:27:16 +01:00
quopri.py
random.py bpo-24567: Random subnormal.diff (GH-7954) (GH-7955) 2018-06-27 01:53:04 -07:00
re.py bpo-32338: OrderedDict import is no longer needed in re. (GH-4891) 2018-03-10 23:01:58 -08:00
reprlib.py bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
rlcompleter.py
runpy.py
sched.py bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
secrets.py
selectors.py bpo-30624 remaining bare except (#2108) 2017-06-12 14:43:40 +02:00
shelve.py Fix misleading docsting of shelve.open(). (GH-6427) 2018-04-09 07:57:31 -07:00
shlex.py Fixed #29132: Updated shlex to work better with punctuation chars in POSIX mode. 2017-01-15 10:06:52 +00:00
shutil.py bpo-28564: Use os.scandir() in shutil.rmtree(). (#4085) 2017-11-04 14:16:35 +02:00
signal.py
site.py bpo-30167: Prevent site.main() exception if PYTHONSTARTUP is set. (GH-6731) (GH-7606) 2018-06-10 21:21:35 -04:00
smtpd.py
smtplib.py bpo-32727: smtplib's SMTP.send_message behaves differently with from_addr and to_addrs (#5451) 2018-01-31 17:01:31 -05:00
sndhdr.py bpo-31985: Deprecate openfp in aifc, sunau, and wave (#4344) 2017-11-10 11:38:25 -05:00
socket.py bpo-28134: Auto-detect socket values from file descriptor (#1349) 2018-01-29 22:37:58 +01:00
socketserver.py bpo-33540: Fix socketserver.ThreadingMixIn if block_on_close=False (GH-7309) 2018-06-01 14:07:50 +02:00
sre_compile.py bpo-31690: Allow the inline flags "a", "L", and "u" to be used as group flags for RE. (#3885) 2017-10-24 23:31:42 +03:00
sre_constants.py bpo-31690: Allow the inline flags "a", "L", and "u" to be used as group flags for RE. (#3885) 2017-10-24 23:31:42 +03:00
sre_parse.py bpo-30349: Raise FutureWarning for nested sets and set operations (#1553) 2017-11-16 12:38:26 +02:00
ssl.py [3.7] bpo-24334: Remove inaccurate match_hostname call (GH-6211) (#6212) 2018-03-24 15:59:16 +01:00
stat.py
statistics.py bpo-29919: Remove unused imports found by pyflakes (#137) 2017-03-27 16:05:26 +02:00
string.py bpo-31672: Restore the former behavior when override flags in Template. (#5099) 2018-01-04 19:20:11 +02:00
stringprep.py
struct.py
subprocess.py bpo-34044: subprocess.Popen copies startupinfo (GH-8090) (GH-8121) 2018-07-05 23:15:28 +02:00
sunau.py bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951) 2018-03-18 13:50:41 -07:00
symbol.py bpo-30406: Make async and await proper keywords (#1669) 2017-10-05 23:24:46 -04:00
symtable.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
sysconfig.py remove support for BSD/OS (closes bpo-31624) (#3812) 2017-09-28 22:44:27 -07:00
tabnanny.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
tarfile.py bpo-34010: Fix tarfile read performance regression (GH-8020) 2018-07-04 01:32:41 -07:00
telnetlib.py bpo-30397: Add re.Pattern and re.Match. (#1646) 2017-10-04 20:09:49 +03:00
tempfile.py bpo-33522: Enable CI builds on Visual Studio Team Services (GH-6865) (GH-6926) 2018-05-17 08:49:01 -04:00
textwrap.py bpo-30620: Remove dead lines from textwrap.dedent (GH-2064) 2017-06-15 19:19:43 -07:00
this.py
threading.py bpo-33556: Remove reference to thread module from docstring (GH-6963) 2018-05-18 14:46:43 -05:00
timeit.py bpo-28240: timeit: Update repeat() doc (GH-7419) (GH-7457) 2018-06-06 19:05:46 +02:00
token.py bpo-33260: Regenerate token.py after removing ASYNC and AWAIT. (GH-6447) 2018-04-11 10:07:23 -07:00
tokenize.py [3.7] bpo-33899: Make tokenize module mirror end-of-file is end-of-line behavior (GH-7891) (GH-8132) 2018-07-06 13:21:05 +03:00
trace.py bpo-31908: Fix output of cover files for trace module command-line tool. (GH-4205) 2018-04-30 21:06:00 -07:00
traceback.py bpo-28603: Fix formatting tracebacks for unhashable exceptions (#4014) 2017-10-18 00:29:39 +03:00
tracemalloc.py bpo-32121: Add most_recent_first parameter to tracemalloc.Traceback.format (#4534) 2017-11-30 00:05:07 +01:00
tty.py
turtle.py Revert unneccessary changes made in bpo-30296 and apply other improvements. (GH-2624) 2018-02-26 08:22:24 -08:00
types.py bpo-32265: Classify class and static methods of builtin types. (#4776) 2017-12-15 14:13:41 +02:00
typing.py Fix typo in TypeVar docstring (GH-8142) 2018-07-07 09:05:36 -07:00
uu.py bpo-30103: Allow Uuencode in Python using backtick as zero instead of space (#1326) 2017-05-03 11:16:21 +08:00
uuid.py bpo-33542: Ignore DUID in uuid.get_node on Windows. (GH-6922) 2018-05-20 08:40:10 -07:00
warnings.py bpo-32591: Add native coroutine origin tracking (#5250) 2018-01-21 09:44:07 -05:00
wave.py bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951) 2018-03-18 13:50:41 -07:00
weakref.py bpo-30152: Reduce the number of imports for argparse. (#1269) 2017-09-26 00:55:55 +03:00
webbrowser.py bpo-31014: Fix the webbrowser module. (GH-7267) 2018-07-08 01:09:21 -07:00
xdrlib.py
zipapp.py bpo-31638: Add compression support to zipapp (GH-3819) 2017-09-29 18:31:52 +01:00
zipfile.py bpo-30693: zip+tarfile: sort directory listing (#2263) 2018-01-31 17:01:55 -05:00