xref: /unit/CHANGES (revision 991:2ffb3d751beb)
1
2Changes with Unit 1.8.0                                          01 Mar 2019
3
4    *) Change: now three numbers are always used for versioning: major,
5       minor, and patch versions.
6
7    *) Change: now QUERY_STRING is always defined even if the request does
8       not include the query component.
9
10    *) Feature: basic internal request routing by Host, URI, and method.
11
12    *) Feature: experimental support for Java Servlet Containers.
13
14    *) Bugfix: segmentation fault might have occurred in the router process.
15
16    *) Bugfix: various potential memory leaks.
17
18    *) Bugfix: TLS connections might have stalled.
19
20    *) Bugfix: some Perl applications might have failed to send the response
21       body.
22
23    *) Bugfix: some compilers with specific flags might have produced
24       non-functioning builds; the bug had appeared in 1.5.
25
26    *) Bugfix: Node.js package had wrong version number when installed from
27       sources.
28
29
30Changes with Unit 1.7.1                                          07 Feb 2019
31
32    *) Security: a heap memory buffer overflow might have been caused in the
33       router process by a specially crafted request, potentially resulting
34       in a segmentation fault or other unspecified behavior
35       (CVE-2019-7401).
36
37    *) Bugfix: install of Go module failed without prior building of Unit
38       daemon; the bug had appeared in 1.7.
39
40
41Changes with Unit 1.7                                            20 Dec 2018
42
43    *) Change: now rpath is set in Ruby module only if the library was not
44       found in default search paths; this allows to meet packaging
45       restrictions on some systems.
46
47    *) Bugfix: "disable_functions" and "disable_classes" PHP options set via
48       Control API did not work.
49
50    *) Bugfix: Promises on request data in Node.js were not triggered.
51
52    *) Bugfix: various compatibility issues with Node.js applications.
53
54    *) Bugfix: a segmentation fault occurred in Node.js module if
55       application tried to read request body after request.end() was
56       called.
57
58    *) Bugfix: a segmentation fault occurred in Node.js module if
59       application attempted to send header twice.
60
61    *) Bugfix: names of response header fields in Node.js module were
62       erroneously treated as case-sensitive.
63
64    *) Bugfix: uncatched exceptions in Node.js were not logged.
65
66    *) Bugfix: global install of Node.js module from sources was broken on
67       some systems; the bug had appeared in 1.6.
68
69    *) Bugfix: traceback for exceptions during initialization of Python
70       applications might not be logged.
71
72    *) Bugfix: PHP module build failed if PHP interpreter was built with
73       thread safety enabled.
74
75
76Changes with Unit 1.6                                            15 Nov 2018
77
78    *) Change: "make install" now installs Node.js module as well if it was
79       configured.
80
81    *) Feature: "--local" ./configure option to install Node.js module
82       locally.
83
84    *) Bugfix: Node.js module might have crashed due to broken reference
85       counting.
86
87    *) Bugfix: asynchronous operations in Node.js might not have worked.
88
89    *) Bugfix: various compatibility issues with Node.js applications.
90
91    *) Bugfix: "freed pointer is out of pool" alerts might have appeared in
92       log.
93
94    *) Bugfix: module discovery did not work on 64-bit big-endian systems
95       like IBM/S390x.
96
97
98Changes with Unit 1.5                                            25 Oct 2018
99
100    *) Change: the "type" of application object for Go was changed to
101       "external".
102
103    *) Feature: initial version of Node.js package with basic HTTP
104       request-response support.
105
106    *) Feature: compatibility with LibreSSL.
107
108    *) Feature: --libdir and --incdir ./configure options to install libunit
109       headers and static library.
110
111    *) Bugfix: connection might be closed prematurely while sending
112       response; the bug had appeared in 1.3.
113
114    *) Bugfix: application processes might have stopped handling requests,
115       producing "last message send failed: Resource temporarily
116       unavailable" alerts in log; the bug had appeared in 1.4.
117
118    *) Bugfix: Go applications did not work when Unit was built with musl C
119       library.
120
121
122Changes with Unit 1.4                                            20 Sep 2018
123
124    *) Change: the control API maps the configuration object only at
125       "/config/".
126
127    *) Feature: TLS support for client connections.
128
129    *) Feature: TLS certificates storage control API.
130
131    *) Feature: Unit library (libunit) to streamline language module
132       integration.
133
134    *) Feature: "408 Request Timeout" responses while closing HTTP
135       keep-alive connections.
136
137    *) Feature: improvements in OpenBSD support. Thanks to David Carlier.
138
139    *) Bugfix: a segmentation fault might have occurred after
140       reconfiguration.
141
142    *) Bugfix: building on systems with non-default locale might be broken.
143
144    *) Bugfix: "header_read_timeout" might not work properly.
145
146    *) Bugfix: header fields values with non-ASCII bytes might be handled
147       incorrectly in Python 3 module.
148
149
150Changes with Unit 1.3                                            13 Jul 2018
151
152    *) Change: UTF-8 characters are now allowed in request header field
153       values.
154
155    *) Feature: configuration of the request body size limit.
156
157    *) Feature: configuration of various HTTP connection timeouts.
158
159    *) Feature: Ruby module now automatically uses Bundler where possible.
160
161    *) Feature: http.Flusher interface in Go module.
162
163    *) Bugfix: various issues in HTTP connection errors handling.
164
165    *) Bugfix: requests with body data might be handled incorrectly in PHP
166       module.
167
168    *) Bugfix: individual PHP configuration options specified via control
169       API were reset to previous values after the first request in
170       application process.
171
172
173Changes with Unit 1.2                                            07 Jun 2018
174
175    *) Feature: configuration of environment variables for application
176       processes.
177
178    *) Feature: customization of php.ini path.
179
180    *) Feature: setting of individual PHP configuration options.
181
182    *) Feature: configuration of execution arguments for Go applications.
183
184    *) Bugfix: keep-alive connections might hang after reconfiguration.
185
186
187Changes with Unit 1.1                                            26 Apr 2018
188
189    *) Bugfix: Python applications that use the write() callable did not
190       work.
191
192    *) Bugfix: virtual environments created with Python 3.3 or above might
193       not have worked.
194
195    *) Bugfix: the request.Read() function in Go applications did not
196       produce EOF when the whole body was read.
197
198    *) Bugfix: a segmentation fault might have occurred while access log
199       reopening.
200
201    *) Bugfix: in parsing of IPv6 control socket addresses.
202
203    *) Bugfix: loading of application modules was broken on OpenBSD.
204
205    *) Bugfix: a segmentation fault might have occurred when there were two
206       modules with the same type and version; the bug had appeared in 1.0.
207
208    *) Bugfix: alerts "freed pointer points to non-freeble page" might have
209       appeared in log on 32-bit platforms.
210
211
212Changes with Unit 1.0                                            12 Apr 2018
213
214    *) Change: configuration object moved into "/config/" path.
215
216    *) Feature: basic access logging.
217
218    *) Bugfix: 503 error occurred if Go application did not write response
219       header or body.
220
221    *) Bugfix: Ruby applications that use encoding conversions might not
222       have worked.
223
224    *) Bugfix: various stability issues.
225
226
227Changes with Unit 0.7                                            22 Mar 2018
228
229    *) Feature: Ruby application module.
230
231    *) Bugfix: in discovering modules.
232
233    *) Bugfix: various race conditions on reconfiguration and during
234       shutting down.
235
236    *) Bugfix: tabs and trailing spaces were not allowed in header fields
237       values.
238
239    *) Bugfix: a segmentation fault occurred in Python module if
240       start_response() was called outside of WSGI callable.
241
242    *) Bugfix: a segmentation fault might have occurred in PHP module if
243       there was an error while initialization.
244
245
246Changes with Unit 0.6                                            09 Feb 2018
247
248    *) Bugfix: the main process died when the "type" application option
249       contained version; the bug had appeared in 0.5.
250
251
252Changes with Unit 0.5                                            08 Feb 2018
253
254    *) Change: the "workers" application option was removed, the "processes"
255       application option should be used instead.
256
257    *) Feature: the "processes" application option with prefork and dynamic
258       process management support.
259
260    *) Feature: Perl application module.
261
262    *) Bugfix: in reading client request body; the bug had appeared in 0.3.
263
264    *) Bugfix: some Python applications might not have worked due to missing
265       "wsgi.errors" environ variable.
266
267    *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit
268       platforms.
269
270    *) Bugfix: infinite looping in HTTP parser.
271
272    *) Bugfix: segmentation fault in router.
273
274
275Changes with Unit 0.4                                            15 Jan 2018
276
277    *) Feature: compatibility with DragonFly BSD.
278
279    *) Feature: "configure php --lib-static" option.
280
281    *) Bugfix: HTTP request body was not passed to application; the bug had
282       appeared in 0.3.
283
284    *) Bugfix: HTTP large header buffers allocation and deallocation fixed;
285       the bug had appeared in 0.3.
286
287    *) Bugfix: some PHP applications might not have worked with relative
288       "root" path.
289
290
291Changes with Unit 0.3                                            28 Dec 2017
292
293    *) Change: the Go package name changed to "nginx/unit".
294
295    *) Change: in the "limits.timeout" application option: application start
296       time and time in queue now are not accounted.
297
298    *) Feature: the "limits.requests" application option.
299
300    *) Feature: application request processing latency optimization.
301
302    *) Feature: HTTP keep-alive connections support.
303
304    *) Feature: the "home" Python virtual environment configuration option.
305
306    *) Feature: Python atexit hook support.
307
308    *) Feature: various Go package improvements.
309
310    *) Bugfix: various crashes fixed.
311
312
313Changes with Unit 0.2                                            19 Oct 2017
314
315    *) Feature: configuration persistence.
316
317    *) Feature: improved handling of configuration errors.
318
319    *) Feature: application "timeout" property.
320
321    *) Bugfix: POST request for PHP were handled incorrectly.
322
323    *) Bugfix: the router exited abnormally if all listeners had been
324       deleted.
325
326    *) Bugfix: the router crashed under load.
327
328    *) Bugfix: memory leak in the router.
329
330
331Changes with Unit 0.1                                            06 Sep 2017
332
333    *) First public release.
334
335