1
1
What's new in Tornado 6.5.0
2
2
===========================
3
3
4
- In progress
5
- -----------
4
+ May 15, 2025
5
+ ------------
6
+
7
+ Security Improvements
8
+ ~~~~~~~~~~~~~~~~~~~~~
9
+
10
+ - Previously, malformed ``multipart-form-data `` requests could log multiple warnings and
11
+ constitute a denial-of-service attack. Now an exception is raised at the first error, so there
12
+ is only one log message per request. This fixes
13
+ `CVE-2025-47287 <https://github.com/tornadoweb/tornado/security/advisories/GHSA-7cx3-6m66-7c5m >`_.
6
14
7
15
General Changes
8
16
~~~~~~~~~~~~~~~
9
17
10
18
- Python 3.14 is now supported. Older versions of Tornado will work on Python 3.14 but may log
11
19
deprecation warnings.
20
+ - The free-threading mode of Python 3.13 is now supported on an experimental basis. Prebuilt
21
+ wheels are not yet available for this configuration, but it can be built from source.
12
22
- The minimum supported Python version is 3.9.
13
23
14
24
Deprecation Notices
15
25
~~~~~~~~~~~~~~~~~~~
16
26
17
27
- Support for ``obs-fold `` continuation lines in HTTP headers is deprecated and will be removed in
18
28
Tornado 7.0, as is the use of carriage returns without line feeds as header separators.
19
- - The ``callback `` argument to `` websocket_connect ` ` is deprecated and will be removed in
29
+ - The ``callback `` argument to `. websocket_connect ` is deprecated and will be removed in
20
30
Tornado 7.0. Note that ``on_message_callback `` is not deprecated.
21
31
- The ``log_message `` and ``args `` attributes of `tornado.web.HTTPError ` are deprecated. Use the
22
32
new ``get_message `` method instead.
@@ -38,8 +48,8 @@ Type Annotation Changes
38
48
- `.RequestHandler.get_cookie ` now has more accurate types.
39
49
- The return type of `.UIModule.render ` may now be either `str ` or `bytes `.
40
50
41
- `` tornado.httputil ` `
42
- ~~~~~~~~~~~~~~~~~~~~
51
+ `tornado.httputil `
52
+ ~~~~~~~~~~~~~~~~~~
43
53
44
54
- Support for ``obs-fold `` continuation lines in HTTP headers is deprecated and will be removed in
45
55
Tornado 7.0, as is the use of carriage returns without line feeds as header separators.
@@ -53,14 +63,20 @@ Type Annotation Changes
53
63
error to send more than one ``Host `` header, or to omit a ``Host `` header for a request that is
54
64
not using HTTP/1.0.
55
65
56
- `` tornado.netutil ` `
57
- ~~~~~~~~~~~~~~~~~~~
66
+ `tornado.ioloop `
67
+ ~~~~~~~~~~~~~~~~
58
68
59
- - ``.bind_unix_socket `` now supports the Linux abstract namespace.
69
+ - Fixed a bug in which `contextvars ` that were set when the event loop was created were not
70
+ available inside the event loop on Windows.
60
71
72
+ `tornado.netutil `
73
+ ~~~~~~~~~~~~~~~~~
61
74
62
- ``tornado.platform.twisted ``
63
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75
+ - `.bind_unix_socket ` now supports the Linux abstract namespace.
76
+
77
+
78
+ `tornado.platform.twisted `
79
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
64
80
65
81
- ``TwistedResolver `` has been deleted. It was already deprecated and scheduled for removal
66
82
in Tornado 7.0, but due to the adoption of RFC 8482 it no longer works for most
@@ -70,19 +86,19 @@ Type Annotation Changes
70
86
and it is also deprecated. Most users should switch to the default resolver, which uses
71
87
threads.
72
88
73
- `` tornado.web ` `
74
- ~~~~~~~~~~~~~~~
89
+ `tornado.web `
90
+ ~~~~~~~~~~~~~
75
91
76
92
- The set of characters allowed in (outgoing) HTTP headers now matches the RFCs. Specifically, tab
77
93
characters are now allowed and DEL is not.
78
94
- Invalid ``If-Modified-Since `` headers are now ignored instead of causing a 500 error.
79
- - ``% `` characters in the log message of `` tornado.web.HTTPError ` ` are no longer doubled when no
95
+ - ``% `` characters in the log message of `tornado.web.HTTPError ` are no longer doubled when no
80
96
additional arguments are passed. This matches the behavior of `logging.LogRecord `. A new method
81
97
``get_message `` has been added to ``HTTPError `` to allow access to the fully-substituted message;
82
98
directly accessing ``log_message `` and ``args `` is deprecated.
83
99
84
- `` tornado.websocket ` `
85
- ~~~~~~~~~~~~~~~~~~~~~
100
+ `tornado.websocket `
101
+ ~~~~~~~~~~~~~~~~~~~
86
102
87
103
- Some bugs involving ``ping_interval `` and ``ping_timeout `` have been fixed. Setting the
88
104
``ping_timeout `` greater than the ``ping_interval `` is no longer supported. The default
0 commit comments